在我的测试计划中,我有2个端点bid
和win
。如果bid
端点返回状态200(它也可以返回204,但我只需要200,那么我就不能使用${JMeterThread.last_sample_ok}
)我需要运行win
端点。
我做了:
创建已定义的变量STATUS_OK
但是if controller
条件不起作用,Jmeter从不运行win
请求。
知道它为什么不起作用?或者我可以调试它?我将不胜感激任何帮助!!!
${__FileToString(/home/user/Downloads/jmeter/jsons/${__eval(${JSON_FILE})}.txt,,)}
之一。
出价请求还包括货币,bidid等。它是Json
提取器,我使用该数据生成正确的 win 网址
每个出价。win?auctionId=${AUCTIONID}&bidId=${BIDID}&impId=${IMPRESSIONID}&seatId=${SEAT}&price=${__javaScript((Math.random()* (4 - 1)+1).toFixed(4);)}&cur=${CUR}&adId=${ADID}
答案 0 :(得分:3)
对于If Controller您应该使用__groovy或__jexl3函数
将条件解释为变量表达式?如果选择此选项,则条件必须是计算结果为“true”的表达式(忽略大小写)。例如,$ {FOUND}或$ {__ jexl3($ {VAR}> 100)}。与JavaScript情况不同,仅检查条件是否匹配“true”(忽略大小写)。 对于表演
,建议在条件中检查并使用__jexl3或__groovy函数
在您的情况下使用
${__groovy(vars.get("BID_STATUS") == vars.get("STATUS_OK") )}
或者
${__jexl3("${BID_STATUS}" == "${STATUS_OK}")}
答案 1 :(得分:1)
您需要用引号括起JMeter变量引用,如:
"${BID_STATUS}" == "${STATUS_OK}"
或者(更好)你可以摆脱这个正则表达式提取器并切换如果控制器的条件使用__groovy() function如:
${__groovy(prev.getResponseCode().equals(vars.get('STATUS_OK')),)}