说明
本文内容,根据【高楼老师】的极客时间《性能测试实战30讲》而写,里面很多内容复用。
文中介绍到的关联和断言,仅仅是说明了其作用,并没有详细说明其用法,重点在于参数化的设置。
关联
首先关联,什么场景下需要做关联呢?下面几种情况也是需要的:
1、数据是由服务器端生成的; 2、数据在每一次请求时都是动态变化的; 3、数据在后续的请求中需要再发送出去。
其实,个人感觉关联和参数化是一起的,就是说 有了关联一般都有参数化,不然怎么取数据呢。
关联的作用就是“取服务端返回的值”,然后将这个值给到其他有需要的接口,或可以复用时就保存下来。
断言
断言,开始没觉得断言有必要,后来发现确实需要断言,但是当返回的结果很多时,怎么做断言呢?也不知道,就是随便呗,随便选一个容易断言的值。
现在才发现,“断言是根据需要来设计的,而设计断言的前提就是完全理解这个逻辑”。就是你要知道,这个断言是能反馈这个请求的正确与否的。
复制一下高老师的图:
比如,下图中,只有数据库返回了“true”这个字段,才表示成功插入到数据库,这时,我们只需要断言返回结果里面是否包含“true”字段值就好,不需要再进行其他方面的断言。
参数化
以下主要说明,jmeter工具的参数化设置,主要是说明以下3个条件的综合作用:
- jmeter的参数化设置:
- 线程组设置:
- 在前两个参数固定的情况下,修改线程共享模式:
当前线程组
即文件时属于线程组的,所有线程共用此参数化文件
所有线程
在当前设置下,所有线程与当前线程组效果差不多
为了更好的看到效果,我调整了一下参数化文件的位置,再进行一次对比:
----所有线程:可以看到,2个参数分别左右到2个线程组,即每个线程组均有一个正确响应。
---- 当前线程组:每个线程组可以正确执行2个请求
当前线程
即文件是所属与每个线程的。每个线程使用一次参数化文件,
在当前测试中:2个参数值,3个线程,循环3次,每个线程均会使用一次参数化文件,在线程循环到第3次时,就会报错(在当前的设置下)。
编辑
属于自己编辑参数的范围,暂时没有用到。
总结
关于如何设计参数化数据:
*分析业务场景;
*罗列出需要参数化的数据及相对应的关系;
*将参数化数据从数据库中取出或设计对应的生成规则;
*合理地将参数化数据保存在不同的文件中;
*在压力工具中设置相应的参数组合关系,以便实现模拟真实场景。
通过以上步骤,我们就可以合理的参数化数据,模拟出真实场景。