性能测试工具 关于 Jmeter 业务场景设计比例的问题

金龙 · 2017年09月14日 · 最后由 jie 回复于 2018年01月23日 · 2675 次阅读

看到网上关于 jmeter 设计场景比例分配的帖子,一般给出的方法是:
1. 线程组分配
2. 用内置函数__counter()数学计算
参考:http://www.cnblogs.com/liu-ke/p/7286532.html

今天自己想到一个方法,通过 __random()随机函数来控制比例,使用 if 控制器,如条件:
- ${__Random(0,100)} < 99 是 98% 比例
- ${__Random(0,100)} > 99 是 1% 比例

按照这个方法算出的比例,测试了一下:
因为样本比较少,但基本和设计的比例差不多

这个方法是否可行,大家讨论下

共收到 7 条回复 时间 点赞

没明白

上面有个 bug,虽然产生 0-99,但是不能保证说每 100 次都刚好产生 0-99,比如可能会出现 100 个 1,那就是 100% 都落在场景 1,还不如在测试计划里面多写一个线程组,或者你还是想用 random 这种的话,保证 100 个随机数不重复吧,那其实这样做 randrom 就没意义了

terrychow 回复

我要的不是很严格的数学意义的概率统计,关键是要看__Random 内置函数的原理,我没有测试这个方法在大量样本下概率分布,但我觉得回比线程组控制比例要准。

金龙 回复

我也去看看这么做有什么好或不好,实践之后再来聊聊

@terrychow 宁好 请问一下
1.这样控制业务比例的好处是什么
2.接口为什么要这样控制业务比例

jie 回复

先回答问题 2:
题干说到场景比例,比如发送消息,有发纯文本的,有发图片的,可能都是用同一接口,假设需要模拟每 10 条消息中有 1 条或 N 条是发图片,其他都是纯文本,这个时候比例就其作用了,这个就是场景设计
问题 1:
比较明显的好处就是更好地模拟真实场景,再如是模拟有峰值的情况,比如每分钟里面有 5/6 的时间是 100 并发,有 1/6 时间是 500 并发,所以就得有业务控制了

@terrychow 谢谢宁明白了

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册