在测试https请求的时候发现无法通过,并且报错
Action.c(31): Error -27780: [GENERAL_MSG_CAT_SSL_ERROR]connect to host "xxxxxxxx" failed: [10054] Connection reset by peer      [MsgId: MERR-27780]

 

如图:

 

Loadrunner默认发送是通过sockets(将http转换为sockets)发送的,而sockets默认SSL的版本为SSL2和SSL3。HTTPS协议录制的脚本以SSL3版本回放时会使sockets端口连接失败,会被服务器拒绝连接。

方法一:设置Run-time Setting

找到Internet Protocol - Preferences - Advanced,勾选“winlnet replay instead of sockets(windows only)”选项,即可。

如图:

 

勾选这个选项后,LR就会使用winlnet的引擎回放脚本(只有windows使用)。设置这一项则数字证书在浏览器中获取;如果参数化数字证书,则此项不用打勾。

 

方法二:缺少https证书

 
解决方案:
1. 得到web网页的.cer证书
2. 借助openssl转换证书的格式为perm
3. loadrunner配置
 
======================================================
具体:
 
1. Google浏览器中先得到web网页的.cer证书
 
 
 
这边选择的格式需要记住,后续需要转换。
选择要保存的路径和文件名,完成.cer证书的导出。
2. openssl 转换证书格式
LR只支持.perm格式的证书,需要借助openssl。
① 下载openssl
官网的openssl貌似是win32的,win64不兼容
 
有时间也可以自己编译折腾一下(需要安装Perl、VS10、openssl),可以根据以下的教程来做:http://blog.csdn.net/houjixin/article/details/25806151
② 转换
打开cmd,运行openssl
 
中间打了马赛克的就是转换前后证书路径文件,一定要加上路径。
  • 路径不对会如下报错:
 
  • 转换的命令和cer文件的编译格式有关系,如果不对,会报如下错误:
 
 
以下是openssl命令的格式:
 
 
3. Loadrunner设置证书
 
https的端口号就固定的443。
 
5、配置完毕后,重新录制脚本,正常情况下,录制的脚本前面会出现证书信息,如下所示:

web_set_certificate_ex("CertFilePath=admin149.pem", 
                "CertFormat=PEM", 
                "KeyFilePath=admin149.pem", 
                "KeyFormat=PEM", 
                "Password=123456", 
                "CertIndex=1",

LAST);

6、若再报:GENERAL_MSG_CAT_SSL_ERROR: Connection failed to host during replay of the script 

放在   web_set_certificate_ex  前面
web_set_sockets_option("SSL_VERSION","TLS");
 
备注:
若出现:安全警报:该站点安全证书不可用,是否继续。
是因为该证书是开发自己弄的,并不能在信任机构中找到该证书,此时就是这个证书没法用。那么loadrunner就不能用了

 

posted on 2018-10-08 15:05  进_进  阅读(3189)  评论(2编辑  收藏  举报