本文档的目的是主要针对loadrunner性能测试工具Web Services协议的详解。达到性能测试的便捷性有效性。
Loadrunner,是一种预测系统行为和性能的负载测试工具,可适用于各种体系架构的自动负载测试,能预测系统行为并评估系统吸能。Loadrunner性能测试工具涉及多种协议的测试,一般最常见的协议有http协议,Web Services协议,sockets协议等,本文档主要针对Web Services协议进行详解。
Web Services是建立可交互操作的分布式应用程序的新平台,它通过一系列的标准和协议来保证程序之间的动态连接。其中最基本的协议包括soap,wsdl,uddi。
1.本LoadRunner性能测试Web Services协议模板脚本,取自实例“XX系统”。
2.由项目组提供请求报文,将报文转为.xml后缀文件,进入LoadRunner,点击Import SOAP,将报文导入luadrunner,填写系统访问地址,导入。
3.在已导入的脚本中添加事物名,可执行报文是否成功。
4.Web Services协议脚本通常有固定的格式,如脚本中,"
5.脚本中有用到关联法,来获取到报文中返回的请求值,获取请求值并判断返回值是否为成功。文中关联代码如下,lr_xml_extract为web services协议关联函数,response为请求报文的返回内容。
lr_xml_extract("XML={response}",
"FastQuery=/Envelope/Body/getPolicyResponse",
"XMLFragmentParam=ParamXml_getPolicyResponse",
LAST);
6.Web Services协议可不进行关联,直接取报文中response值进行输出判断。
7.脚本if语句为判断方法,使用到的判断函数为strstr,主要使用方法为,检索报文返回信息中是否包含判断项,如下为判断代码:
if (strstr(lr_eval_string("{ParamXml_getPolicyResponse}"),"成功")!=NULL) {
lr_end_transaction("webserver报文模板", LR_PASS);
}
else{
lr_end_transaction("webserver报文模板", LR_FAIL);
lr_error_message("webserver报文模板=%s", lr_eval_string("{ParamXml_getPolicyResponse}"));
}
实例:
Action()
{
lr_start_transaction("webserver报文模板");
soap_request("StepName=SOAP Request",
"URL=http://XXXXXXX",
//"URL=http://XXXXXXX",
"SOAPEnvelope="
"
"
"
"
"
报文
"
"
"
"
"SOAPAction=",
"ResponseParam=response",
"Snapshot=t1547804174.inf",
LAST);
lr_xml_extract("XML={response}",
"FastQuery=/Envelope/Body/getPolicyResponse",
"XMLFragmentParam=ParamXml_getPolicyResponse",
LAST);
//lr_end_transaction("获取保单概要信息",);
if (strstr(lr_eval_string("{ParamXml_getPolicyResponse}"),"成功")!=NULL) {
lr_end_transaction("webserver报文模板", LR_PASS);
}
else{
lr_end_transaction("webserver报文模板", LR_FAIL);
lr_error_message("webserver报文模板=%s", lr_eval_string("{ParamXml_getPolicyResponse}"));
}
return 0;
}