loadrunner录制HTTPS协议的脚本
一、获取证书
HTTP协议传输的数据都是未加密的,因此使用HTTP协议传输隐私信息非常不安全。为了保证这些隐私数据能加密传输,于是网景公司设计了SSL(Secure Sockets Layer)协议用于对HTTP协议传输的数据进行加密,从而就诞生了HTTPS。HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。因此涉及到重要信息好多使用https链接;
采用HTTPS协议的服务器必须要有一套数字证书,可以自己制作,也可以向组织申请。区别就是自己颁发的证书需要客户端验证通过,才可以继续访问,而使用受信任的公司申请的证书则不会弹出提示页面。本次测试就会提示证书不可信是否继续访问界面;
证书获取可以让开发提供或者自己获取,自己获取首先先访问需要测试的地址,然后从浏览器中将证书导出,导出格式默认.cer文件,需要转换为loadrunner识别的.pem模式(直接修改后缀名把.cer为.pem可以使用);
google浏览器获取证书的方式:
1、在浏览器输入要录制脚本的https站点,打开开发者工具,选择 Security---》view certificates-》详细信息--》导出所选证书:
使用openssl工具将cer证书转化为pem证书,切换到loadrunner安装bin目录,已安装有openssl工具,
执行以下命令进行证书格式的转换:x509 (-inform der如果提示unable to load certificate就不需要inform der) -in test.cer -out test.pem
完成后exit退出转化。
二、证书导入
把从浏览器或者开发那里得到的证书导入到loadrunner,然后对录制的地址和端口号协议等进行配置。
1、进入配置界面
以下是两种进入配置界面的方法:
新建录制:Start Recording---Options---PortMapping或者Tools--Recording Options打开设置界面
打开的界面如下图所示。
2、Capture level(捕获级别)选择
Capture Level默认选中的为Socketlevel data,而关于Capture Level这个选择loadrunner有以下一段解释,不同浏览器录制时选择类型不同。使用IE浏览器时本次脚本需要选择WinlNet level data。火狐浏览器选择了第三种,不选择第三种录制内容都是空白,脚本不能录制。
a、Socket leveldata.
Capture data using trapping on the socket level only. Port mappings apply inthis case (default).
b、WinINetlevel data.
Capture data using hooks on the WinINet.dll API used by certain HTTPapplications. The most common application that uses these hooks is InternetExplorer. Port mappings are not relevant for this level.
c、Socket leveland WinINet level data.
Captures data using both mechanisms. WinINet level sends information forapplications that use WinINet.dll. Socket level sends data only if itdetermines that it did not originate from WinINet.dll. Port mapping applies todata that did not originate from WinINet.dll.
3、内容配置
点击New Entry(新增条目)新增,以下是具体内容:
目标服务器地址:设置地址xxx.vvv.com也可以是IP例如192.168.0.1
Port:端口号 例如1234
服务类型:选择SSL
主要注意SSL configuration里面的几项选择,SSL verison 里面包括ssl协议, 以及TLS协议,这里你录制的是什么协议就选择什么协议,最后选项导入证书,把我们下载得到的证书导入到loadrunner,点击选择导入的证书导入即可。
4、打开run-timesettings>preferences ,根据需要配置
1、使用IE浏览器进行录制
将winlnetreplay instead of scokets(windows noly) 打勾(设置这一项则数字证书在浏览器中获取);如果参数化数字证书,则此项不用打勾。默认情况下我们的脚本是通过sockets端口方式进行回放的,某些情况下这种回放会被服务器拒绝,这时可以换用winlnet的引擎来回放脚本。Ie浏览器也是基于winlnet引擎的,所以兼容性比较好一点,其他浏览器可能是socket。
配置完成后进行脚本录制,用loadrunner录制脚本时发现这次https脚本可以录制,但是未录制到用户名和密码,所以回放不成功,脚本需要更改这时我们需要添加web_set_user函数,这个函数可以让我们输入账号验证信息。