Loadrunner录制https脚本
2021-06-28 00:06
随着公司的发展,公司原有的SVN服务器存放的内容不断增加,容量已经不能满足后续需求,首先我们想到对服务器进行扩容,然而因为各种原因服务器不能进行扩容,所以公司决定更换新的SVN服务器,在做数据迁移和环境部署之前我们需要对服务器进行一次性能测试,了解部署后的服务器性能,测试过程中需要对https的网页进行性能测试。
我们可以用loadrunner录制http网页,但是当录制https网页的时候会发现证书错误不能录制以及其他方面的问题,这时要考虑loadrunner能否录制https的脚本,查阅资料后发现Loadrunner完全可以录制https的脚本,和录制http网页多了一些步骤,主要是添加证书,协议两个方面。以下是本次性能测试过程中对https脚本录制的一些总结。
一、获取证书
HTTP协议传输的数据都是未加密的,因此使用HTTP协议传输隐私信息非常不安全。为了保证这些隐私数据能加密传输,于是网景公司设计了SSL(Secure Sockets Layer)协议用于对HTTP协议传输的数据进行加密,从而就诞生了HTTPS。HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。因此涉及到重要信息好多使用https链接。
采用HTTPS协议的服务器必须要有一套数字证书,可以自己制作,也可以向组织申请。区别就是自己颁发的证书需要客户端验证通过,才可以继续访问,而使用受信任的公司申请的证书则不会弹出提示页面。本次测试就会提示证书不可信是否继续访问界面。
证书获取可以让开发提供或者自己获取,自己获取首先先访问需要测试的地址,然后从浏览器中将证书导出,导出格式默认.cer文件,需要转换为loadrunner识别的.pem模式(直接修改后缀名把.cer为.pem可以使用,大家可以尝试修改),其他转换方法大家可以找度娘帮助解决。
IE浏览器获取方法:
Inetenet选项--内容--证书--找到相应证书并导出
二、证书导入
把从浏览器或者开发那里得到的证书导入到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新增,以下是具体内容:
TargetServer:设置地址svn.qwerty.com也可以是IP例如192.168.0.1
Port:端口号 例如1234
ConnectionType:选择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函数,这个函数可以让我们输入账号验证信息。
web_set_user("useradmin",
lr_decrypt("password"),
//明文密码,下面是loadrunner录制的密码,两种密码都可以使用
//lr_decrypt("591e5543c21012e4f3d92abc206d91"),
"svn.qwerty.com:123456");//地址和端口号
以下是IE录制的脚本
添加web_set_user函数,可以正常回放并且能跑通,解决不能录制到用户信息问题。
2、火狐浏览器录制
火狐浏览器能录制到登录信息,缺少协议类型,我们需要添加一个协议类型的函数脚本就可以跑通,
web_set_sockets_option("SSL_VERSION","TLS");
//作用是增加使用协议具体的类型,使脚本能够正常运行。
以上就是本次测试过程中遇到的问题和解决办法,希望能帮到大家解决loadrunner对https脚本录制的问题。