@CelebrateMeaningless https://testerhome.com/articles/17038
https://testerhome.com/articles/18485
https://testerhome.com/articles/18525
用好 jmter 的这几个概念 就可以做到 分层 分类 各层之间耦合度低
我们内部 约定了个 用 Jmter 的目录规范 主要就是 步骤 用例 和 场景
按照此约定 该去哪层写的去哪层写 核心和基线是 step 和 case 层 场景只是做调度和组装 。
步骤 step 是最原子性的
步骤层举例
Tips:1、步骤层里面互不依赖,如果模块很多可根据模块名创建文件夹来分类保存。
2、步骤层的测试计划命名为步骤,通过 Test Fragment 这样的测试片段来进行包含。(建议 Test Fragment 名称和整个步骤的 jmx 文件名称保持一致,方便查询)。
3、步骤层根据具体业务需求来切分,可以是单独一个 sampler 或者多个 sampler 组合,而且一般会使用事物控制器包含。(如果 sampler 里面的变量需要传递使用 vars.get 方法获取,里面有变量需要提取也是同步进行)。
4、为了接口测试严谨性,一般步骤层,会跟随 sampler 绑定这个接口的必填参数测试的简单控制器,方便阅读。(必填参数测试:缺失必填参数后,接口返回值是否正确)。
用例层举例
Tips:1、用例层里面只调用步骤层来进行组装,不添加任何 sampler。
2、用例层一般会使用 Parameterized Controller 插件来对步骤层进行参数传递,一般需要和步骤层绑定。如果需要再获取上级参数传递可写为变量
3、用例是独立存在的,用事物控制器进行包含,由于 JMeter 本身的特性,需要在场景层中组合的话,也只能存放为 Test Fragment 给与调用。
4、用例名称中,事物控制器,测试片段,jmx 文件名称尽量保持一致,方便查找。
场景层举例
Tips:1、场景层是由线程组通过 Include Controller 调用 Test Fragment 的测试用例来直接运行的 jmx 文件,也是最后输出的报告展示结果。
2、所有用例都需要使用的变量可以在场景层存放,比如用户账户数据,数据账户密码,APPID,AppSecret 等,如果不需要在场景层使用可以在用例层进行传值覆盖。
3、场景层中的用例没有依赖关系,可以顺序或者乱序组合,互不干扰。