csv的Jmeter问题中的参数化变量 [英] parametrize variable in Jmeter problem with csv
问题描述
我测试了NodeJS和Java技术中的后端应用程序.通信:JMeter中的NodeJs部分中的WebSocket和Java中的HTTP部分)我必须参数化URL,以便在开发URL,生产版本和prepod之间进行切换.
I testing backend application, which is in NodeJS and Java technology. communication: WebSocket in NodeJs part and HTTP in Java part) in JMeter I must parametrize URL, to switch between development URL, production and prepod.
我是通过CSV文件完成的.我在拥有Jmeter 5.0的文件夹中创建了CSV文件夹.我准备了3个CSV文件,在Jmeter的文件夹bin中有三个csv文件,例如:development.csv,production.csv.和prepod.csv
I did it by CSV file. I created folder CSV, in the folder where I have Jmeter 5.0. I prepare 3 CSV file I have three csv file in folder bin in Jmeter such as: development.csv, production.csv. and prepod.csv
我的CSV文件如下:
协议,主机http,10.219.227.66 ws,10.219.227.66
protocol, host http, 10.219.227.66 ws, 10.219.227.66
协议,主持人 https,prepod.myprepod.io ws,prepod.myprepod.io
protocol, host https, prepod.myprepod.io ws, prepod.myprepod.io
协议,主持人 https,production.myproduction.io ws,production.myproduction.io
protocol, host https, production.myproduction.io ws, production.myproduction.io
我已经在Jmeter中设置了:WebSocket打开连接服务器URL – ws服务器名称或IP-$ {host}
and I have set in Jmeter: WebSocket Open Connection Serwer URL – ws Server name or IP - ${host}
CSV数据集配置$ {__ P(环境,开发)}.csv
CSV Data Set Config ${__P(environment,development)}.csv
并且此项目未在日志中运行我有:原因:
and this project doesnt run in log I have: Caused by:
java.lang.IllegalArgumentException: File development.csv must exist and be readable at org.apache.jmeter.services.FileServer.createBufferedReader(FileServer.java:424) ~[ApacheJMeter_core.jar:5.0 r1840935] at org.apache.jmeter.services.FileServer.readLine(FileServer.java:340) ~[ApacheJMeter_core.jar:5.0 r1840935] at org.apache.jmeter.services.FileServer.readLine(FileServer.java:324) ~[ApacheJMeter_core.jar:5.0 r1840935] at org.apache.jmeter.services.FileServer.reserveFile(FileServer.java:272) ~[ApacheJMeter_core.jar:5.0 r1840935] ... 8 more 2018-10-19 14:29:30,727 INFO o.a.j.t.JMeterThread: Thread finished: Authorize success 1-1 2018-10-19 14:29:30,728 INFO o.a.j.e.StandardJMeterEngine: Notifying test listeners of end of test 2018-10-19 14:29:30,728 INFO o.a.j.g.u.JMeterMenuBar: setRunning(false, local)
2018-10-19 14:29:30,726 INFO o.a.j.t.JMeterThread: Thread started: Authorize success 1-1 2018-10-19 14:29:30,727 INFO o.a.j.s.FileServer: Stored: jmeter/5.0/bin/development.csv 2018-10-19 14:29:30,727 ERROR o.a.j.t.JMeterThread: Test failed! java.lang.IllegalArgumentException: Could not read file header line for file jmeter/5.0/bin/development.csv
2018-10-19 14:28:17,339 INFO o.a.j.s.FileServer: Stored: /usr/local/Cellar/jmeter/5.0/bin/development.csv
2018-10-19 14:28:21,184 INFO o.a.j.g.a.Start: Stopping test
2018-10-19 14:28:21,223 INFO o.a.j.t.JMeterThread: Stopping: Authorize success 1-1
2018-10-19 14:28:21,223 INFO o.a.j.t.JMeterThread: Thread finished: Authorize success 1-1
2018-10-19 14:28:21,225 INFO o.a.j.e.StandardJMeterEngine: Notifying test listeners of end of test
2018-10-19 14:28:21,225 INFO o.a.j.s.FileServer: Close: /usr/local/Cellar/jmeter/5.0/bin/development.csv
2018-10-19 14:28:21,225 INFO o.a.j.g.u.JMeterMenuBar: setRunning(false, *local*)
2018-10-19 14:28:26,413 INFO o.a.j.e.StandardJMeterEngine: Running the test!
2018-10-19 14:28:26,413 INFO o.a.j.s.SampleEvent: List of sample_variables: []
2018-10-19 14:28:26,414 INFO o.a.j.g.u.JMeterMenuBar: setRunning(true, *local*)
2018-10-19 14:28:26,695 INFO o.a.j.e.StandardJMeterEngine: Starting ThreadGroup: 1 : Authorize success
2018-10-19 14:28:26,695 INFO o.a.j.e.StandardJMeterEngine: Starting 1 threads for group Authorize success.
2018-10-19 14:28:26,695 INFO o.a.j.e.StandardJMeterEngine: Thread will start next loop on error
2018-10-19 14:28:26,695 INFO o.a.j.t.ThreadGroup: Starting thread group... number=1 threads=1 ramp-up=1 perThread=1000.0 delayedStart=false
2018-10-19 14:28:26,696 INFO o.a.j.t.ThreadGroup: Started thread group number 1
2018-10-19 14:28:26,696 INFO o.a.j.e.StandardJMeterEngine: All thread groups have been started
2018-10-19 14:28:26,697 INFO o.a.j.t.JMeterThread: Thread started: Authorize success 1-1
2018-10-19 14:28:26,697 INFO o.a.j.s.FileServer: Stored: /usr/local/Cellar/jmeter/5.0/bin/development.csv
2018-10-19 14:28:30,510 INFO o.a.j.g.a.Start: Stopping test
2018-10-19 14:28:30,540 INFO o.a.j.t.JMeterThread: Stopping: Authorize success 1-1
2018-10-19 14:28:30,540 INFO o.a.j.t.JMeterThread: Thread finished: Authorize success 1-1
2018-10-19 14:28:30,541 INFO o.a.j.e.StandardJMeterEngine: Notifying test listeners of end of test
2018-10-19 14:28:30,541 INFO o.a.j.s.FileServer: Close: /usr/local/Cellar/jmeter/5.0/bin/development.csv
2018-10-19 14:28:30,542 INFO o.a.j.g.u.JMeterMenuBar: setRunning(false, *local*)
2018-10-19 14:28:34,204 INFO o.a.j.e.StandardJMeterEngine: Running the test!
2018-10-19 14:28:34,204 INFO o.a.j.s.SampleEvent: List of sample_variables: []
2018-10-19 14:28:34,205 INFO o.a.j.g.u.JMeterMenuBar: setRunning(true, *local*)
2018-10-19 14:28:34,503 INFO o.a.j.e.StandardJMeterEngine: Starting ThreadGroup: 1 : Authorize success
2018-10-19 14:28:34,504 INFO o.a.j.e.StandardJMeterEngine: Starting 1 threads for group Authorize success.
2018-10-19 14:28:34,504 INFO o.a.j.e.StandardJMeterEngine: Thread will start next loop on error
2018-10-19 14:28:34,504 INFO o.a.j.t.ThreadGroup: Starting thread group... number=1 threads=1 ramp-up=1 perThread=1000.0 delayedStart=false
2018-10-19 14:28:34,504 INFO o.a.j.t.ThreadGroup: Started thread group number 1
2018-10-19 14:28:34,505 INFO o.a.j.e.StandardJMeterEngine: All thread groups have been started
2018-10-19 14:28:34,505 INFO o.a.j.t.JMeterThread: Thread started: Authorize success 1-1
2018-10-19 14:28:34,505 INFO o.a.j.s.FileServer: Stored: /usr/local/Cellar/jmeter/5.0/bin/development.csv
2018-10-19 14:29:25,998 INFO o.a.j.g.a.Start: Shutting test down
2018-10-19 14:29:26,021 INFO o.a.j.t.JMeterThread: Thread finished: Authorize success 1-1
2018-10-19 14:29:26,021 INFO o.a.j.t.JMeterThread: Stopping: Authorize success 1-1
2018-10-19 14:29:26,022 INFO o.a.j.e.StandardJMeterEngine: Notifying test listeners of end of test
2018-10-19 14:29:26,022 INFO o.a.j.s.FileServer: Close: /usr/local/Cellar/jmeter/5.0/bin/development.csv
2018-10-19 14:29:26,022 INFO o.a.j.g.u.JMeterMenuBar: setRunning(false, *local*)
2018-10-19 14:29:30,475 INFO o.a.j.e.StandardJMeterEngine: Running the test!
2018-10-19 14:29:30,475 INFO o.a.j.s.SampleEvent: List of sample_variables: []
2018-10-19 14:29:30,476 INFO o.a.j.g.u.JMeterMenuBar: setRunning(true, *local*)
2018-10-19 14:29:30,724 INFO o.a.j.e.StandardJMeterEngine: Starting ThreadGroup: 1 : Authorize success
2018-10-19 14:29:30,724 INFO o.a.j.e.StandardJMeterEngine: Starting 1 threads for group Authorize success.
2018-10-19 14:29:30,724 INFO o.a.j.e.StandardJMeterEngine: Thread will start next loop on error
2018-10-19 14:29:30,724 INFO o.a.j.t.ThreadGroup: Starting thread group... number=1 threads=1 ramp-up=1 perThread=1000.0 delayedStart=false
2018-10-19 14:29:30,725 INFO o.a.j.t.ThreadGroup: Started thread group number 1
2018-10-19 14:29:30,726 INFO o.a.j.e.StandardJMeterEngine: All thread groups have been started
2018-10-19 14:29:30,726 INFO o.a.j.t.JMeterThread: Thread started: Authorize success 1-1
2018-10-19 14:29:30,727 INFO o.a.j.s.FileServer: Stored: jmeter/5.0/bin/development.csv
2018-10-19 14:29:30,727 ERROR o.a.j.t.JMeterThread: Test failed!
java.lang.IllegalArgumentException: Could not read file header line for file jmeter/5.0/bin/development.csv
at org.apache.jmeter.services.FileServer.reserveFile(FileServer.java:283) ~[ApacheJMeter_core.jar:5.0 r1840935]
at org.apache.jmeter.config.CSVDataSet.iterationStart(CSVDataSet.java:183) ~[ApacheJMeter_components.jar:5.0 r1840935]
at
出什么问题了,我该如何改善呢?请帮助我
what is wrong, how I must improve this? please help me
推荐答案
您的问题是JMeter在以下位置查找文件:
Your issue is that JMeter looks for the file in :
jmeter/5.0/bin/development.csv
jmeter/5.0/bin/development.csv
在以下位置:
/usr/local/Cellar/jmeter/5.0/bin/development.csv
/usr/local/Cellar/jmeter/5.0/bin/development.csv
因此,要使路径稳定,请使用名为resdir的属性,该属性将引用包含CSV文件的文件夹:
So to make the path stable, use a property called resdir that will reference the folder containing CSV files:
$ {__ P(resdir,/usr/local/Cellar/jmeter/5.0/bin/)}/$ {__ P(environment,development)}.csv
${__P(resdir, /usr/local/Cellar/jmeter/5.0/bin/)}/${__P(environment,development)}.csv
将jmx文件放置在所需位置,然后使用以下命令运行jmeter bin文件夹:
Put your jmx file wherever you want and run jmeter bin folder using:
jmeter -t< test.jmx的完整路径> -Jresdir =/usr/local/Cellar/jmeter/5.0/bin/-l results.csc -e -o report-folder
jmeter -t <full path to test.jmx> -Jresdir=/usr/local/Cellar/jmeter/5.0/bin/ -l results.csc -e -o report-folder
然后将CSV放在/usr/local/Cellar/jmeter/5.0/bin/
And put your CSVs in /usr/local/Cellar/jmeter/5.0/bin/
这篇关于csv的Jmeter问题中的参数化变量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!