JMeter http(s)测试脚本录制器的使用

by:授客 QQ1033553122

http(s) Test Script Recorder允许Jmeter在你使用普通浏览器浏览web应用时,拦截并录制你的操作.

录制前阅读以下文章,确保正确设置了jmeter

https://wiki.apache.org/jmeter/TestRecording210

操作步骤:

1. 
添加线程组(Add --> ThreadGroup

2. 
为线程组添加http默认(Add
--> Config Element --> HTTP Request Defaults

如图,设置要访问的web应用所在的服务器域名、主机名称、ip地址

3. 
右键WorkBench(工作台)->Add
--> Non-Test Elements(非测试元件)
-->HTTP(s)代理服务器

说明:HTTP(s) Test
Script Recorder是以HTTP(S)代理服务器的形式实现。必须为所有HTTP和HTTPS请求设置浏览器代理.[不要用Jmeter作为其它任意请求类型的代理,比如FTP,等-因为Jmeter不能处理它们]

录制会话时,理想的情况是使用隐私浏览模式,确保浏览器启动时没有已存储的cookie,并防止某些改变被保存。例如,火狐不允许永久保存重写的证书。

关键属性说明


IE8下开启隐私浏览模式:安全->InPrivate浏览

HTTPS

录制和证书

HTTPS连接使用证书来验证浏览器和web服务器之间的连接.当进行HTTPS连接时,服务器提供证书给浏览器.为了验证证书,浏览器检查由证书颁发机构(CA)颁发的服务器证书链接到其内置的某个root
CAs.[同时浏览器还会检查证书对应的主机、域名是否正确,

是否合法,且没过期的。]如果检查失败,它将弹出提示框,提示允许继续连接

Jmeter需要使用自己的证书来拦来自浏览器的HTTPS连接.Jmeter必须有效的假装为目标服务器.

2.10开始,Jmeter将生成自己的证书.生成的证书带有效期和随机密码,有效期由属性proxy.cert.validity定义,默认为7天)。如果Jmeter检测到运行Java7或以上,它将根据需要动态的为每个目标生成证书,除非定义了以下属性:proxy.cert.dynamic_keys=false.

当使用动态模式时,证书将对应正确的主机名,且由JMeter-generated CA
certificate颁发.默认的,该CA

证书不被浏览器信任,然后它可以被信任的方式进行证书安装.安装完成后,生成的服务器证书将被浏览器所接受。好处就是即使内嵌的HTTPS资源也可以被捕获,且没必要为每个新服务器重复浏览器检查(浏览器不为内嵌资源弹出提示框,所以使用早期版本,仅从浏览器已识别的服务器下载内嵌资源),除非提供一个keystore(并且定义了proxy.cert.alias属性),Jmeter需要用keytool应用程序来创建keystore条目。2.10版本后的Jmeter,包含有检查是否可获取keytool的代码。如果Jmeter不能找到keytool,它将报告错误。如有必要,可用keytool.directory属性来告诉Jmeter去哪里查找keytool。应该在system.properties文件中定义该属性。当点击启动按钮(Start
button)时,生成Jmeter证书。生成证书需要一点时间,在这期间GUI可能会反应缓慢.当完成证书生成时,GUI会弹出一个包含root
CA证书的详细信息的对话框。浏览器需要安装该证书,使其接受Jmeter生成的主机证书。

如果有必要,可强制Jmeter生成keystore(和导出的证书
-   ApacheJMeterTemporaryRootCA[.usr|.crt])通过从Jmeter目录删除keystore文件
proxyserver.jks

2.9版本的JMeter,为所有目标服务器使用单一的证书.
[同样,如果Jmeter不是运行在JAVA
1.7或更高版本下],该证书不是浏览器信任的,将不能用于正确的主机

结果是:

  • 浏览器显示一个对话框,询问是否接受证书.例如:

1)服务器名为www.example.com不匹配证书名"JMeter
Proxy (DO NOT TRUST)".
其他人可能视图窃听你

2)"JMeter Proxy (DO NOT
TRUST)"证书,由未知证书颁发机构"JMeter
Proxy (DO NOT TRUST)"颁发.该这证书不可能被确认为一个合法证书

需要接受证书来拦截SSL通信进行录制,但是不要永久接受,而是临时接受.浏览器仅为主页url弹出对话框,不为页面中携带的资源,比如图片,css,javascript等托管于一安全外部CDN文件.如果你有这样的资源(比如gmail),你应该首先手工浏览这些区域以便为它们接受Jmeter的证书.检查jmeter.log

查看需要注册证书的安全领域.

  • 如果浏览器已为这些领域注册了已验证的证书,浏览器将检测,把Jmeter作为安全漏洞,并会拒绝加载该页面。如果是这样,你必须删除从浏览器的密钥存储在受信任的证书.

