【发布时间】:2018-06-20 14:42:26
【问题描述】:
大家好!
我的目标是让每个线程用户使用他们自己的 .csv 文件,并在每个循环中从中获取不同的值。
我拥有的是:
- 一个 CSV 数据集配置元素,其中包含我用来登录用户的 .csv 文件路径(为此目的在 CSV 数据集配置中指定了 USER 变量,目前没有密码),其中包含 user1 和 user2 值。
- 两个单列的 .csv 文件分别命名为 user1 和 user2 到使用它们的用户的名称。
- 此文件的每个都包含一个列,其值为 user1(或 user2 分别对应一个文件名)_test1、user1_test2 等。
我的测试看起来像:
- 登录
- 带有来自特定用户 csv 文件的变量的 HTTP GET 请求(例如 http://google.com.${__CSVRead(path\to\file.csv,0)} )
我的第一个失败是使用与我在 CSV 数据集配置中使用的相同的变量来登录特定用户,例如。 G。 http://google.com.${__CSVRead(path\to\${USER}.csv,0)}。但是jmeter没有发送http://google.com.user1_test1请求,而是只发送http://google.com。 我在 CSVRead 函数之外检查了 USER 变量,它工作正常,所以我不知道我在将它传递给函数时做错了什么。
当我在请求中使用 .csv 的静态路径时 (http://google.com.${__CSVRead(path\to\file\user1.csv,0)}),我发现每个 user1 循环都使用来自 user1 的第一个变量.csv 每次,所有 user2 循环只使用第二个变量。
当我做类似的事情时:
http://google.com.${__CSVRead(path\to\file\user1.csv,0)}${__CSVRead(path\to\file\user1.csv,next)} 我得到:
http://google.com.user1_test2、http://google.com.user1_test4 等等(很接近,但还不够;),所以可能是我用错了“下一个”)
所以我的问题是:
- 有没有办法将变量传递给 CSVReader 文件路径?
- 有没有办法让 Jmeter 在每个循环而不是每个线程中使用 CSVRead 函数遍历 .csv 文件?
感谢阅读,希望有人能帮忙。
【问题讨论】:
-
我已经成功地完成了我的任务,只需将所需的测试数据放入单个 .csv 文件并通过 __StringFromFile 直接访问它,每个线程中的每个循环都会获得不同的数据值。哪个用户将使用该特定数据值并不重要,所以现在对我来说已经足够了。但我仍然对我最初提出的问题感到好奇