【问题标题】:Dynamic HTTP request in GatlingGatling 中的动态 HTTP 请求
【发布时间】:2016-06-27 15:55:59
【问题描述】:

我正在从 Jmeter 转到 Gatling 以比较结果。因为我是 SCALA 的新手,所以我没有在 HTTP 请求中映射动态请求值的表。 这就是我在 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>

这里我在运行时动态传递 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

我想在加特林做同样的事情。有什么建议或例子吗??

【问题讨论】:

  • 我想试试下面的 val postEventsHttp = http("post user") .post("/${hhId}/dmxs/${serial}/events") .body(StringBody( userString)) .check(status is 200) 其中serial 和hhId 可以在运行时设置。因此,例如我执行了 10 次,所有 10 次的值都会改变。

标签: scala jmeter gatling


【解决方案1】:

这很容易。如果您通过 dockerized 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")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-09
    • 2015-01-07
    • 2017-02-11
    • 2018-05-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多