Jmeter定时5秒钟发送一次请求
需求:使用上传坐标接口,每5秒钟发送一次请求,每次发送的坐标不同
过程:
1.jmeter测试计划→线程组→sampler→HTTP请求
在线程组中设置线程属性,线程数为1,循环次数为发送请求次数
2.线程组→监听器→查看结果树
在步骤一的http请求填写相关参数,运行后查看调用接口的结果是否正确
3.使用Excel构造批量测试数据
第一列为经度数据,第二列为纬度数据,保存为position.csv
4.线程组→配置元件→CSV数据文件设置
文件名:通过浏览文件夹添加
变量名称:longitude(对应position.csv中第一列的经度数据),latitude
5.在步骤一的HTTP请求中,将经纬度的参数值分别改为${longitude},${latitude}
运行后查看调用接口的结果是否正确
6.线程组→定时器→固定定时器
在固定定时器中将线程延迟(毫秒)填写为5000,运行后可在查看结果树里看到从第5秒开始间隔发送请求
思考:
如何用jmeter模拟多个用户同时每隔5秒发送请求,且请求数据不同???
解决:
1.在构造数据的CSV文件,补充多个用户的经纬度坐标数据,依次为A用户纬度、经度,B用户纬度、经度,C用户纬度、经度……在jmeter的CSV数据文件设置中,将变量名称依次对应csv文件中列数据,如设为lat1,long1,lat2,long2,lat3,long3……
2.在线程组中添加多个HTTP请求,几个用户几个请求,请求接口中填写对应的变量名,如position1对应用户1的上传坐标,发送请求的经纬度变量值为${lat1},${long1}
3.给最后一个请求添加一个固定定时器;将测试计划下的线程组的线程数设置为1,循环次数的设置为用户发送请求的数目
4.通过查看结果树发现,会先发送position1和position2请求,几秒后同时发送3个请求
其他:
一开始想到多用户发送请求,是用一个接口,设置线程数为用户数,但是需要构造数据比较麻烦,需要将三列数据合并为一列,且顺序为用户1、用户2、用户3、用户1、用户2、用户3……
通过搜索得到,将原始数据复制到Word中,以【只保留文本】粘贴,通过替换将tab空格替换为换行(^p),将得到的结果复制到excel中即可
===处理后===>