我正在从Jmeter搬到Gatling进行一些结果比较。由于我是SCALA的新手,因此我无法在HTTP rquest中映射动态请求值。 这就是我在Jmeter中所做的。
<stringProp name="script">int threadNo = ctx.getThreadNum();
int base = ${starting_hhid};
int hhId = (threadNo) + base;
int serialNo = (threadNo) + ${starting_serialNum};
vars.put("hhId", Integer.toString(hhId));
vars.put("serialNum", Integer.toString(serialNo));
</stringProp>
...
<stringProp name="HTTPSampler.path">
`enter code here`${serverPath_g1}/1/${hhId}/dmxs/${serialNum}/events</stringProp>
这里我在运行时动态传递hhId和serialNum。所以这些都在不断变化。
${serverPath_g1}/1/1/dmxs/1/events`enter code here`
${serverPath_g1}/1/2/dmxs/2/events
${serverPath_g1}/1/3/dmxs/3/events
我想在Gatling做同样的事情。任何建议或示例??
答案 0 :(得分:0)
这很容易。如果您通过经过docker化的Taurus运行测试测试,则可以传递Scala脚本可以访问的env变量:
OSX_HOST=`ipconfig getifaddr en0`
docker run -it --rm -e MY_PORT='8888' --add-host "taurus-host:${OSX_HOST}" \
-v $PWD:/bzt-configs -v $PWD:/tmp/artifacts blazemeter/taurus:latest \
/tmp/artifacts/performance.yml
然后,在您的Scala脚本中,您可以获得变量:
val myPort = sys.env.get("MY_PORT")
val targetHost = "http://taurus-host:" + myPort.getOrElse("80")