中文网站建设英文网站建设,济南网站制作工具,有范app的网络营销方式,张家界旅游网站JMeter是一款开源的、强大的、用于进行性能测试和功能测试的Java应用程序。
本篇承接上一篇 JMeter快速入门示例 #xff0c; 对该篇中出现的相关概念进行详细介绍。
JMeter测试计划 测试计划名称和注释#xff1a;整个测试脚本保存的名称#xff0c;以及对该测试计划的注…
JMeter是一款开源的、强大的、用于进行性能测试和功能测试的Java应用程序。
本篇承接上一篇 JMeter快速入门示例 对该篇中出现的相关概念进行详细介绍。
JMeter测试计划 测试计划名称和注释整个测试脚本保存的名称以及对该测试计划的注释。这些自定义内容最好能表达脚本的意义。 用户定义的变量在测试计划上可以添加用户定义的变量这些变量相当于是全局变量一般添加一些系统常用的配置。但请注意如果测试过程中想切换环境或配置一般不建议在测试计划上添加变量因为不方便启用和禁用。此时可以直接添加用户自定义变量组件。 线程组设置 独立运行每个线程组用于控制测试计划中的多个线程组的执行顺序。如果不勾选则默认各线程组并行、随机执行。勾选后可以保证线程组按顺序执行。Run tearDown Thread Groups after shutdown of main threads当线程组停止运行时仍继续运行tearDown线程组。该选项结合线程组的执行配置使用但一般很少用到。 函数测试模式如果选中了此选项同时监听组件如“查看结果树”配置了保存到一个文件中那么JMeter会将每次的请求结果保存到文件中。但此操作比较消耗资源因此一般不建议勾选。 类路径设置可以添加文件或jar包。此功能最常用于调用外部jar包。当脚本需要调用外部的java文件或jar包时可以把jar包路径添加到这里然后在beanshell中直接import进来并调用jar包中的方法
线程组 线程组可以看作是一个虚拟用户组线程组中的每个线程都可以理解为一个虚拟用户。这些虚拟用户将并发地执行测试计划中的请求从而模拟真实世界的用户行为对目标服务器进行压力测试。 分类 普通线程组最常见的线程组类型。可以指定线程数、循环次数、延迟等参数以控制虚拟用户的并发数和请求执行方式。setUp线程组一种特殊类型的线程组通常用于执行预测试操作如数据准备、登录等。与普通线程组不同setUp线程组会在其他线程组之前执行。这对于需要在测试开始前进行一些初始化操作的情况非常有用。tearDown线程组另一种特殊类型的线程组通常用于执行测试后的清理操作如关闭数据库连接、清理测试数据等。与setUp线程组类似tearDown线程组会在所有其他线程组执行完毕后执行。 关键参数 线程数模拟用户数多个线程用于模仿对服务器的并发访问。Ramp-Up时间设置启动所有线程需要的时间即线程从启动到运行再到释放的总时间。在负载测试时建议将Ramp-Up时间设置大一些以便让性能曲线平缓从而更容易找到瓶颈点。循环次数设置线程组中的每个线程循环次数。可以理解为线程的迭代次数或重复发起请求的次数。 错误处理在取样器发生错误后JMeter提供了多种操作选项包括继续执行接下来的请求、启动下一个线程循环、停止当前线程循环、停止所有线程、停止测试计划以及立即停止测试计划等
取样器
JMeter中的取样器Sampler是执行性能测试的关键组件之一用于模拟用户请求并收集相应的请求和响应数据。
常用取样器
HTTP请求取样器 用于模拟HTTP请求测试Web应用程序的性能。它支持HTTPS协议可以设置请求头、参数化、Cookie管理等。Debug Sampler用于在测试过程中输出调试信息如请求的参数、响应的状态码、响应的内容等。这对于调试测试计划或查看请求和响应的详细信息非常有用。但需要注意的是Debug Sampler会记录大量的详细信息可能会导致测试结果文件变得很大因此不建议在生产环境中使用。其他取样器JMeter还提供了其他类型的取样器如FTP请求取样器、JDBC请求取样器等用于模拟不同类型的请求。
使用注意事项
配置元件在使用取样器时通常需要配置一些元件如HTTP Cookie管理器、CSV数据文件设置等以模拟真实用户的请求环境。监听器可以使用监听器查看取样结果如查看结果树、聚合报告等以便对测试结果进行分析和评估。作用域取样器不存在作用域问题但其他配置元件、定时器、断言等会作用于范围内的取样器。执行顺序取样器是按照树上顺序从上到下执行的因此需要注意取样器的排列顺序
断言
JMeter中的断言是用于验证服务器响应是否正确的测试元素它会检查服务器响应中的部分或全部内容并在响应不符合预期时标记该请求为失败。以下是对JMeter断言的详细介绍
一、断言的作用
断言在测试过程中起着至关重要的作用它相当于检查点用于判断系统返回的响应结果是否正确从而帮助测试人员判断测试是否通过。通过使用断言可以确保应用程序的响应满足预期提高测试的准确性和效率。
二、断言的类型
JMeter提供了多种类型的断言以适应不同的测试场景和需求。以下是一些常用的断言类型 响应断言 用于验证服务器返回的响应内容是否符合预期。可以对响应文本、响应代码、响应信息、响应头、请求头、请求数据等字段进行断言。支持多种模式匹配规则如包括、匹配、相等、字符串等。 JSON断言 专门用于验证响应结果为JSON格式的请求。可以使用JSON Path表达式来指定要断言的字段和值。支持对字段值进行正则匹配或精确匹配。 大小断言 用于验证服务器响应的大小是否在指定范围内。可以对完整响应、响应头、响应的消息体、响应代码、响应信息等字段进行大小断言。支持等于、大于、小于、不等于等比较类型。 持续时间断言 用于验证服务器响应是否在指定时间内返回。可以设置响应时间范围任何超过该范围的响应都将被标记为失败。 BeanShell断言 提供了一种自定义断言脚本的方式。可以使用BeanShell脚本语言编写自己的判断逻辑。适用于需要复杂逻辑判断的断言场景。 其他断言 JMeter还支持其他类型的断言如XPath断言、比较断言等。这些断言类型适用于特定的测试场景和需求。
三、断言的配置
在JMeter中配置断言通常需要在测试计划中选择需要添加断言的Sampler然后右键单击该Sampler并选择“Add”-“Assertions”-相应的断言类型。在断言配置窗口中可以设置要检查的字段、匹配规则、预期值等参数。
四、断言的使用注意事项
选择合适的断言类型根据测试需求和响应格式选择合适的断言类型。设置合理的匹配规则和预期值确保匹配规则和预期值能够准确反映预期的响应内容。注意断言的作用范围根据需要设置断言的作用范围如作用于父节点取样器及对应子节点取样器等。避免过度使用断言过多的断言会增加测试计划的复杂性和执行时间因此应合理控制断言的数量和复杂度。
监听器
JMeter监听器是JMeter测试计划中的重要组件用于收集和显示测试结果。以下是对JMeter监听器的详细介绍
一、监听器的作用
实时收集数据监听器可以实时收集JMeter测试执行过程中的数据包括请求和响应的各种信息。显示测试结果监听器以不同的方式展示收集到的测试结果如树状结构、表格、图形等便于测试人员直观了解测试情况。分析测试结果通过监听器测试人员可以对测试结果进行分析和评估如查看响应时间、吞吐量、错误率等指标以评估系统的性能表现。生成测试报告监听器可以生成测试报告汇总测试结果和性能指标方便团队成员共享和讨论测试结果。
二、监听器的类型
JMeter提供了多种类型的监听器以适应不同的测试需求和场景。以下是一些常用的监听器类型
查看结果树以树状结构组织显示所有取样器的响应。通过查看结果树可以查看任意取样器的响应信息并提供多种不同的视图查看响应结果。但请注意生成查看结果树需要消耗大量的系统资源如CPU、内存等因此在负载测试期间不得使用。聚合报告为测试中的每个不同名称的请求创建一个表记录。对于每个请求它统计了响应信息并提供请求计数、最小值、最大值、平均值、错误率、近似吞吐量请求/秒和每秒千字节吞吐量等关键性能指标。后端监听器可以将事务或采样器在某个时间范围内执行的结果发送给外部系统如Graphite、InfluxDB等以便进行进一步的分析和可视化。汇总报告与聚合报告类似但提供了更详细的测试结果汇总信息。汇总图以图形的方式展示测试结果汇总信息便于测试人员直观了解测试趋势和性能瓶颈。断言结果用于查看断言的成功和失败数帮助测试人员定位问题所在。响应时间图以图形的方式展示各事务和采样器的响应时间便于测试人员分析系统响应时间的变化情况。
三、监听器的配置和使用
在JMeter中配置监听器通常需要在测试计划中选择需要添加监听器的Sampler或线程组然后右键单击并选择“Add”-“Listener”-相应的监听器类型。在监听器配置窗口中可以设置相关参数如文件名、输出格式、匹配规则等。
使用监听器时需要注意以下几点
选择合适的监听器类型根据测试需求和场景选择合适的监听器类型。合理配置参数根据测试需求合理配置监听器的参数以确保收集到准确、有用的测试数据。注意资源消耗部分监听器如查看结果树会消耗大量的系统资源因此在负载测试期间应谨慎使用。定期查看和分析测试结果通过定期查看和分析监听器生成的测试结果可以及时发现和解决问题提高测试效率和准确性。