性能测试--混合场景

首先,什么是混合场景。

做性能测试,场景设计,就是为了模拟真实用户对服务器发起请求,那真实的环境用户请求会是什么样呢?也许同时,有 100 个人在访问你的服务器,对你服务器发起了请求事件,但是他们的请求可能各不相同,有的是刷新页面,有的是登录,有的请求某个商品,有的在添加购物车,有的在付款...... 每个人的情况可能都不一样,没有一定的非是即非的关系,但是,在这个时间点,对于服务器来说,收到了用户的请求,就必须处理,就有计算压力。


那么,如何实现性能测试的混合场景设计呢?

我们都知道,jmeter 是用线程组做场景设计,向服务器发起的所有请求,都是挂在线程组下面。一个线程组设计好了,那么它的所有虚拟用户,都是按照线程组下的取样器顺序,从上往下执行(没有逻辑控制器时)。视乎,就无法模拟,有的取样器接口请求人多,有的接口取样器请求人少,甚至跳过某些接口取样器请求而执行其他的。如果做不到,那就不能算是真正的混合场景了。

 

**不同的线程组,设置了不同数量的并发用户,当启动运行时,所有线程组,都开始运行了,而且都是独立运行。**对于服务器来说,是不是同时都会收到不同线程组中不同接口取样器发过来的请求,都需要去做处理,这不就是真正的混合场景吗?

这个设计,其实,已经很简单的告诉我们,jmeter 也能做混合场景设计,只需要在一个测试计划下,挂载多个线程组,同时运行多个线程组就可以。不同的线程组,运行的虚拟用户,进行特定设置,不同的场景模型也进行特定设置,这样就可以完全真实的做到模拟真实情况的混合场景设计了。

 

 

 

那么,这样一个技术的实现,会不会有什么难题呢?

在单个线程组内部,进行参数传递时,用上关联,就能顺利传参。但是,如果要在多个线程组之间传递参数,就不能直接传递了。因为,jmeter 在设计线程组的时候,线程组与线程组之间是相互独立的,不能直接传参。这个时候,就需要在生成的参数线程组中,使用 setproperty 函数把参数设置为属性,然后在使用参数的线程组中,再使用 P 函数,获取属性。这样,就可以实现跨线程组传递参数了。



转自链接:http://testingpai.com/article/1595507282985

posted @ 2020-12-06 20:53  上官夏洛特  阅读(1306)  评论(0编辑  收藏  举报