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

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

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


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)代理服务器的形式实现。必须为所有HTTPHTTPS请求设置浏览器代理.[不要用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)

 

 

 

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

 

 

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

 

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

结果如下

 


目录
相关文章
|
2月前
|
XML jenkins 机器人
JMeter+Ant+Jenkins实现接口自动化测试持续集成
本文介绍了如何使用Ant生成JMeter接口测试报告,并集成到Jenkins中实现自动化测试。内容涵盖Ant与JMeter环境配置、build.xml文件设置、测试执行及报告生成,同时包括Jenkins插件安装、项目配置和钉钉消息通知的集成,帮助实现持续测试与结果可视化。
408 0
|
23天前
|
前端开发 Java jenkins
Jmeter压力测试工具全面教程和使用技巧。
JMeter是一个能够模拟高并发请求以检查应用程序各方面性能的工具,包括但不限于前端页面、后端服务及数据库系统。熟练使用JMeter不仅能够帮助发现性能瓶颈,还能在软件开发早期就预测系统在面对真实用户压力时的表现,确保软件质量和用户体验。在上述介绍的基础上,建议读者结合官方文档和社区最佳实践,持续深入学习和应用。
405 10
|
1月前
|
监控 Java 数据挖掘
利用Jmeter工具进行HTTP接口的性能测试操作
基础上述步骤反复迭代调整直至满足预期目标达成满意水平结束本轮压力评估周期进入常态监控阶段持续关注系统运转状态及时发现处理新出现问题保障服务稳定高效运作
250 0
|
2月前
|
Web App开发 JavaScript 测试技术
Playwright 极速入门:1 小时搞定环境搭建与首个测试脚本
本文带你1小时快速入门Playwright,完成环境搭建并编写首个测试脚本。Playwright是微软推出的现代化Web自动化测试工具,支持Chromium、Firefox和WebKit三大浏览器引擎,具备跨平台、多语言(Python/JS/Java/C#)特性。其核心优势包括:智能自动等待机制减少失败率、内置录制工具实时生成脚本、多语言灵活选择,以及真移动端设备模拟能力,显著提升测试效率和可靠性。
|
3月前
|
Java 测试技术 容器
Jmeter工具使用:HTTP接口性能测试实战
希望这篇文章能够帮助你初步理解如何使用JMeter进行HTTP接口性能测试,有兴趣的话,你可以研究更多关于JMeter的内容。记住,只有理解并掌握了这些工具,你才能充分利用它们发挥其应有的价值。+
701 23
|
5月前
|
数据可视化 测试技术 API
JMeter、Apipost 与 Postman 的 API 测试对比:为什么 APIPost 是更聪明的选择
API测试如同筹备一场晚宴,选对工具至关重要。JMeter功能强大但上手难,适合专业用户;Postman简单易用,但在复杂场景和团队协作中表现有限;而Apipost则是一款智能高效的“厨房神器”。它性能测试轻松、结果清晰、学习门槛低,并且能一键集成CI/CD流程。对于追求效率与便捷的团队而言,Apipost无疑是更优选择,让API测试如同五星大厨烹饪般丝滑流畅。
|
8月前
|
前端开发 JavaScript 测试技术
使用ChatGPT生成登录产品代码的测试用例和测试脚本
使用ChatGPT生成登录产品代码的测试用例和测试脚本
213 35
|
8月前
|
缓存 网络协议
Jmeter如何对UDP协议进行测试?
`jmeter-plugins`是JMeter的插件管理器,用于管理和组织所有插件。访问[官网](https://jmeter-plugins.org/install/Install/)下载并放置于`lib/ext`目录下,重启JMeter后可在“选项”中看到插件管理器。
208 1
Jmeter如何对UDP协议进行测试?
|
8月前
|
前端开发 JavaScript Java
通过ChatGPT生成测试用例和测试脚本(2)
通过ChatGPT生成测试用例和测试脚本
184 21
|
10月前
|
监控 网络协议 Java
一些适合性能测试脚本编写和维护的工具
一些适合性能测试脚本编写和维护的工具
361 59