首页 > 解决方案 > 如何使用循环控制器在 Jmeter 中同时运行线程

问题描述

我制作了一个 Jmeter 脚本,就像其中的一个线程登录然后我的事务和注销。我只在循环控制器中放置了一次登录 n 控制器和事务。但是当我执行并发线程时,一些线程失败了,因为 csrf 令牌没有按顺序匹配。我使用正则表达式提取 csrf 令牌。对于 1-2 个用户,它工作正常,但更多线程失败。

标签: multithreadingloopscontrollerjmeter

解决方案


尝试在您的测试中添加一些调试日志记录,即

  1. 使用示例变量属性将 CSRF 令牌值保存到 .jtl 结果文件中
  2. 将所有响应保存到 .jtl 结果文件中,您可以通过将下一行添加到user.properties文件中来做到这一点:

    jmeter.save.saveservice.output_format=xml
    jmeter.save.saveservice.response_data=true
    jmeter.save.saveservice.response_data.on_error=true
    
  3. 使用Debug SamplerView Results Tree listener 组合检查响应和 CSRF Token 变量值- 每个虚拟用户应该 100% 匹配,并且不同的线程(虚拟用户)必须具有不同的 CSRF Token 值。

推荐阅读