混合场景
- 很多接口放在一个场景中进行测试,---算混合,但是,是有业务背景的混合嘛?
- 关键点就在于接口比例,(每个接口的接口并发用户数比例)
- 并发用户数的比例,能把多个接口放一个线程组嘛?
- 不可以,线程组适用于性能场景设计的,可以设计不同的并发用户数,放到一个线程组下面,线程组下的所有的接口的并发用户数都是相同的,所以,真正的混合场景,是要用多个线程组的。
- 多线程组,jmeter多个线程组之间,不能直接跨线程组传参。多个线程组接口直接有关联,默认是不能直接传递参数的,关联是关联不到参数值的。
- 这里就需要用到jmeter的属性了
jmeter的变量
- 用户自定义变量:可以跨线程组,但是值在启动运行后,不会变
- 用户参数:不能直接跨线程组,但是在运行过程中,值可以变
jmeter属性
- 属性是jmeter工具自身带有的.---只要在工具范围内,都可以用,线程组是jmeter工具的一个元件,所有的线程组都可以使用
- jmeter的属性有先天的和后天加上的
- 先天的
- jmeter静态属性:所有的属性配置文件,以.properties结尾的文件(也可以在非测试元件-属性显示中查看)
- jmeter系统属性:如;操作系统属性
- jmeter静态属性:所有的属性配置文件,以.properties结尾的文件(也可以在非测试元件-属性显示中查看)
- 后天的:
- 可以添加属性
- 属性的值可以变
- 先天的
- 如何在jmeter中添加动态数据
- setProperty 设置属性函数
- P函数,获取属性, property函数
- jmeter中 多个线程组的执行顺序,默认是并行执行的
- 可能出现,前面设置属性还没有完成,但是后面线程组已经需要使用这个属性了,-----此时,后面的线程组中会出出现获取不到属性值的情况
- 1.没有取到值,不代表结果一定会失败
- 2.性能测试,一般都是要执行很多次的,在启动时的失败,占总的请求次数的比例很低,所以他的影响不大
- 动态属性名称
- 在设置属性的时候,属性名称后面加上 线程号函数${__threadNum}
- 设置属性的时候,若线程组的线程数>获取属性的线程组的线程数
- 若线程组的线程数>获取属性的线程组的线程数,获取属性的线程组中,属性名称后面加上线程号 直接使用即可
- 若线程组的线程数<获取属性的线程组的线程数,可以添加一个计数器原件,最大数设置为获取属性的线程组的线程数
- 可能出现,前面设置属性还没有完成,但是后面线程组已经需要使用这个属性了,-----此时,后面的线程组中会出出现获取不到属性值的情况