【发布时间】:2014-06-11 11:54:33
【问题描述】:
我目前正在使用gatling 测试网络服务。
因此,我必须通过对 Web 服务的请求来检索一些 accessToken。
val accessToken = exec(http("access token")
.get("""/protected/document/access.do?id=266892""")
.headers(headers_html)
.check(status.lessThan(400))
.check(regex("""\"accessToken\":\"(.+?)\"""").saveAs("accessToken"))
).pause(50 milliseconds)
之后,我使用检索到的accessToken 向 Web 服务发出一些请求。
到目前为止,这有效。
但现在我想使用检索到的accessToken 同时对后面的请求进行压力测试。 accessToken 只能被检索一次,但之后的并发请求都应该使用相同的检索到的accessToken。
我对 scala 不太熟悉,但我制作了一个 scala 单例,我想将检索到的 accessToken 存储在一个单例变量中,以便以后并发请求可以使用。
这是一个好方法吗?我怎样才能做到这一点?
【问题讨论】:
-
accessToken会被严格检索一次吗?然后在应用程序的整个生命周期中使用? -
Futures/Promises 或 Actors 都可以解决问题...
-
@VikasPandya 是的,在整个 gatling 运行时严格执行一次。请求另一个访问令牌(挑剔:针对同一资源)会使服务器端的前一个访问令牌无效。
标签: scala stress-testing gatling