使用元组的内容作为可变会话

时间:2019-04-05 13:47:01

标签: gatling scala-gatling

我从先前的响应中提取了带有以下正则表达式的元组对象:

.check(regex(""""idSc":(.{1,8}),"pasTemps":."codePasTemps":(.),"""").ofType[(String,String)].findAll.saveAs ("OBJECTS1"))                                                

所以我得到了我的对象:

OBJECTS1 -> List((1657751,2), (1658105,2), (4557378,2), (1657750,1), (916,1), (917,2), (1658068,1), (1658069,2), (4557379,2), (1658082,1), (4557367,1), (4557368,1), (1660865,2), (1660866,2), (1658122,1), (921,1), (922,2), (923,2), (1660875,1), (1660876,2), (1660877,2), (1658300,1), (1658301,1), (1658302,1), (1658309,1), (1658310,1), (2996562,1), (4638455,1))

之后,我做了一个Foreach,需要提取每对夫妇以将它们添加到下一个请求中,所以我们尝试了:

.foreach("${OBJECTS1}", "couple") {        

                              exec(http("request_foreach47"
                                             .get("/ctr/web/api/seriegraph/bydates/${couple(0)}/${couple(1)}/1552863600000/1554191743799")
                                            .headers(headers_27))
                              }

但是我得到消息:名为“ couple”的不支持索引访问

虽然我也可以在夫妇上使用2个正则表达式来提取两个部分,但是我还没有找到在会话变量上使用正则表达式的任何方法。 (即使在这种情况下不需要它,但是可能真的对我学习如何有用很有兴趣)

如果能为我提供帮助,将非常感谢。 (我正在使用Gatling 2,但不能使用更新版本,因为该版本可用于工作,而其他脚本已使用Gatling2开发)

1 个答案:

答案 0 :(得分:0)

每个“ couple”是一个scala元组,无法像集合一样被索引。幸运的是,落脚的EL具有处理元组的功能。

所以而不是

.get("/ctr/web/api/seriegraph/bydates/${couple(0)}/${couple(1)}/1552863600000/1554191743799")

您可以使用

.get("/ctr/web/api/seriegraph/bydates/${couple._1}/${couple._2}/1552863600000/1554191743799")