我目前正在尝试使用Gatling加载测试我的API,但是我有一个非常具体的测试要执行。我想模拟一个虚拟用户,同时调用我的所有API(其中的16个)。我想重复多次,这样我可以了解一次同时调用所有API所需的平均时间。
我使用的方法是:
目标是要实现60次迭代。
仅供参考,我正在使用加特林3.1.2
//This is what all my scenarios look like
val bookmarkScn = scenario("Bookmarks").exec(http("Listing bookmarks")
.get("/bookmarks")
.check(status.is(200))
)
//My setUp
setUp(
bookmarkScn.inject(
atOnceUsers(60)
).throttle(
jumpToRps(1),
holdFor(60)
),
permissionScn.inject(
atOnceUsers(60)
).throttle(
jumpToRps(1),
holdFor(60)
),
//Adding all the scenarios one after the other
).protocols(httpConfig)
我用这种方法得到了一些结果,但是它们根本不符合我的期望,如果我将测试进行太长时间,最终每次调用都会超时。
应该花比平时更多的时间(例如,从每个API的100ms到300ms)。
我的问题是:此方法正确吗?你能帮我实现我的目标吗?
答案 0 :(得分:0)
您所拥有的应该可以工作,但是可能有一种更简单的方法来指定这种注入。代替
bookmarkScn.inject(
atOnceUsers(60)
).throttle(
jumpToRps(1),
holdFor(60)
),
您可以使用
bookmarkScn.inject(
constantUsersPerSec(1) during (60 seconds)
),
就您的结果而言,我希望问题出在加特林的下游-16位并发用户发出简单的GET请求对于加特林非常简单。您之间的应用或基础架构中的性能可能在其他地方有问题。