1.项目背景

1.1 单双向SSL的含义及部署

单向SSL即我们说到的https协议。

特点是,浏览器需要请求验证服务器证书;

基本含义是:一个安全通信通道,它基于HTTP开发,用于在客户计算机和服务器之间交换信息。它使用安全套接字层(SSL)进行信息交换,简单来说它是HTTP的安全版。

双向SSL顾名思义就是双方都需要验证证书的协议,浏览器首先向服务端请求证书,然后服务器端需要向浏览器请求目前登陆用户的个人证书验证。

1.2 系统的基本部署

单向SSL交互过程:

使用单向SSL时,仅通过虚拟主机2,请求即可传递到tomcat完成整个通信过程。

双向SSL交互过程:

使用双向SSL时,请求先到虚拟主机2,由虚拟主机2rewrite至虚拟主机3,再由虚拟主机3与tomcat进行通信。同时在虚拟主机3,会将用户证书放在参数中随请求一起传递给tomcat。

1.3 测试背景

为了配合使用证书系统,本系统上所有请求将更改为使用https进行访问。同时为了增加安全性以及对本系统核心操作的控制,需要对请求进行分级控制,即普通操作为单向SSL,核心操作为双向SSL。

需要交互的系统:OSCP服务器,用于在线验证证书状态。

2.测试目的

主要验证系统:

(1). 评估在预期用户规模的情况下,系统是否响应正常。

(2). 评估系统在应用了单双向SSL之后响应的区别,关联服务器是否会影响该系统的性能情况。

(3). 在逐渐增加负载的情况下,分析系统瓶颈。

(4). 在压力情况下系统的表现。

(5). 在长时间运行该模块是否会出现系统性能异常。

3.测试分析

3.1场景分析

假设根据系统分析,主要测试两个场景,第一是单向SSL,登陆场景,第二是双向SSL,对下载文件功能。假设预估的并发用户量都是10人。

用户行为

操作

预估并发用户量

下载文件

选择指定文件->下载

10

登陆

填写用户名和密码->登陆->加载登陆后界面

10

3.2测试模块分析

负载测试:主要测试各个场景在正常情况下是否运转,是否系统响应正常。并且对比应用了单双向SSL之后的响应差别,关注到关联服务器是否会影响该系统的性能情况。

并且在不断增加负载的情况下,分析系统的瓶颈。

压力测试:主要考察在压力情况下系统的表现,是否会出现性能异常,以及出现异常之后是否能及时回复并给与友好性提示。

长时间稳定性测试:主要测试系统在预期的用户量下,在一段时间内,是否能够稳定的响应。重点关注下内存是否泄漏。

4.测试执行

基本步骤:录制LoadRunner脚本->执行LoadRunner场景->进行分析

在测试执行里主要说一下录制脚本时遇到的问题,关于loadrunner对于单双向SSL脚本录制的问题。

主要从以下几个方面来说,如何将浏览器导出的证书.crt转换为.pem,如何录制单向SSL脚本,如何录制双向SSL脚本。

4.1 如何将浏览器导出的证书.crt转换为.pem

所有的blog上都说用openssl转换。那么哪里有openssl?

答:这个再linux下面一般都带的,没有的话yuminstall openssl 就可以了

步骤是什么?

答: pfx提取公钥私钥方法如下:

openssl pkcs12 -in server.pfx -nodes -out temp.pem  //生成临时文件:temp.pem

openssl rsa -in temp.pem -out server.key         //生成服务器私钥 server.key

openssl x509 -in temp.pem -out server.pem    //生成服务器公钥 server.pem

4.2 如何录制单向SSL脚本?

只需要设置LoadRunner即可,LR中可以直接录制https脚本,只需在create new scripts->web(HTTP/HTML)->start record->options->netword下的port mapping,设置为winnetlevel data (2、runtime setting -> Internet protocol->perference 选中 WinInet replay instead of sockets.)

4.3 如何录制双向SSL脚本?

由于LR的机制是利用LR模拟浏览器与服务器进行交互,所以证书需要安装在

---------------------------------------------------------------------------------------------

1. 证书的准备

常见的证书为:*.pfx格式,该种格式的证书可以通过双击运行安装到IE浏览器上。用户在访问的时候就可以使用到。

但这种证书并不是LoadRunner所使用的类型,因此需要对其进行转换。将其转换为*.pem格式。

转换方法如下:

Ø安装openssl后

Ø运行C:\<OpenSSL>/bin文件夹的openssl二进制文件,它将启动OpenSSL命令提示符

Ø执行以下命令:pkcs12 -in D:\test1.pfx -out D:\test01.pem –nodes

Ø执行后,将会在指定目录生成test01.pem文件,这个文件将会在下一个步骤,对LoadRunner进行配置的时候使用到。

2. LR配置

启动LoadRunner,打开Recording Option选项。

留意红色框中的选项。

选择后,单击New Enty

红框中的配置为服务器的ip和端口号,按照测试所需要的实际地址进行配置就可以

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

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

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

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

录制后,可以在脚本的开始,看到LoadRunner新生成的语句

web_set_certificate_ex("CertFilePath=test01。pem",

"CertFormat=PEM",

"KeyFilePath=test01。pem",

"KeyFormat=PEM",

"Password=123456",

"CertIndex=1",

LAST);

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

Loadrunner 录制htpps 协议通过IE打开页面,报错“Internet Explorer cannot display the webpage”.

