您的位置:首页 > 其它

用LR做接口测试

2015-06-12 17:13 274 查看
转自: http://www.blogjava.net/qileilove/archive/2012/05/31/379631.html
其实无论用那种测试[/u]方法,接口测试[/u]的原理是通过测试程序模拟客户端向服务器发送请求报文,服务器接收请求报文后对相应的报文做出处理然后再把应答报文发送给客户端,客户端接收应答报文这一个过程。

  方法一、用[b]LoadRunner[/u]实现接口测试[/b]

  大家都知道LoadRunner是一种性能测试[/u]工具,但它也可以用在我们做接口测试的时候。开发人员开发出来的接口,提供给测试人员详细的接口使用说明书,该说明书最基本的要求如下:

  接口测试地址:/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做接口测试无法做到把接口参数和程序分理,接口的参数可以通过参数化的方法来实现对同一个参数多个数据的测试。参数化后的测试数据保存在此脚本的保存位置下。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: