我使用 JMeter 作为代码(使用 Java Maven 项目的编程方法而不是 GUI),以便对 AWS Lambda Serverless API 进行压力测试。
我已经制定了测试计划、线程组、HTTPSamplerProxy 等等...
对 API 调用的执行工作完美,但情况并非如此,例如我添加到 HTTP 采样器的 DurationAssertion ..
我还为输出设置了一个 CSV 文件,执行后我看到一切正常(状态代码 200 ..),但测试应该失败,因为它超过了我配置的 DurationAssertion(除了其他断言测试元素) )。
我想也许我必须在 DurationAssertion 对象中设置“启用”= true,但没有效果。此外,我尝试以这种方式访问 JMeter 上下文:
JMeterContextService.getContext().getPreviousResult()
我希望上面的代码检索一个 SampleResult(它有一个 AssertionResult 集合),但 SampleResult 为空..
带有测试元素(在本例中为 DurationAssertion)的测试计划没有对这些断言的结果进行相应的分析是没有意义的。在 JMeter GUI 中,我将添加一个 ViewResultTree,它显示一个 Sampler Result 视图,其中包含请求、响应和相关测试断言的详细信息。除了断言结果(每个请求)之外,我还想查看请求有效负载、完整响应、标头……但在编程模式下(不使用 GUI)。
因此,如果有人能给我一些关于如何通过代码实现这一目标的提示,我将不胜感激。
更新 1:我与整个源代码共享一个 github 片段,例如 UBIK LOAD PACK 用户建议我:
https://gist.github.com/svillarreal/5eb90a66b8972633b95c249abb3566da
更新 2:检查上下文对象(在 JMeter 引擎完成运行后评估) - 内部全部为 null
更新 3
i) 我最近发现了一个 jmeter.properties 文件,我在其中配置了以下属性:
jmeter.save.saveservice.output_format=xml
jmeter.save.saveservice.assertion_results=all
现在输出为 XML 而不是 CSV 至少显示了发送的请求有效负载和响应数据,这对于分析错误情况非常有用。
ii) 我在 JMeterEngine 执行中检查了 JMeterContextService.getContext(),而不是在它完成运行之后,然后我可以意识到每个线程组有一个上下文,并且在其运行期间这个对象已满,所以现在很清楚为什么更新 2所有属性都为空..
最好的问候和感谢!
哔哔one
互换的青春
相关分类