JMeter简单接口压测

虽然我是一个高冷任性的人,以前重现并发问题情愿搞个C语言的多线程程序执行,也不愿意找各种工具,昨天在压测dubbo接口的时候,用了下JMeter,还是挺爽的,果然赶脚自己是第一次用心用这玩意

因为做的是LBS基于位置的服务,因此少不了位置经纬度,当然还有人

这时候调用dubbo接口需要传入三个参数,其中有两个参数希望在并发的时候是在变化的,也就是并发每个线程传入的是不同的参数,至于具体接口内容可以无视

首先创建一个Thread Group,比如命名多线程

NewImage

这里三个参数可自行修改,1000就是线程数量,也就是并发次数,10是所有线程数执行完成的时间,比如这里的意思就是1000并发将在10秒完成,而不是1秒内完成1000次并发调用,具体可按自己测试指标来进行,Loop Count循环的次数

可以把测试结果给掉出来,具体有各种格式的显示输出,JSON,XML,TXT等

NewImage

接着就是来编辑具体接口,在Thread Group里Add具体的Sampler

NewImage

比如看右下角,需要传入三个参数,radius不变,就直接输入常数,也可以jmeter里设置一个变量赋值,更专业一点

对于customerNo,我希望有0~200里随机

选择Options里的Function Helper Dialog

NewImage

设置随机数最小和最大值,然后生成表达式,传到接口调用的参数里即可

对于center,传入的是经纬度,本来的做法是经纬度都递增0.001,但是好像JMeter里没找到这种浮点数的底层方法,只要采用另一种方法

先将200个线程里传入的经纬度写个脚本脚本生成,类似这种格式

 
lihui@2018  ~  cat lihui.csv
121.5074590654,31.2344404310
121.5079590654,31.2349404310
121.5084590654,31.2354404310
121.5089590654,31.2359404310
121.5094590654,31.2364404310
121.5099590654,31.2369404310
121.5104590654,31.2374404310
121.5109590654,31.2379404310
121.5114590654,31.2384404310
121.5119590654,31.2389404310
121.5124590654,31.2394404310

然后JMeter还有一种传入csv文件的方式,在这里

NewImage

然后就可以将刚生成的csv文件导入到JMeter

NewImage

同时确保csv文件里分隔符和这里配置的分隔符一致,同时这里变量名设置一下,同样逗号分隔

最后在将这两个变量传入到接口调用页面,这样就完成了整个配置

发表回复