在工作中很多时候都需要进行接口测试,如果只是进行接口的功能测试这个很简单,两种类型:
1、如果是基于get的直接使用浏览器进行访问,查看服务器返回的数据是否正确就行,
2、如果是基于post的可以接触一些插件进行测试,但是不推荐,那样就只能是慢慢的一直从事功能测试,所以这里建议使用脚本进行测试,经常使用的是使用python编写一个发送请求的脚本,查看服务器返回的数据
当然这里要说的不是这两个方法,这里说的是我们很多初级测试员所期望的用loadrunner进行性能测试,其实性能测试不只是你会一个工具就可以了,里面有很多的东西需要懂,所以慢慢学习吧,同样我也在学习中。这里和大家分享的是使用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做接口测试无法做到把接口参数和程序分理,接口的参数可以通过参数化的方法来实现对同一个参数多个数据的测试。参数化后的测试数据保存在此脚本的保存位置下。