日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Loadrunner 接口测试的两种方法

發布時間:2025/3/15 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Loadrunner 接口测试的两种方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Loadrunner?接口測試的兩種方法

?

其實無論用那種測試方法,接口測試的原理是通過測試程序模擬客戶端向服務器發送請求報文,服務器接收請求報文后對相應的報文做出處理然后再把應答報文發送給客戶端,客戶端接收應答報文這一個過程。

  方法一、用LoadRunner實現接口測試

  大家都知道LoadRunner是一種性能測試工具,但它也可以用在我們做接口測試的時候。開發人員開發出來的接口,提供給測試人員詳細的接口使用說明書,該說明書最基本的要求如下:

  接口測試地址:/SNS/Publish

  請求報文參數說明:

參數名稱

參數描述

字符類型

字符值

SNSID

社區ID

String

6

UserID

用戶ID

String

10

CommentsTypeID

評論類型ID

String

2

CommentsID

評論ID

String

10

AuthorID

作者ID

String

10

CommentsContent

評論內容

String

50

  請求報文格式:

<?xml version="1.0" encoding="ISO-8859-1"?>
< Publish >
<SNSID>123</SNSID>
<UserID>456</ UserID>
<CommentsTypeID>2</ CommentsTypeID>
<CommentsID>123</CommentsID>
<AuthorID>456</AuthorID>
<CommentsContent>Don't forget the meeting!</CommentsContent>
</Publish>

  應答報文的參數接口說明:

參數名稱

參數描述

字符類型

字符值

UserID

用戶ID

String

10

CommentsTypeID

評論類型ID

String

2

CommentsID

評論ID

String

10

CommentsContent

評論內容

String

50

StatusCode

返回值

Int

0代表pass,0代表fail

StatusText

返回信息描述

String


?

<?xml version="1.0" encoding="ISO-8859-1"?>
< Publish >
<UserID>456</ UserID>
<CommentsTypeID>2</ CommentsTypeID>
<CommentsID>123</CommentsID>
<CommentsContent>Don't forget the meeting!</CommentsContent>
<StatusCode>0</StatusCode>
<StatusText>發送成功一條評論</StatusText>
</Publish>

  有了上述的說明書之后,測試人員可以根據文檔的描述在LoadRunner書寫相應的接口測試腳本。

LoadRunner中涉及到向服務器發送請求的API方法包括:web_url()web_submit_form()web_submit_data()web_custom_request()。下面介紹兩種我常用的方法:

  方法一:使用web_submit_data()

web_submit_data("insert",
????? "Action=http://116.211.23.123/SNS/Publish.htm ",
????? "Method=POST",??????
"Referer=http://116.211.23.123/SNS/Publish.htm ",
?????? "Mode=HTML",
????? ITEMDATA,
????? "Name= SNSID ","Value=6601",ENDITEM,
????? "Name= UserID ","Value=123",ENDITEM,
????? "Name= CommentsTypeID ","Value=1",ENDITEM,
????? "Name= CommentsID ","Value=456",ENDITEM,
?????? "Name= AuthorID","Value=789",ENDITEM,
?????? "Name= CommentsContent ","Value=Just for testing",ENDITEM,
?????????????? LAST);

  方法二:使用web_custom_request()

char str[1000];
strcpy(str,"SNSID=7999&UserID=1&CommentsTypeID=1&CommentsID=1&AuthorID=1&CommentsContent=1");
web_custom_request("Publish",
????????????????? "Url= http://116.211.23.123/SNS/Publish.htm",
????????????????? "Method=POST",
????????????????? "Referer=http://116.211.23.123/SNS/Publish.htm ",
????????????????? "Mode=HTTP",
????????????????? str,
????????????????? LAST);

  這也是一種寫法,可以跟web_submit_data互換。這種寫法更利于拼接參數。

  方法一適合一些xml結構的根元素下的子元素同處于根元素下面,且子元素數目較少的情況下,如果xml結構比較復雜,比如說根元素下面有多級子元素,或者xml樹結構分叉較多的時候,我們可以先把xml拼接成一個字符串然后通過web_custom_request()向服務器發送請求。

  我們在做接口功能測試的時候會很注意接口的應答報文的信息,這時候我們可以通過LoadRunner的日志信息查看或者可以通過web_reg_find()或者web_find()這樣的API函數來統計接口的運行結果,推薦使用web_reg_find()web_reg_find()web_find()區別請大家百度一下,詳細信息太多,在這里不便敘述。

  因為web_reg_find()是注冊型函數,所以應該放在web_submit_data()或者web_custom_request()的前面。

  如:

