JMeter是一个开源的Java应用程序,由Apache软件基金会开发和维护,可用于性能测试、压力测试、接口测试等。
1. 原理
JMeter的基本原理是模拟多用户并发访问应用程序,通过发送HTTP请求或其他协议请求,并测量响应时间、吞吐量、并发用户数、错误率和性能指标等,以评估应用程序的性能和稳定性。
2. JMeter特性
1)支持多种协议
支持HTTP、HTTPS、FTP、TCP、JDBC和JMS等协议,可以模拟多种网络环境和应用程序场景。
2)支持多种测试类型
支持负载测试、压力测试、功能测试、基准测试和分布式测试等多种测试类型,适用于不同的性能测试需求。
3)支持多种测试场景
支持多种测试场景,包括并发用户数、持续时间、循环次数和延迟时间等,可以模拟真实的使用场景。
4)支持多种测试结果收集和显示方式
支持多种测试结果收集和显示方式,包括聚合报告、图形结果、树形结果和控制台输出等,便于性能分析和优化。
5)支持插件和扩展
JMeter支持插件和扩展,可以扩展其功能和性能,以满足特定的性能测试需求。
3. JMeter的组件
1)测试计划(Test Plan)
测试计划是JMeter中的最高层次,包括多个线程组、配置元件和监听器等。测试计划用于设置全局的测试参数,包括测试名称、工作目录、线程数和持续时间等。
2)线程组(Thread Group)
线程组是JMeter中用于模拟并发用户访问应用程序组件,包括一组线程(用户)和一组控制器(逻辑控制)。线程组用于设置线程数、循环次数、持续时间和延迟等参数,控制器用于设置线程(用户)的请求和响应的逻辑控制。
3)HTTP请求(HTTP Request)
HTTP请求是JMeter中模拟客户端向服务器发送HTTP请求的组件。HTTP请求包括请求的URL、协议、方法、参数、头部和Body等,可以模拟GET、POST、PUT、DELETE等HTTP请求方法,以测试应用程序的响应速度和性能。在HTTP请求中,可以设置请求的参数、响应的断言和监听器等,以收集和显示测试结果。
4)控制器(Controller)
用于控制测试计划和线程组的执行流程,包括简单控制器、随机控制器、循环控制器和条件控制器等。
5)监听器(Listener)
监听器是JMeter中收集和显示测试结果的组件,包括聚合报告监听器、图形结果监听器、树形结果监听器和控制台输出监听器等。监听器用于监控测试结果,以评估应用程序的性能和稳定性,并生成报告。
6)断言(Assertion)
断言是JMeter中验证HTTP响应的状态码、内容和格式的组件,包括响应码断言、响应内容断言和响应时间断言等。断言用于验证HTTP响应的正确性和完整性,以确保应用程序的功能和性能。
7)配置元件(Config Element)
用于配置测试计划和线程组的属性和参数,包括HTTP请求默认值、CSV数据文件配置和用户定义的变量等。
8)启动器(Timer)
用于在发送HTTP请求前或线程开始前等待一段时间,以模拟用户的行为。启动器用于设置线程组的执行前等待时间,以模拟真实的使用场景。
9)前置处理器(Pre-Processor)
用于在发送HTTP请求前进行处理,包括用户参数、CSV数据集和HTTP Cookie等。
10) 后置处理器(Post-Processor)
用于在接收HTTP响应后进行处理,包括正则表达式提取器和XPath提取器等。
4. JMeter用户界面
JMeter的用户界面包括以下几个主要部分:
1)工具栏:包含了常用的功能按钮,例如开始、停止、保存和导入等。例如,我们可以使用工具栏上的按钮开始和停止测试,以便进行测试和观察测试结果。
2)树形结构:用于组织测试计划的各个组件,包括测试计划、线程组、控制器、监听器和配置元件等。
3)属性窗口/面板:用于显示和编辑选定组件的属性,例如线程数、延迟和协议等。
5. JMeter的配置文件
JMeter的配置文件用于存储各种配置选项和全局变量,包括以下几个主要文件:
1)jmeter.properties:包含了JMeter的全局配置选项,例如默认编码、连接超时和代理服务器等。
2)user.properties:包含了用户自定义的全局变量和配置选项,例如用户定义的变量和自定义的插件等。
3)saveservice.properties:JMeter的结果保存配置文件,包含JMeter测试结果的保存格式、编码、压缩、分隔符等配置参数。
最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!