LoadRunner系列之—-04 录制基于https协议的脚本
实际性能测试过程中,有些需录制脚本的页面或接口是基于https协议的,按原来方法录制脚本,录完了脚本是空的。为解决这个问题,第一步了解https协议的具体实现,这块网上资料很多,可参考页面下方参考资料中链接;第二步实践。
如下为具体操作步骤如下:
1. 获取证书
1.1 通过ie浏览器访问https:
1.1.1 点击右上角黄色的锁或者在工具选项查找安全证书,选详细信息标签后,把安全证书复制到文件;
1.1.2 按照对话框中提示信息,输入要保存的名称保存到所选路径下!具体如图:
图1.保存安全证书
1.2 用openssl实现私钥和证书的格式转换
LR的安装目录下,包含OpenSSL的工具。路径如下:... HP\LoadRunner\bin
CER/DER--PEM(编码DER--BASE64)
x509 -inform der -in C:\Users\nan\Documents\baidu.cer -out certificate.pem
图3.执行openssl命令
2. LoadRunner Recording Option 设置
2.1 Network:Port Mapping设置
options->netword下的port mapping,设置为winnet level data,或者Socket level and WinNet level Data
2.2 Network:Port Mapping中增加一个Server Entry
LoadRunner,选择:Web (HTTP/HTML)协议录制,添加url,打开option选项在NetWork选项中新添加一个Entry如下图:
图2.Server Entry 设置
注释1:如需指定某台服务器,可以在Target Server中输入ip,否则可以为默认值Any Server; 注释2:SSL verison 里面包括ssl协议的 以及TLS协议,一般情况下默认; 注释3:Use specified client-side dertificate (64-PEM)选择下载好的客户端证书,LoadRunner目前支持crt、pem,设置完成后点update; 注释4:Password用于设置安全证书的密码。
2.3 使用IE浏览器进行录制
将winlnetreplay instead of scokets(windows noly) 打勾(设置这一项则数字证书在浏览器中获取);如果参数化数字证书,则此项不用打勾。默认情况下我们的脚本是通过sockets端口方式进行回放的,某些情况下这种回放会被服务器拒绝,这时可以换用winlnet的引擎来回放脚本。
Ie浏览器也是基于winlnet引擎的,所以兼容性比较好一点,其他浏览器可能是socket。
2.4 回放脚本时报错
问题:主要报错是ssl隧道的问题:SSL protocol error
解决方法:需要设置Run-Time settings -> Preferences -> Advanced , 勾选上 WinInet replay instead of Sockets (Windows only) 。
3、 录制时存在的问题解决
在录制初始,弹出第一个问题“Internet Explorer cannot display the webpage”类似,这主要是因为支持长度不对,具体原理不再描述只说解决方案
问题解决如下(Windows 7):执行:cmd
然后执行命令:certutil -setreg chain\minRSAPubKeyBitLength 512重启电脑,问题解决
-------------------------------其他问题------------------------------
1. 如何录制双向SSL脚本?
由于LR的机制是利用LR模拟浏览器与服务器进行交互,所以证书需要安装在IE浏览器里。
2. 参考资料
https原理:证书传递、验证和数据加密、解密过程解析 - http://www.cnblogs.com/zhuqil/archive/2012/07/23/2604572.html