使用 BeanShell Sampler 写入 csv 文件的 Jmeter 变量将由后续 HTTP 请求获取

问题描述 投票:0回答:1

我不确定我做错了什么 登录(凭据/用户)文件有 4 行数据 使用正则表达式捕获变量并使用 Bean Shell Sampler 将它们保存到另一个 CSV 文件中。 提取的变量值按预期写入每个线程一次迭代的文件中。

**问题: **问题是当我运行测试时,提取的值不是从文件中选取,而是直接从正则表达式变量中获取。

详情 当我对 2 个线程进行 2 次迭代运行测试时,我的期望是仅使用 2 个用户,因为文件仅包含 2 个用户的令牌。当我查看“查看测试结果树”时,从文件中又获取了 2 个用户进行第二次迭代,这表明我没有从文件中提取变量。我预计第二次迭代也使用与仅提取 2 次值相同的用户用户。

线程组设计

用户定义变量

[用户 CSV 文件]

捕获的变量(令牌)已写入CSV文件

使用正则表达式捕获的变量

豆壳取样器

日志

查看结果树

jmeter
1个回答
0
投票
  1. 查看 JMeter 测试元素执行顺序,CSV 数据集配置正在初始化早于 Beanshell 采样器,因此它要么从之前的执行中读取数据,要么失败

  2. 使用 Beanshell 同时使用多个线程将某些内容写入同一个文件不是一个好主意,它可能会导致数据损坏或丢失,最好使用 Flexible File Writer 代替

  3. 一般来说,使用 Beanshell 并不是一个好主意,从 JMeter 3.1 开始,建议使用 JSR223 测试元素和 Groovy 语言进行脚本编写。请参阅 Apache Groovy:Groovy 的用途是什么? 文章了解更多信息

© www.soinside.com 2019 - 2024. All rights reserved.