0

是否可以在运行时保存一个属性,然后将其另存为另一个属性?例如,我有一个在 URL 中使用的 ID,我从一个页面中捕获了它,但是页面上有 5 个列表。我可以使用 findAll 将它们全部选中,然后使用 ${AttributeName.random()} 随机选择一个。

但是,我该如何将其保存为属性,然后在其他地方使用呢?因为它每次都需要相同,如果我再次随机运行,显然它每次都会改变字符串。

我可以做一个 ${AttributeName(storedRandomNumber)} 但代码可能开始有点乱,想知道是否有一些更清洁的东西可以使用?

4

1 回答 1

0

您可以在此请求之后立即创建另一个 exec() 以使用该方法分配您想要的随机值session.set(),然后保存该值以供整个线程重用。

前任 :

val scenario = scenario("scenarioName")
.exec(
  http("<-- Name Of Request -->")
    .get("<LINK _TO_FIRST_REQ>")
    .check(jsonPath("$.items[*].id").findAll.optional.saveAs("ListOfAttributeNames"))
)
.exec( session => session.set("randomAttributeNameSelected", session("ListOfAttributeNames").as[Seq[String]]
  .apply(scala.util.Random
    .nextInt((session("ListOfAttributeNames").as[Seq[String]].size - 0) + 1)))
)
.exec(
  http("We use the ID here")
    .get(session => "http://domain.something.com/api/" + session("randomAttributeNameSelected").as[String])
)

因此,如果您访问同一线程中的任何时间,session("randomAttributeNameSelected").as[String]它将为您提供随机 ID。

于 2018-05-02T14:14:11.780 回答