一,Jmeter启动
1.进入解压目录/bin/
2.sh jmeter
或者直接双击。
二,简单认识JMeter
1,如何创建一个工程,可以参考满哥的文章:
http://www.cnblogs.com/puresoul/p/4740436.html
2,HTTP请求默认值(用charles任意抓一个请求,看看哪些部分与请求中对应),举例如下:
http://httpbin.org/response-headers?Server=httpbin&Content-Type=text%2Fplain%3B+charset%3DUTF-8(默认80端口)
3,创建一个HTTP请求
4,用户定义的变量(全局使用,一直存在),及其引用
5,简单控制器(相当于文件夹)
6,循环控制器(图中接口循环执行四次,不用创建4个HTTP请求)
7,启用/禁用(如果部分接口不想执行,禁用掉即可,禁用置灰,可随时启用)
8,添加正则表达式(只有这个接口的出参才可用正则表达式保存,图2中两个参数都是test1接口返回,相当于4中自定义变量,只是它使用范围有限,只有它后面的接口才可使用,使用完后不会保存)
9,查看结果树(选择json格式查看响应数据比较方便)
10,CSV Data Set Config参数化
11,Debug Sampler:
注:
a,JMeter properties和System
properties:通常都选false,这两个就是JMeter和系统的属性,在Jmeter的bin的jmeter.properties中定义,一般都不会变。
b,JMeter variables:这个是我们自已定义的变量,定义的方式有如下这些:
1)选中测试计划(Test plan),在右边的面板上添加用户定义的变量
2)选中线程组,右键选择配置元件—>用户定义的变量
3)通过后置处理器中正则表达式生成的变量
4)使用csv参数化的变量
c、Debug Sampler会把我们自定义的变量输出在response
data中,方便我们调试的时候使用
d、在正式执行脚本时需要删除DebugSample
三,问题汇总
1,上传本地图片(开户、修改头像等),在Files UpLoad添加图片参数
2,若响应数据中有乱码或者msg全是???,则回到其接口,可以在encoding加上UTF-8解决
四,压力测试浅谈
1,压力测试需要安装的插件:
把以上jar包放到jmeter lib目录下ext目录下
然后重启jmeter,查看线程组下多了几个用于压力测试的模块
2,压力测试设置如下:
3,参数分析:
Avergae:平均响应时间,单位ms,不大于3秒均为符合
Median:响应时间参数
90%line:90%以上Sample的响应时间
95%line:95%以上Sample的响应时间
99%line:99%以上Sample的响应时间
Min:最小响应时间
Max:最大响应时间
Throuthput:吞吐量,一般是运营给运营指标,例如日活,然后计算出吞吐量(例如6小时10000个请求,10000/6*60*60)
4,各参数设置代表的含义:
初始化延迟10秒(等待10秒,00:00:00-00:00:10),开始启动线程,20秒(00:00:10-00:00:30)内启动50个线程,保持加载60秒后(00:00:30-00:01:30),10秒内(00:01:30-00:01:40)停止
注:Hold Load For,sec一般设置20min(1200sec),可先设置5分钟试下,稳定后再设置20秒
StartThreadsCount:启动线程数
5,响应时间(没有突然变得很大,如超过3秒,曲线类似下图,则正常)
6,吞吐量(先变大,然后稳定,再变小)
7,跟后端获得服务器的指标(单双核,CPU,内存,相应时间,吞吐量),压测时同时关注服务器的指标是否正常