项目中,需要对提供https服务的esb进行压力测试。测试的同事们都采用loadrunner进行压力测试,但之测过http的,没有测过https的。
自己拿来研究了一下,发现能够使用,给大家分享一下。
esb 提供 https + post 服务,loadrunner脚本编写如下:
Action()
{
lr_rendezvous("提交");
lr_start_transaction("Commit");
web_reg_save_param("RespCode",
"LB=RespCode\":\"",
"RB=\",\"RespDesc",
"Search=Body",
"Notfound=error", LAST);
/*录入证书信息*/
web_set_certificate_ex("CertFilePath=C:/Users/Neusoft/Desktop/证书/root.pem",
"CertFormat=PEM",
"KeyFilePath=C:/Users/Neusoft/Desktop/证书/client.pem",
"KeyFormat=PEM",
"Password=1234567",
"CertIndex=1",
LAST);
/* 选择相应的注册到IE中的CA证书 */
web_set_certificate( "1" );
web_custom_request("commonProcessor!commonMethod.action_15",
"URL=https://api.potevioservicebus.cn:8243/potevio/services/balanceQuery",
"Method=POST",
"Resource=0",
"RecContentType=application/json",
/*"Referer={url}/potevio/ptscindex/index.jsp?title=CRM&appname=crm#",
"Snapshot=t35.inf",
"Mode=HTML", */
"EncType=application/json",
"Body={\"StreamNo\":\"{SystemId}{date}{Seq}\",\"SystemId\":\"{SystemId}\",\"ReqTime\":\"{date}\", \"TransBody\":{ \"QueryType\":2, \"QueryValue\":\"18666666666\" }}",
LAST);
if(strcmp(lr_eval_string("{RespCode}"), "0000") == 0)
{
lr_end_transaction("Commit", LR_AUTO);
}else{
lr_end_transaction("Commit", LR_FAIL);
};
lr_output_message("收到结果:%s",lr_eval_string("{RespCode}"));
return 0;
}
随后直接F5执行,即可测试。
注:
测试脚本 可能写的不够全面,这是从测试人员的脚本中摘出来的,然后加上 ssl相关的脚本,即可正常通信。