web_reg_find("Text=<StatusCode>0</StatusCode>",//應答報文里邊的信息
"SaveCount= StatusCodeCount", //
統計查詢字段的信息,如果找到值為1,如果未找到值為0
LAST);

  在腳本的最后我們可以對查詢字段的信息進行統計

// Check result
if (atoi(lr_eval_string("{StatusCodeCount }")) > 0){ //
判斷如果Welcome字符串出現次//數大于0
lr_output_message("Send out the comment successfully."); }//
在日志中輸出Send out //the comment successfully

else{ //
如果出現次數小于等于

lr_error_message("Send out the comment unsuccessfully."); //
在日志中輸出Send out //the comment successfully
return(0);
}

  總結:用LoadRunner做接口測試無法做到把接口參數和程序分理,接口的參數可以通過參數化的方法來實現對同一個參數多個數據的測試。參數化后的測試數據保存在此腳本的保存位置下。

  方法二、通過Java + Fitnesse實現接口功能測試

  什么是Fitnesse

FitNesse是一套軟件開發協作工具 FitNesse是幫助大家加強軟件開發過程中的協作的工具。能夠讓客戶、測試人員和開發人員了解軟件要做成什么樣,幫助建議軟件最終是否達到了設計初衷。

FitNesse是一套軟件測試工具 從另外一個角度看,FitNesse是一個輕量級的、開源的框架,能夠幫助開發團隊方便的定義驗收測試(Acceptance Tests),通過在web頁面上簡單的輸出和預計輸出的表格就可實現,并且可以運行這些測試以確定是否通過。

FitNessewiki可以很方便的創建和編輯頁面 FitNesse是一個web服務器不用過多的安裝配置,很方便使用。

  我習慣使用Eclipse集成開發工具寫測試代碼,用fitnesse準備接口的測試數據,由此實現接口的測試數據和測試程序的分離。

  關于Fitnesse的使用大家可以參考官方網址。Fitnesse的四種常見表格是:

ColumnFixtureActionFixtureDecision TableScriptTable。在工作中ColumnFixture用的最多。

  下面的程序使用的是ColumnFixture表格。

// Java fixtures
package info.fitnesse.fixturegallery;
import fit.ColumnFixture;
public class PublishTest extends ColumnFixture {
??
? //
通過url向服務器發送請求的程序段省略
?? public StringSNSID; //
對應列名|first part|
?? public StringUserID; //
對應列名|second part|
?? private StringCommentsTypeID;
?? private StringAuthorID;
private StringCommentsContent;
private StringUserID;

//
對參數的setget方法省略
}

ColumnFixture
表格里邊的測試數據是:
//
省略設置表格的存儲位置信息

  總結:上述兩種方法都是對接口做功能測試的方法,使用LoadRunner做接口測試的時候可以不用讓開發人員提供測試人員相應的UI測試頁面,直接調用接口做測試,但是測試程序和數據的依賴性太強;使用Fitnesse做接口測試的時候可以實現測試程序和數據的分離,只用點擊Fitnesse界面的Test按鈕就可以實現測試,測試消耗時間比使用LoadRunner做接口測試少。

  以上純屬個人見解,敬請拍磚!

?

總結

以上是生活随笔為你收集整理的Loadrunner 接口测试的两种方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。