前两天分公司的一个项目需要进行性能测试,要我们给予技术支持.这个项目的架构是B/S的,其中一项需要测试的业务,使用了CA认证技术(身份认证),因为原来没有编写过针对这种情况的测试脚本,所以费了一些周折,现在将这个过程整理出来,供遇到相同问题的朋友参考.
我们进行测试时,所使用的客户端为windows,使用的性能测试工具为LoadRunner7.8和LoadRunner8.0.下面是具体的设置过程:
1) 首先,在操作系统中安装CA证书.
这需要厂商提供一个可以导入到IE中的CA证书文件.CA证书文件在windows下的图标如下图所示:
双击,进行安装,显示安装向导,其中有一个步骤是要求填入密码,这个密码随CA证书文件一起提供的.其余步骤,按默认设置即可.最后,系统会显示一个安装成功的信息提示.这个时候,你启动IE,打开'工具>Interner选项',进入'内容'标签页,点击'证书'按钮,会显示下面这样一个窗口:
其中列出了这台机器上所安装的所有CA证书.我们这次测试所要使用的CA证书是列表中的第二个,即TRS-test3.
2)录制测试脚本
启动LR的Virtual User Generator,选择Web(HTTP/HTML)协议,开始录制,填入被测试网站URL,执行你预先设计好的操作,LR开始录制客户端与服务器之间的信息交互,最后停止录制.
在你填入被测试网站URL之后,执行你预先设计好的操作之前,IE会显示一个要你选择CA证书的窗口,选择正确的CA证书即可,然后会显示一个安全连接的确认窗口,点击确定即可,然后开始正式的录制过程.
3)修改测试脚本
录制完成后,观察脚本内容,你会找到一条LR产生的Authentication Functions ,LR的Authentication Functions 包括如下三个:
web_set_certificate
web_set_certificate_ex
web_set_user
如果LR没有自动产生这条语句,那就需要你手工添加到脚本中(我们当时的情况就是LR没有自动产生这个函数,结果试了很多其它的方法,最后才找到这个函数),脚本代码类似于这样:
/* 加载指定的URL */
web_url("wcm",
"URL=http://wcmtest.sz.gov.cn/wcm",
"Resource=0",
"RecContentType=text/html",
"Referer=",
"Snapshot=t1.inf",
"Mode=HTML",
LAST);
/* 选择相应的注册到IE中的CA证书 */
web_set_certificate( "2" );
/* 进入页面后相关的操作 */
web_url("loginpage2.jsp",
"URL=http://wcmtest.sz.gov.cn/wcm/loginpage2.jsp"
"Resource=0",
"RecContentType=text/html",
"Referer=",
"Snapshot=t2.inf",
"Mode=HTML",
LAST);
.....
.....
上面代码中的第二条语句,即是选择相应的CA证书的操作.其中的参数是注册到IE中的CA证书序号,序号从1开始计算.
4)验证脚本
好了,这个时候脚本中与CA相关的操作就做好了.在脚本中加入其它你需要的代码后,以各种方式重放脚本,保证脚本的正确性,然后你就可以组织各种场景展开测试了.