我们的系统中存在并发问题。这主要发生在通过外部系统通过我们的API进行突发加载期间,并且无法手动复制。
因此,我想创建一个加特林测试以 1)在需要时进行重现,并 2)检查我们是否已解决问题。
1)我已经完成了第一点。我创建了两个请求以检查状态 201 ,并与许多用户一起运行它们。
2)此问题允许创建具有相同唯一值的两个资源。预期的行为是创建一个行为,而其他行为应该失败,并显示状态 409 。但是我不知道如何检查任何请求,但至少要检查一次,以 201 完成,而其他所有请求都以 409 失败。
我们可以使用Gatling对所有请求进行某种后检查吗?
谢谢
答案 0 :(得分:1)
存储已在全局ConcurrentHashMap中看到的结果,并根据CHM中的存在情况(在缺少的情况下为201,在现有的情况下为409)在函数的is
检查中计算期望值。
答案 1 :(得分:0)
我认为您无法通过对呼叫本身进行检查来实现您的目标,因为加特林用户无法看到返回给其他用户的结果,因此您无法知道是否成功(201)请求已经进行了(缺少使用校验转换器进行的一些非常凌乱的黑客攻击)
但是您可以使用仿真级别的断言来做到这一点。 因此,您可以在要求中断言您希望获得201响应
http("my request")
.get("myUrl")
.check(status.is(201))
这会导致所有这些请求中的一个失败,而模拟失败,您可以使用断言来指定...
setUp(
myScenario.inject(
...
)
)
.assertions(
details("my request").successfulRequests.count.is(1))