是否可以在运行时保存属性,然后将其另存为另一个属性?例如,我有一个在URL中使用的ID,我已经从一个页面捕获了它,但是页面上有一个列表5。我可以使用findAll来全部选择它们,然后使用$ {AttributeName.random()}来随机选择一个。
但是,我如何将其保存为属性然后在其他地方使用?因为它每次都需要相同,如果我再次随机运行,显然它每次都会改变字符串。
我可以做一个$ {AttributeName(storedRandomNumber)}但代码可能会开始变得有点凌乱,并且想知道是否有更清洁的东西可供使用?
答案 0 :(得分:0)
您可以在此请求之后立即创建另一个exec(),以使用session.set()
方法分配所需的随机值,然后保存该值以供重用的整个线程。
EX:
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。