问题描述:使用jmeter进行接口测试时,遇到枚举值(如:10代表闲置、15代表使用中、20代表维修等)我们需要随机取一个类型传到接口中。
解决思路:通过函数助手查找随机函数,找到__chooseRandom以及__randomFromMultipleVars两个内置函数
方法1、使用__randomFromMultipleVars首先要定义用户参数PartType1,PartType2,PartType3,PartType4
然后通过${__RandomFromMultipleVars(PartType1|PartType2|PartType3|PartType4,)}随机获取变量
取值结果如下:
方法2、使用__chooseRandom,${__chooseRandom(10,15,20,30,)}
在使用的过程中发现一个问题:
在循环控制器中不管我使用调试取样器还是http请求,使用函数助手自动生成的${__chooseRandom(10\,20\,30\,40,)}执行的时候jmeter 就会报错:
org.apache.jmeter.functions.InvalidVariableException: __chooseRandom called with wrong number of parameters. Actual: 2. Expected at least: 3
总结:如果只是需要对于枚举值进行随机取值建议使用:__chooseRandom函数,但是使用该函数需要注意,通过函数助手生成时会自动加\进行转义,导致jmeter报错。