如何运用LoadRunner进行http接口测试

目前自己有接触到的接口主要有三类:WCF、WebService及http接口,前两类是标准型的服务接口。对于如何对接口进行功能测试,大家可以去网上查找下,有很多已有的测试工具,比如SoapUI、HttpClient等。在这里,我将主要针对如何运用LoadRunner进行接口的性能测试进行说明,其实LoadRunner也可以进行接口的功能测试。
在这之前,我相信大家应该都清楚LoadRunner是一款性能测试工具,它也可以运用在我们接口测试过程中。其实无论运用哪种测试方法,接口测试的原理是一样的,通过测试程序模拟客户端向服务器发送请求报文,服务器接收请求报文后对相应的报文做出处理然后再把应答报文发送给客户端,而客户端接收应答报文的这一个过程。
进行接口测试的必要前提是开发人员需要详细地将接口的说明文档提供给测试人员,该说明文档最基本的要求如下:
接口的测试地址:/mem/login?params=xxxxx
请求报文参数说明:
参数说明
这里写图片描述
param属性描述
这里写图片描述

请求报文格式:
请求参数params:CallValue的json格式数据

{
    "param":"{
    "userAccount":"18028721432",
    "passWord":"e10adc3949ba59abbe56e057f20f883e",
    "device":"IOS",
    }",
    "version":"v1.0",
    "loginLog":"2014-03-02 12:12:12……"
}

应答报文的参数接口说明:
参数说明(ReturnValue对象的json格式数据)
这里写图片描述

content属性描述
这里写图片描述

//成功原语:ReturnValue的json格式数据
{
    "message":"18028721432登入成功",
    "state":0,
"content":"{
"memberId": 5,
"session": " ad=8829e2711ec*c*6b6f665046c*373a370"
}"
}
//失败原语样例1:
{
"message":"18028721432登入失败"
" state ": 1,       //用户名或者密码错误
}

有了上述的接口说明之后,测试人员就可以根据这些描述在LoadRunner中手写测试脚本,我这边更多的是运用函数web_submit_data(),web_custom_request()向服务器发送请求。

第一种写法:使用web_custom_request()

web_custom_request("login",
    "URL=http://{IP}/MiddleWare/mem/login?",
    "Method=POST",
    "Resource=0",
    "RecContentType=application/json",
    "Referer=",
    "Mode=HTTP",
    "Body=params={\"param\":
 {\"userAccount\":\"15819730001\",\"passWord\":\"e10adc3949ba59abbe56e057f20f883e\",\"device\":\"IOS\"},\"version\":\"v1.0\",\"loginLog\":\"201508
10094530\"}",
LAST);

第二种方法:使用web_submit_data()

web_submit_data("login", 
     "Action=http://{IP}/MiddleWare/mem/login?", 
     "Method=POST", 
     "TargetFrame=", 
     "RecContentType=application/json", 
     "Snapshot=t5.inf", 
     "Mode=HTTP", 
     ITEMDATA,    
     "Name=params","Value={\"param\":{\"userAccount\":\"{UserName}\",\"passWord\":\"e10adc3949ba59abbe56e057f20f883e\",\"device\":\"IOS\"},\"version\":\"v1.0\",\"loginLog\":\"{testTimeParam}\"}",ENDITEM,
     LAST );

方法一适合请求参数较少的情况,如果请求参数较多时,我们可以先将请求参数拼接成一个字符串,然后通过web_custom_request()向服务器发送请求。

上面是如何运用LoadRunner进行接口测试,那么如何判断接口返回信息的正确性呢?这就需要用到文本检查点或关联了,可参考博客中的web_reg_find()及web_reg_save_param_ex函数详解。

由于web_reg_find()及web_reg_save_param_ex是注册型函数,因此需要放在web_custom_request()、web_submit_data等函数前面。
如:

web_reg_save_param_ex(
        "ParamName=sucStatusParam",
        "LB=\"state\":",
        "RB=,",
        SEARCH_FILTERS,
        "Scope=Body",
        "IgnoreRedirections=Yes",
        "RequestUrl=*/MiddleWare/*",
        LAST);

web_custom_request("login",
    "URL=http://{IP}/MiddleWare/mem/login?",
    "Method=POST",
    "Resource=0",
    "RecContentType=application/json",
    "Referer=",
    "Mode=HTTP",
"Body=params={\"param\":{\"userAccount\":\"15819730001\",\"passWord\":\"e10adc3949ba59abbe56e057f20f883e\",\"device\":\"IOS\"},\"version\":\"v1.0\",\"loginLog\":\"201508
10094530\"}",
    LAST);
if (atoi(lr_eval_string("{sucStatusParam}")) == 0){ 
        lr_output_message("登录成功"); 
        } 
     else{ 
        lr_error_message("登录失败"); 
     }
  • 6
    点赞
  • 51
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值