jmeter测试计划详细讲解

在 JMeter 中,测试计划(Test Plan) 是性能测试的核心部分,它定义了测试的整体结构和执行逻辑。一个完整的测试计划通常包含以下主要组件:


1. 线程组(Thread Group)

线程组是测试计划的核心组件,用于模拟用户并发行为。

  • 作用:定义虚拟用户的数量、启动时间、循环次数等。

  • 配置

    • 线程数(Number of Threads):模拟的用户数量。

    • Ramp-Up 时间(Ramp-Up Period):启动所有线程的时间(秒)。

    • 循环次数(Loop Count):每个线程执行的次数。


2. 取样器(Samplers)

取样器用于发送请求并接收响应。

  • 常见取样器

    • HTTP 请求:模拟 HTTP/HTTPS 请求。

    • JDBC 请求:执行数据库查询。

    • FTP 请求:模拟 FTP 文件传输。

    • SOAP/XML-RPC 请求:测试 Web 服务。

  • 配置

    • 设置请求的 URL、方法(GET/POST)、参数等。


3. 配置元件(Config Elements)

配置元件用于设置测试的全局配置。

  • 常见配置元件

    • HTTP 请求默认值:为所有 HTTP 请求设置默认值(如服务器地址)。

    • CSV 数据文件设置:从外部文件读取测试数据。

    • 用户定义的变量:定义全局变量。

    • HTTP Cookie 管理器:管理 Cookie。

    • HTTP 头管理器:设置请求头。


4. 逻辑控制器(Logic Controllers)

逻辑控制器用于控制测试脚本的执行流程。

  • 常见逻辑控制器

    • 如果(If)控制器:根据条件执行请求。

    • 循环控制器:重复执行子元件。

    • 事务控制器:将多个请求组合成一个事务。

    • 随机控制器:随机执行子元件。

    • 简单控制器:用于组织测试元件。


5. 定时器(Timers)

定时器用于控制请求之间的延迟。

  • 常见定时器

    • 固定定时器:在每个请求之间添加固定的延迟。

    • 高斯随机定时器:在每个请求之间添加随机的延迟。

    • 同步定时器:模拟用户同时操作。


6. 前置处理器(Pre Processors)

前置处理器在发送请求之前执行。

  • 常见前置处理器

    • 用户参数:为每个用户设置不同的参数。

    • BeanShell 预处理器:执行自定义逻辑。


7. 后置处理器(Post Processors)

后置处理器在收到响应之后执行。

  • 常见后置处理器

    • 正则表达式提取器:从响应中提取数据。

    • JSON 提取器:从 JSON 响应中提取数据。

    • XPath 提取器:从 XML 响应中提取数据。


8. 断言(Assertions)

断言用于验证响应是否符合预期。

  • 常见断言

    • 响应断言:检查响应内容、响应代码等。

    • JSON 断言:验证 JSON 格式的响应。

    • 持续时间断言:检查响应时间是否在预期范围内。


9. 监听器(Listeners)

监听器用于查看和分析测试结果。

  • 常见监听器

    • 查看结果树:查看每个请求的详细结果。

    • 聚合报告:生成测试结果的汇总报告。

    • 图形结果:以图表形式展示测试结果。

    • 用表格查看结果:以表格形式展示测试结果。


10. 测试片段(Test Fragment)

测试片段是可重用的测试组件,通常与模块控制器一起使用。

  • 作用:将常用的测试逻辑封装为片段,方便复用。


11. 工作台(Workbench)

工作台是一个临时区域,用于存放未完成的测试元件。

  • 作用:在测试计划之外设计和调试元件。


12. 非测试元件(Non-Test Elements)

非测试元件用于支持测试的执行。

  • 常见非测试元件

    • HTTP(S) 测试脚本录制器:录制用户操作生成测试脚本。

    • 测试计划注释:添加注释,方便团队协作。


13. 测试计划的配置

在测试计划的根节点上,可以配置以下选项:

  • 用户定义的变量:定义全局变量。

  • 独立运行每个线程组:控制线程组的执行顺序。

  • 函数测试模式:记录额外的测试数据(如响应数据)。


14. 测试计划的执行

  • GUI 模式:通过 JMeter 界面运行测试。

  • 非 GUI 模式:通过命令行运行测试:

    jmeter -n -t testplan.jmx -l result.jtl


15. 测试计划的优化

  • 参数化:使用 CSV 数据文件或用户定义的变量。

  • 断言:确保测试结果的准确性。

  • 定时器:模拟真实的用户行为。

  • 分布式测试:在多台机器上运行测试,提高负载能力。

回答:JMeter测试计划是描述JMeter在执行时一系列步骤的一个完整测试计划。它由线程组、逻辑控制器、采样器、监听器、定时器、断言和配置元素等组成。你可以根据需要添加或删除这些元素来创建和修改测试计划。在测试方案中,可以使用JMeter进行参数化压力测试,逐步增加并发量,直到找到性能瓶颈。同时,在性能测试时需要注意一些事项,比如使用csv读取参数值来提高准确性,避免因为测试方法不当影响测试结果,以及对JMeter进行减负以避免卡死等。在性能指标分析中,聚合报告提供了各项性能指标,如请求次数、平均响应时间、中位数、90%和95%用户的响应时间、最小和最大响应时间、错误率、吞吐量和每秒从服务器端接收到的数据量等。这些指标可以帮助我们对测试结果进行分析和评估。123 #### 引用[.reference_title] - *1* *2* [Jmeter系列- test plan【测试计划详细讲解测试计划参数详解 、基础线程组Thread Group](https://blog.youkuaiyun.com/qq_41663420/article/details/129861293)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}} ] [.reference_item] - *3* [jmeter性能测试方案](https://blog.youkuaiyun.com/qq_41875974/article/details/114532567)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值