2.10起,Jmeter还支持这些方法,且还是会这么做,如果你定义了以下属性: 
proxy.cert.alias

以下属性可用于改变被使用的证书:

  • proxy.cert.directory
    -
    查找证书的目录(缺省为JMeter
    bin/)
  • proxy.cert.file
    - keystore文件名(缺省为
    "proxyserver.jks")
  • proxy.cert.keystorepass -
    keystore密码(缺省为"password")
    [如果使用Jmeter证书则被忽略]
  • proxy.cert.keypassword
    -
    证书key密码(缺省为
    "password")
    [如果使用Jmeter证书则被忽略]
  • proxy.cert.type
    -证书类型(默认为"JKS")[如果使用Jmeter证书则被忽略]
  • proxy.cert.factory
    -厂商(factory)(缺省为"SunX509")
    [如果使用Jmeter证书则被忽略]
  • proxy.cert.alias -

    要使用的key的别名.如果被定义,Jmeter不尝试生成自己的证书.

  • proxy.ssl.protocol -

    要使用的协议(缺省为"SSLv3")

如果浏览器当前使用了一个代理(如,一个可能通过代理路由所有外部请求的公司内网),
那么启动前,需要告诉Jmeter使用代理tell JMeter to use that
proxy
,使用command-line
options
-H and
-P.同样,当运行生成测试计划时也需要进行同样的设置

 


HTTPS录制安装JMeter
CA
证书

运行于Java
7下时,Jmeter可以为每个服务器生成证书.确保可正常工作,由root
CA
颁发给Jmeter使用的证书需要被浏览器信任.如果有必要,第一次启动录制器时,它会生成证书。root
CA证书被导出到当前启动目录下,一个名为ApacheJMeterTemporaryRootCA的文件当证书被安装后,Jmeter将显示一个包含当前证书的详细信息的对话框.此时,证书可按照下面的说明导入到浏览器中.

注意,一旦root CA证书被当作信任的CA证书安装,浏览器将信任任何由它颁发的任意证书.

直到证书过期或从浏览器中移除,它将不提示用户所依赖的证书.任何获得keystore和密码的人可用证书来生成可被任意信任root
CA证书的浏览器接受的证书.处于该因素,keystore的密码和私钥(private
key)是随机生成的,并且使用短的有效期。密码存在本地偏好区域.确保仅被信任用户可访问带有keystore的主机.

 


在火狐浏览器中安装证书

1.工具(Tools)
->选项(Options)
->高级(Advanced)
->证书机构(Certificates)


2.

查看证书(View
Certificates)
->机构(Authorities)
->导入(Import)
..

3.选择Jmeter启动目录,点击文件ApacheJMeterTemporaryRootCA.crt,打开

4.选择导入的证书,点击“查看”(View),检查证书“详细信息”(certificate
details)是否和Jmeter
Test Script Recorder显示的证书信息一致

