这两天接了个测试需求,要对服务器进行并发测试。
为了保证覆盖度,请求中有几个参数需要在一定的取值范围内随机(比如Excellent、good、bad三选一)。
简单调研了一下,在jmeter中__RandomFromMultipleVars这个函数完全满足需求,看看网上怎么介绍的吧:
这样子的:
或者是这样子的:
看完攻略之后,心中一爽,So简单,然后键盘轻轻一敲:
”key”:”${__RandomFromMultipleVars(Excellent|good|bad)}”
搞定→运行→查看结果→瞬间懵逼(结果如下图),我key的值呢?让谁给吃了?
为了找到原因,尝试做了很多事情,比如改个写法、与__Random函数对比、将key从body改在url中等等,始终无法搞出这个值,一度准备放弃改用“CSV Data SetConfig”从文件获取参数值的方式(后来没用,是因为这条路也没走通)。
不过好在最后灵光一现,找到了一种解决方案。
具体的解决方法:
第一步:自定义一组变量,并对变量进行赋值,如下图:
第二步:然后在使用__RandomFromMultipleVars函数时,用自定义的变量进行填充,如下图:
最后:再次运行,搞定,一切正常了。
此处还有一个衍生的问题:
上述例子中我们是3个参数值,可以在“用户定义的变量”手填,但是如果参数值是成千上万怎么办?
小编尝试过通过文件读取等方式给对应的变量赋值,但都均告失败,最后采用了一种笨办法,还是能够很大程度上缓解这个问题的。具体的操作如下:
首先,做个表:
第二步:将表中的所有内容复制到剪切板中(全选+复制)
第三步:在“用户定义的变量”中选择“Add frome Clipboard”
最终,结果一样是挺酸爽的。(此处要注意变量名和变量的值中是否有空格