但是直接打开IE不通过 loadrunner打开https页面却可以正常打开。
 
 
问题解决如下(Windows 7):
执行:cmd
然后执行命令:certutil -setreg chain\minRSAPubKeyBitLength 512
重启电脑,问题解决。
 
参考文章:
 
 
测webservice遇到https的请求,是在事务开始前加web_set_sockets_option("SSL_VERSION","TLS");

Loadrunner对https协议(单双向SSL)的web端性能测试的更多相关文章

  1. 使用loadrunner对https协议(单双向SSL)的web端性能测试 (转)

    1.项目背景 1.1 单双向SSL的含义及部署 单向SSL即我们说到的https协议. 特点是,浏览器需要请求验证服务器证书: 基本含义是:一个安全通信通道,它基于HTTP开发,用于在客户计算机和服务 ...

  2. LoadRunner录制HTTPS协议脚本

    学习LoadRunner录制HTTPS协议脚本,其实是一个意外的收获.当我拿到要测试的URL时,我像以前的步骤一样录制脚本,但是录制结束后,发现并没有生成脚本,开始以为是LoadRunner的原因,我 ...

  3. loadrunner支持https协议的操作方法-经验总结

    问题:用户portal支持https协议,用loadrunner录制登陆脚本时发现未录制到用户名和密码 录制到的脚本如下: login() { lr_think_time(10); web_url(& ...

  4. 转 关于Https协议中的ssl加密解密流程

    关于Https协议中的ssl加密解密流程 2016年09月28日 09:51:15 阅读数:14809 转载自:http://www.cnblogs.com/P_Chou/archive/2010/1 ...

  5. 在linux下的apache配置https协议,开启ssl连接

    环境:linux 配置https协议,需要2大步骤: 一.生成服务器证书 1.安装openssl软件 yum install -y openssl mod_ssl 2.生成服务器私匙,生成server ...

  6. Loadrunner进行HTTPS协议性能测试

    1.最简单办法就是在脚本前面加上:web_set_sockets_option("SSL_VERSION","TLS"),一般能解决HTTPS协议的请求问题,无 ...

  7. HTTPS协议工作原理(SSL数字证书)

    目录 HTTPS SSL协议的工作过程 SSL数字证书的查看 HTTPS 我们都知道HTTP协议是明文传输的,并且不能验证对方的身份,而且不能保证数据的完整性.而当我们在网络上进行购物电子交易时,电子 ...

  8. Loadrunner之https协议录制回放报错如何解决?(九)

    一.录制中遇到报错27778的问题(如下图1),即关于录制的链接为https开头的问题,分两个步骤解决,如下: 图1 https访问报错解决步骤如下: 1.修改Vuser-->Run-time ...

  9. 自定义SSL证书实现单双向ssl认证记录

    自定义SSL证书: 1.ca证书 #openssl genrsa -out ca.key 2048 #openssl req -new -key ca.key -out ca.csr #openssl ...

随机推荐

  1. mysql防止误删除的方法

    为了防止在更新和删除的时候,没有写where条件而对全部数据进行操作,mysql提供了一个参数来防止此情况的发生 需要在启动mysql的时候,增加参数--i-am-a-dummy含义是我是新手,或者使 ...

  2. python 基础总计 2

    6.函数:      match.sqrt(),lower(),len(),type(),isinstance('a',str),max(),min(),dir(),hex(),setattar(ob ...

  3. 使用 WebSphere ILOG JRules 开发保险应用系统

    使用 WebSphere ILOG JRules 开发保险应用系统 概述 保险行业在国内是一个充分竞争的行业,竞争的加剧导致保险公司的业务管理等各项费用在增长.而保险公司业务支撑系统的先进性与灵活支撑 ...

  4. 从零写Java Web框架——实现Ioc依赖注入

    大概思路 通过读取配置文件,获取框架要加载的包路径:base-package,类似于 Spring 配置文件中的: <context:component-scan base-package=&q ...

  5. 火狐FireFox57不支持Tab Mix Plus插件的问题

    火狐的Tab Mix Plus插件管理标签页很好用,但是在这次升级到57版本后不能用了,也没找到合适的替代品. 该插件一个很常用的功能是在新建的标签页打开网页(而不是在当前页上跳转),该功能直接修改C ...

  6. 【Unity笔记】使物体(船)漂浮在水面上——浮力

    在官方论坛看到一个关于怎么使物体漂浮在水面上的讨论:https://forum.unity3d.com/threads/floating-a-object-on-water.31671/ 水动力系统 ...

  7. linux系统管理命令(五)

    [教程主题]:1.系统管理命令 [1.1]用户和组管理 在Linux操作系统中,任何文件都归属于某一特定的用户,而任何用户都隶属于至少一个用户组.用户是否有权限对某文件进行访问.读写以及执行,受到系统 ...

  8. Extjs4.2 Tree使用技巧小结demo

    本案例使用了Ext.Tree.Panel的如下知识点: 1.刷新.重新加载Tree,定位到上次的节点位置 2.Tree的右键操作 3.Extjs4.x Tree获取当前选中的节点 4.新增.修改.删除 ...

  9. python List的一些相关操作

    把一些基础的东西归类整理,作记录. 添加元素 a=[7,8,9,10] a.append('a') #在最后位置添加 a.insert(1,'b') #在指定位置添加     删除元素 del a[1 ...

  10. powerdesigner 导出excel

    PD菜单栏中,依次点击 Tools ->Excute Commands->Edit/Run Script.. 填入 '*********************************** ...