美好的一天,大家!
我的目标是让每个线程用户使用他们自己的.csv文件,并在每个循环中从中获取不同的值。
我拥有的是:
我的测试看起来像:
我的第一个失败是使用我在CSV数据集配置中使用的用于登录特定用户的相同变量,例如。 G。 http://google.com。$ {__ CSVRead(路径\为\ $ {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等等(关闭,但还不够;),我可能会使用" next"错误的方式)
所以我的问题是:
感谢阅读,我希望有人可以提供帮助。
答案 0 :(得分:0)
如果您查看functions manual,这可能是一个逃避问题
在Windows路径的变量之前使用\,例如C:\ test \ $ {test}时,请确保转义\,否则JMeter不会解释变量,例如:C:\ test \ $ {test}。
所以你需要更改为$ {__ CSVRead(path \ to \ $ {USER} .csv,0)}
但回答您的第二个问题,我建议您按CSV Data Set Config中的建议使用__CSVRead:
在大多数情况下,较新的CSV数据集配置元素更易于使用。
CSV数据集配置可以更容易地迭代循环中的行,并有更多选项来控制其流程。
如果您希望每个线程都有自己的一组值,那么您需要创建一组文件,每个线程一个。例如test1.csv,test2.csv,...,testn.csv。使用文件名test {$ __ threadNum} .csv并将“共享模式”设置为“当前线程”。