是否可以使用csv文件中的1000组lat,lon运行请求。 这应该在一个POST请求中。 请求如下所示:
{
"data": [
{
"id": "1",
"lat": ${random_lat},
"lon": ${random_lon}
},
{
"id": "2",
"lat": ${random_lat},
"lon": ${random_lon}
},
{
"id": "3",
"lat": ${random_lat},
"lon": ${random_lon}
}
...
]
}
csv文件如下所示:
51.3054489472673,-117.2031134800404
54.5883543433925,-98.0338493138702
58.2433547520569,-115.0488099947172
50.3905178887011,-138.4806899125170
41.8205185112055,-115.7196913326360
55.5866340199235,-95.6419879448747
请求应如下所示:
{
"data": [
{
"id": "1",
"lat": 51.3054489472673,
"lon": -117.2031134800404
},
{
"id": "2",
"lat": 54.5883543433925,
"lon": -98.0338493138702
},
{
"id": "3",
"lat": 58.2433547520569,
"lon": -115.0488099947172
}
...
]
}
我得到了这个但是所有的lat,lon都是来自csv文件的第一行。
答案 0 :(得分:0)
听起来像是Random CSV Data Set Config
的理想用例放置随机CSV数据集配置并进行配置,其方式与“普通”CSV数据集配置的方式非常相似
确保勾选Random order
框
就是这样,您现在可以在线程组中的任何位置使用引用变量名称,它们将包含CSV数据中的随机单元格
答案 1 :(得分:0)
你可以用我能想到的多种方式来做到这一点。
1-将多个csv用于输入变量。
2 - 使用单个csv作为输入变量。
3-使用随机csv数据集配置或jp @ gc - 来自csv的变量。
所以,计划将是...... 线程组> CSV数据集配置> HTTP请求>查看结果树
我正在显示选项2,单个csv,放置变量如下所示: -
random_lat1,random_lon1,random_lat2,random_lon2,random_lat3,random_lon3
51.30544895,-117.2031135,58.24335475,-115.04881,41.82051851,-115.7196913
...
.......
因此,首次运行将获得多个变量的单个请求中的所有值。
如果你想在csv中垂直寻找变量设定值,那么选择选项3并使用jp@gc - Variables from CSV files
但这需要相应地改变json,如下所示: -
{ " id":" 1", " lat":$ {random_lat 1 }, " lon":$ {random_lon 1 } } { " id":" 2", " lat":$ {random_lat 2 }, " lon":$ {random_lon 2 } } ....
希望它可以帮助您完成您的方案。
答案 2 :(得分:0)
问题:您需要提取' lat' &安培; ' LON' CSV文件中包含lan&的值lon由line分隔并使用所有lat&在单一请求中。
<强>解决方案:强> 有不同的方法来实现这种情况。但最可靠和最简单的方法是使用贝壳采样器&#39; JMeter的元素:
String path =&#34; C:/Users/ravsharma/Desktop/ABC1.csv" ;;
文件文件=新文件(路径);
BufferedReader bufRdr = new BufferedReader(new FileReader(file));
String line = null;
整数i = 1;
while((line = bufRdr.readLine())!= null){
的System.out.println(线);
String [] lat_lon = line.split(&#34;,&#34;);
vars.put(&#34; random_lat&#34; + i,lat_lon [0]);
vars.put(&#34; random_lon&#34; + i,lat_lon 1);
我++;
}
bufRdr.close();
答案 3 :(得分:0)
@Ravi Sharma - 我仍然不知道如何在JMeter中做到这一点。所以我编写了python脚本来生成它,然后我手动将输出粘贴到body数据。谢谢你们的帮助。
filename = "C:/Users/r/data/file_to_save.csv"
range1 = 1000
i = 0
with open(filename, 'a') as ff:
while True:
i += 1
if i < range1:
text=" {\n\
\"entity_id\": \"%i\",\n\
\"lat\": ${random_lat%i},\n\
\"lon\": ${random_lon%i}\n\
},\n" % (i, i, i)
else:
break
ff.write(text)
ff.close()