Scala Gatling中的动态HTTP请求

Scala Gatling中的动态HTTP请求,scala,jmeter,gatling,Scala,Jmeter,Gatling,我从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

我从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(&quot;hhId&quot;, Integer.toString(hhId));
vars.put(&quot;serialNum&quot;, Integer.toString(serialNo));
</stringProp> 
... 
<stringProp name="HTTPSampler.path">
 `enter code here`${serverPath_g1}/1/${hhId}/dmxs/${serialNum}/events</stringProp>

我想在加特林也这样做。有什么建议或例子吗?

这很简单。如果通过停靠的Taurus运行gatling测试,则可以传递Scala脚本可以访问的环境变量:

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")

我想尝试下面的方法val postEventsHttp=http(“post user”).post(“/${hhId}/dmxs/${serial}/events”).body(StringBody(userString)).check(状态为200),其中可以在运行时设置serial和hhId。例如,我执行了10次,所有10次的值都会改变。
val myPort = sys.env.get("MY_PORT")
val targetHost = "http://taurus-host:" + myPort.getOrElse("80")