当前位置:文档之家› HTTPS的测试

HTTPS的测试

基于安全协议的https的页面测试脚本一、loadrunner8.1HTTPS(Secure Hypertext Transfer Protocol)安全超文本传输协议它是一个安全通信通道,它基于HTTP开发,用于在客户计算机和服务器之间交换信息。

它使用安全套接字层(SSL)进行信息交换,简单来说它是HTTP的安全版。

在使用https协议不管是服务器端还是客户端都需要使用到ca证书来进行访问。

一般来说,性能测试为所常见的为客户端使用https打开页面的方式。

在这个情况下,首先是处理https访问过程中的证书1.证书的准备常见的证书为:*.pfx,*.p12格式,该种格式的证书可以通过双击运行安装到IE浏览器上。

用户在访问的时候就可以使用到。

但这些证书并不是LoadRunner所使用的类型,因此需要对其进行转换。

将其转换为*.pem 格式。

转换方法如下:●安装openssl后●运行C:\<OpenSSL>/bin文件夹的openssl二进制文件,它将启动OpenSSL命令提示符●执行以下命令:pkcs12 -in c:\test1.pfx -out c:\test01.pem –nodes●或者直接在cmd下面执行:openssl pkcs12 -in c:\test1.pfx -out c:\test01.pem –nodes●执行后,将会在指定目录生成test01.pem文件,这个文件将会在下一个步骤,对LoadRunner进行配置的时候使用到。

2.LR配置启动LoadRunner,打开Recording Option选项。

选择后,单击New Enty红框中的配置为服务器的ip(或者域名)和端口号(ssl默认端口443),按照测试所需要的实际地址进行配置。

配置后,将Use specified client-side certificate[Base64/PEM]钩选,为使用客户端证书访问。

单击...选择刚刚转换生成的客户端证书。

如果你为证书有设置密码,在这里也需要输入。

到此为止所有与http区别的配置就完成了。

录制后,可以在脚本的开始,看到LoadRunner新生成的语句web_set_certificate_ex("CertFilePath=test01.pem","CertFormat=PEM","KeyFilePath=test01.pem","KeyFormat=PEM","Password=123456","CertIndex=1",LAST);下面的操作和普通的页面性能测试一样。

二、loadrunner111、证书的准备证书准备和loadrunner8.12、LR配置启动LoadRunner,打开Recording Option选项。

Capture level 选择winnet level data到此为止所有与http区别的配置就完成了。

录制后,可以在脚本的开始,看到LoadRunner新生成的语句web_set_certificate_ex("CertFilePath=WinINetCert1.pem", "CertFormat=PEM","KeyFilePath=WinINetCert1.pem","KeyFormat=PEM","Password=5326797a","CertIndex=1",LAST);将WinINetCert1.pem数字证书替换成你的客户端证书,并参数化将5326797a密码替换成你的客户端证书密码,并参数化打开run-time settings>preferences将winlnet replay instead of scokets(windows noly) 打勾(设置这一项则数字证书在浏览器中获取);如果参数化数字证书,则此项不用打勾。

下面的操作和普通的页面性能测试一样。

三、批量生成数字证书1、Jdk安装、Openssl安装和expect安装Jdk安装:略。

Openssl安装安装包:ActivePerl-5.16.3.1603-mswin32-x86Vcredist_x32.exeWin32OpenSSL-1_0_1e.exeexpect安装包:tcl-8.4.13-6.el5.x86_64.rpmexpect-5.42.1-1.x86_64.rpmexpect-devel-5.42.1-1.x86_64.rpmExpect安装命令:rpm -ivh tcl-8.4.13-6.el5.x86_64.rpm expect-5.42.1-1.x86_64.rpm expect-devel-5.42.1-1.x86_64.rpm2、带根证书的批量数字证书生成过程(1) 脚本准备A、根证书生成:CA.pl -newcaOpenssl pkcs12 -export clcerts -in demoCA\cacert.pem -inkey demoCA\private\cakey.pem -out cakey.p12B、生成以下脚本文件:Cacert.pem (根证书)Cakey.pem (根证书密钥)f (openssl配置文件)Makep12.shTest.expRun.sh脚本内容:Makep12.sh#!/bin/bashi=$1Sed -i “52 s/tester.*/tester${i}/” fOpenssl genrsa -out key/tester${i}.key 1024Openssl req -new -out csr/tester${i}.csr -key key/tester.${i}key -config fOpenssl x509 -req -in csr/tester${i}.csr -out cer/tester${i}.cer -CA cacert${i}.pem CAkey cakey${i}.pem -days 365 -set_serial ${i}Openssl pkcs12 -export -clcerts -in cer/tester${i}.cer -inkey key/tester${i}.key -out p12/tester${i}.p12 -nodesOpenssl pkcs12 -in p12/tester${i}.p12 -out pem/tester${i}.pem -nodesTest.exp#!/usr/bin/expectSet num [lindex $argv 0]Spawn ./makep12.sh $numExpect “pem:”Send “123456\r”Expect “Password:”Send “123456\r”Expect “Password:”Send “123456\r”Expect “Password:”Send “123456\r”Expect eofExitRun.sh#!/bin/bashFor ((i=1;i<=10000;i=$[$i+1]));do./test.exp $iDone(2) 脚本执行A、以root用户登录linux系统,在root目录下新建一个ca目录Mkdir caB、进入ca目录,新建5个目录Mkdir keyMkdir csrMkdir cerMkdir p12Mkdir pemC、将上一步生成的6个脚本文件用ftp工具上传到/root/ca目录下D、给脚本赋执行权限Chmod u+x run.sh test.exp makep12.shE、修改run.sh脚本,将序列号范围i=1;i<=10000 改为你想要生成的序列号范围F、运行run.sh脚本./run.sh3、不带根证书的批量数字证书生成过程keytool -genkey -v -alias myserver -dname "CN=localhost" -keyalg RSA -keypass 123456 -keystore server.ks -storepass 123456keytool -genkey -v -alias myclient -dname "CN=yerh" -keyalg RSA -keypass 123456 -keystore client.p12 -storepass 123456 -storetype PKCS12keytool -export -alias myclient -file client.cer -keystore client.p12 -storepass 123456 -storetype PKCS12keytool -import -v -alias myclient -file client.cer -keystore server.ks -storepass 123456openssl pkcs12 -in client.p12 -out client.pem -nodess四、测试过程中遇到的问题1、使用多个测试发生器时报The file .......WinINetCert1.pem which is part of script ...cannot be find解决办法:在控制器端的测试脚本目录下面添加文件WinINetCert1.pem。

2、使用多个测试发生器时报Error -27716:Certificate File (....\tester1.pem)not be find解决办法:将证书文件拷贝到测试发生器对应的目录下面。

相关主题