5.如果是,选择打开“编辑信任”,勾选“此证书可以标识网站”(Trust
this CA to identify web sites"),点击OK


Chromeie浏览器中安装证书


Opera浏览器中安装证书

Tools ->
Preferences -> Advanced -> Security

->Manage
Certificates... ->选择"Intermediate"
->点击"Import..."

->选择Jmeter启动目录,点击文件ApacheJMeterTemporaryRootCA.usr,打开

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

4. 
为浏览器设置代理

IE为例,工具
->连接
->局域网设置,勾选为“LAN使用代理服务器(这些设置不用于拨号或VPN连接)(X)”

如果有必要,点击图示的“高级”进行http(s)代理设置

步骤5.点击Jmeter代理服务器界面上的“启动”按钮,启动代理服务器

步骤6.用ie打开要访问的web应用站点,比如http://ishouke.blog.sohu.com

结果如下

JMeter http(s)测试脚本录制器的使用的更多相关文章

  1. 『动善时』JMeter基础 — 45、脚本录制工具Badboy介绍

    目录 1.Badboy软件介绍 2.Badboy下载 3.Badboy安装 4.Badboy界面介绍 (1)菜单栏: (2)工具栏: (3)左下角界面视图: 1.Badboy软件介绍 Badboy是一 ...

  2. 软件测试_Loadrunner_APP测试_性能测试_脚本录制_基本操作流程

    这次主要是写一下使用Loadrunner对APP进行性能测试的基本流程,有关性能测试监控指标请查看链接:软件测试_性能测试_关注点. 先决条件:已安装Loadrunner.如未安装,请查看链接:软件测 ...

  3. 软件测试_Loadrunner_性能测试_脚本录制_录制多server请求脚本

    之前我们写过使用Loadrunner录制APP脚本的基本流程:软件测试_Loadrunner_APP测试_性能测试_脚本录制_基本操作流程,但是只能用于请求单一服务器端口适用 这次主要是写的多serv ...

  4. 『动善时』JMeter基础 — 48、使用JMeter自身代理录制测试脚本

    目录 1.测试计划内包含的元件 2.HTTP代理服务器的设置内容 3.设置浏览器的代理服务器 4.录制脚本 5.查看录制的脚本 6.HTTP代理服务器的排除模式 7.保存脚本 录制脚本只不过是我们日常 ...

  5. 『动善时』JMeter基础 — 49、使用JMeter自身代理录制APP测试脚本

    目录 1.测试计划内包含的元件 2.HTTP代理服务器的设置内容 3.设置手机的代理服务器 4.录制脚本 5.查看录制的脚本 6.HTTP代理服务器的排除模式 7.保存脚本 8.注意坑点 录制脚本只不 ...

  6. 用BlazeMeter录制JMeter测试脚本

    工具: 1,JMeter 2,Chrome 3,BlazeMeter 4,SwitchyOmega(如果需要代理) 步骤: 以上工具准备好以后就可以录制JMeter的测试脚本了, 在Chrome中点击 ...

  7. 菜鸟教程之工具使用(十)——用BlazeMeter录制JMeter测试脚本

    工具: 1,JMeter 2,Chrome 3,BlazeMeter 4,SwitchyOmega(如果需要代理) 步骤: 以上工具准备好以后就可以录制JMeter的测试脚本了, 在Chrome中点击 ...

  8. jmeter压力测试的简单实例+badboy脚本录制(一个简单的网页用户登录测试的结果)

    JMeter的安装:在网上下载,在下载后的zip解压后,在bin目录下找到JMeter.bat文件,双击就可以运行JMeter. http://jmeter.apache.org/ 在使用jmeter ...

  9. JMeter性能测试基础 (4)-使用JMeter录制测试脚本

    在进行压力测试时,由于很多web页面包含了Ajax异步请求等内容,为模拟用户真实输入,除了对html的访问外,还需要将其它的访问考虑入内,这时最好的办法就是对实际访问过程中的所有请求进行录制. 例如, ...

随机推荐

  1. ASP.NET MVC 异常Exception拦截

    一.前言 由于客户端的环境不一致,有可能会造成我们预计不到的异常错误,所以在项目中,友好的异常信息提示,是非常重要的.在asp.net mvc中实现异常属性拦截也非常简单,只需要继承另一个类(Syst ...

  2. U-boot中SPL功能和源码流程分析

    在U-boot目录下,有个比较重要的目录就是SPL的,SPL到底是什么呢?为什么要用它呢? SPL(Secondary programloader)是uboot第一阶段执行的代码.主要负责搬移uboo ...

  3. C语言中全局结构体指针隐含的错误

    前天在嵌入式系统上,调试一个数组的全局变量时,发现该变量一直会动态变化.深入分析, 才发现该全局结构体没有申请内存,而是用了一个指针.这种情况编译器是检查不出来的,在linux 上运行会挂掉,但是在裸 ...

  4. android底部菜单栏的编写

    开发工具android stdio,组件Radio Button 1.新建空项目DDDD 2.将事先准备好的图标复制到对应的文件夹中(如图),这五个文件夹都要拷进去,图标文件http://pan.ba ...

  5. salesforce lightning零基础学习(七) 列表展示数据时两种自定义编辑页面

    上一篇Lightning内容描述的是LDS,通过LDS可以很方便的实例化一个对象的数据信息.当我们通过列表展示数据需要编辑时,我们常使用两种方式去处理编辑页面:Pop Up Window弹出修改详情以 ...

  6. JVM内存区域划分及垃圾回收

    第一部分.闲扯+概述 近来在研读<深入理解java虚拟机>一书,读完之后做个小结,算是记录一下自己的学习所得,在成长的路上,只能死磕. 要理解JVM,就要先从其内存区域划分开始,知道其由几 ...

  7. sql server备份和还原

    官方文档:http://msdn.microsoft.com/zh-cn/library/ms187048%28v=sql.90%29.aspx

  8. PHP四大基本排序算法实例

    PHP四大基本排序算法包括:冒泡排序法,快速排序法,选择排序法,插入排序法. 1. 冒泡排序 思路分析:在要排序的一组数中,对当前还未排好的序列,从前往后对相邻的两个数依次进行比较和调整,让较大的数往 ...

  9. 深度学习论文翻译解析(三):Detecting Text in Natural Image with Connectionist Text Proposal Network

    论文标题:Detecting Text in Natural Image with Connectionist Text Proposal Network 论文作者:Zhi Tian , Weilin ...

  10. WCF返回表datatable时的解决

    在WCF中有时返回值类型是一张表,就会遇到反序列化的问题.解决该问题我归纳了两种方法: 1.根据Model层的类,在服务器端将Table转化成List,在客户端再将List转化为table /// 将 ...