使用Jemeter测试的背景是,最近项目需要优化处理速度。
我单独用http请求测试过,但是只能单次测试。
用junit测试,虽然可以循环n次,但都是单线程的。 如果执行某段代码100次,也就是时间*100。并没有太大的意义 。
这时,我听说了Jemeter,还有Jmeter支持多线程。 也就是可以真实模拟同时100个顾客同时访问浏览器的情况。
下载地址网站官方地址 http://jmeter.apache.org/ ;点击第一个进入下载列表
我这两个版本都下载了,但是可能因为我是win7,64位系统。只有上面的那个Binaries版本可以打开。
jmeter是绿色版本,可直接运行。但是,运行jmeter需要JDK的执行。
没有安装的同学,可以在网上搜索jdk,下载,安装,配置环境变量就可以运行jmter文件了。
解压后,打开bin文件夹。运行jmeter.bat 文件。即可看到如图界面
到这一步,我们已经可以对程序进行配置了。
我们需要配置1.ping的网络地址
2.发送的请求内容
3.测试结果分析。
在这个图上name就不多说了。
说下下面的3个值
number of Threads //这个是同一时间运行的线程数。
Ramp-Up Period(in seconds) //这个是线程数启动的时间。例如,启动1000个线程,时间1s。那么就会在1秒内//发出1000个request请求。 可能有些请求会错误之类的。不写得话,默认就是0。
Loop Count //这个是每个线程循环运行次数。//例如这个值为2,线程50,时间1s。则每个线程运行2次。一共执行100次。
2.添加线程reuquest报文
Server Name or IP: //服务器ip地址
port name ;//服务器端口
protocol(http): //输入http或https
method:下拉列表,可以选择post,get,put等请求
path:写上连接的请求地址 ,例如 /member/memberId.html,如果是get请求的话。/member/memberId.html?memberId=8000001
如果请求的内容是json格式的,则可在 body Data中写入数据。
3.添加请求头部
然后,在里面写入要请求的头部内容
因为,我上传的是json请求,格式就是i
Content-Type: application/json
4.添加结果分析-结果树
添加完成后,不用配置。运行结束后。每一条请求为一条记录。
5.添加聚合报告
在这个图中有以下
samples 一共发出的请求个数
Average 平均响应时间
Error% 错误率
然后我们就可以运行了
如果,我们想清楚上次执行的结果可以点击 run -〉clear All,清楚以前的记录
"orderId":"1${__Random(0,9,random_num_0_9)}" 这个随机函数就是 "orderId":"1x", X的值是从0-9中随机取
然后执行后,我们就可以在request中看到这样的结果
坏处是,还可能有重复值。待继续摸索
使用csv文件导入变量,其他文件也可以。最好注意下格式UTF-8.
例如,以上字段,我想让orderId,以正常排序递增。并且更换登陆的用户名。
需要注意的是,如果csv文件有500条记录。线程执行500次。则每条记录被调用一次。但是如果线程超过500次,csv记录会被重新提交。
我们先添加CSV元件
然后在里面填写变量,这里我们注意下。变量之间需要用逗号隔开
FileName是csv文件的地址C:\tool\json.csv,如果把导入的文件放jmeter的bin目录中。则只需要填写导入文件名json.csv。
因为我只需要改变2个变量,所以csv文件里面也只写2个变量即可。如图
这样我们就可以运行了,回顾一下。1.在http request中输入需要的变量。2.新建csv文件 3.配置csv Data set config 模块,在模块里面指向外部csv文件,文件中的变量名
同时是使用jmeter的随机函数
variable Name是变量名,用法如同上面一样。在request中使用${orderId}调用
相关连接
jmeter相关指标http://my.oschina.net/ydsakyclguozi/blog/536416
jmeter使用变量填写参数 ,例如http://blog.chinaunix.net/uid-26884465-id-3416869.html
jmeter设置关键字过滤 教程http://www.cnblogs.com/TankXiao/p/4045439.html
添加reprot result教程 http://www.cnblogs.com/TankXiao/p/4059378.html?utm_source=tuicool