浅谈 Jmeter 之 test Fragment、module 、include 、transaction controller用法
- test Fragment (测试片段)是什么?
- 测试片段是控制器上的一个种特殊的线程组,它在测试树上与线程组处于一个层级。
- 测试片段下面可以添加各种控制器、Sample请求等。
- 它与线程组有所不同,因为它不被执行,除非它是一个Module Controller(模块控制器)或者是被 Include 控制器所引用时才会被执行。
- 使用 Test Fragment 将脚本模块化,需要修改的时候,只直接修改 Test Fragment 中的脚本片段即可,可以减少重复性的脚本,提高脚本复用性。
- test Fragment 怎么编写及调用?
- test Fragment 编写及调试:
- 在测试计划里添加线程组、用户自定义变量等,线程组里添加事务控制器,添加所需Sample 请求。
- 执行脚本调试,调试成功后添加test Fragment,并把调试 OK 的事务控制器添加到test Fragment。
- 把脚本保存至对应test Fragment目录下(可以把调试用的线程组和变量都删,看个人喜好,建议保留方便后续维护调试)。
- test Fragment调用:
- Include Controller 引用
- module controller 调用
- test Fragment 编写及调试:
- module controller 的用法?
- 模块控制器允许将测试执行重定向到给定的测试片段和各种控制器。
- 将所有可能需要重定向到的控制器和测试片段进行禁用。
- 通过模块控制器控制(鼠标选择)此时执行哪个测试片段或控制器。
- include controller 的用法?
- include 控制器它允许在测试场景中包含一些外部 jmx文件,一般都是引用test Fragment测试片段的jmx文件。
- include 控制器 只能导入外部jmx文件,不能添加sample请求和其他控制器。
- transaction controller 的用法?
- 事务控制器生成一个与HTTP Samples相同的额外样本,以便测量子测试样本的事务控制器的总体时间或响应时间。
- 当进行一个业务操作时,实际向服务器发送了多条接口请求,此时把所有发送的接口请求放置在一个事务控制器里
- 事务控制器有两个复选框,即 1.Generate Parent Samples 勾选后,测试报告显示父样本名称;2.Include duration of timer and pre-post processors in generated sample 包含事务控制器内所有处理样本的时间,常用于性能测试
参考文档: http://www.software-testing-tutorials-automation.com/2016/10/jmeter-module-controller-example.html