一、JMeter的安装(Linux)

1. 下载JMeter:这个就不细说了,直接去(http://jmeter.apache.org/download_jmeter.cgi)下载。

2. 解压:tar -zxvf apache-jmeter-2.9.tgz

3. 执行:sh jmeter.sh。

如果提示(No X11 DISPLAY variable was set, but this program performed an operation which requires it.)
恭喜你,你的JMeter图形界面不能启动,这里需要用命令行执行了。
具体的执行方法后面会说,首先需要录制测试脚本。 比较方便的是在Win下面JMeter的图形界面中录制,或者用Badboy录制。

二、JMeter脚本录制

1. 创建组
a. Number of Threads(users):通过多个线程模拟多个用户

b. Ramp-Up period(in seconds):用于告知JMeter
要在多长时间内建立全部的线程。默认值是0。如果未指定ramp-up period ,也就是说ramp-up period 为零, JMeter
将立即建立所有线程,假设ramp-up period 设置成T 秒, 全部线程数设置成N个, JMeter 将每隔T/N秒建立一个线程。
ramp-up period设置容易出现的问题:

(a). 如果设置成零,Jmeter将会在测试的开始就建立全部线程并立即发送访问请求,
这样一来就很容易使服务器饱和,更重要的是会隐性地增加了负载,这就意味着服务器将可能过载,不是因为平均访问率高而是因为所有线程的第一次并发访问而引起的不正常的初始访问峰值。这种异常不是我们需要的,因此,确定一个合理的ramp-up
period 的规则就是让初始点击率接近平均点击率。当然,也许需要运行一些测试来确定合理访问量。如果要使用大量线程,ramp-up
period 一般不要设置成零。

(b). 如果ramp-up period 过大也是不恰当的,因为将会降低访问峰值的负载,换句话说,在一些线程还未启动时,初期启动的部分线程可能已经结束了

(c). 合理的ramp-up period,首先推测一下平均点击率并用总线程除点击率来计算初始的ramp-up period。
例如,假设线程数为100, 估计的点击率为每秒10次, 那么估计的理想ramp-up period 就是 100/10 = 10 秒。

2. 创建循环控制器

在这里用于生成可变参数。
a. Loop Count:每个线程执行的次数
当前总样本数=Loop Count(Loop Controler)*Number of Threads*Loop Count(group)=2*100*500

3. 定义可变参数
a. Filename:参数文件名

b. Variable Names:变量名与下面的自定义变量相对应

c. Delimiter:参数文件中的参数分隔符

注意:理论上文件中的参数数量不应该小于Loop Count*Number of Threads

4. 定义请求参数

5. 执行脚本
将脚本文件(.jmx)和参数文件(.csv)上传到服务器,如果未特殊指定参数文件的路径,将二个文件放在同一个路径下即可。
a. 命令为:sh jmeter.sh -n -t examples/41search_1.jmx -l examples/search_1_100T.jtl。
其它命令参数可查看帮助。

6. 查看结果
将生成的结果文件(search_1_100T.jtl)导出到本的,用JMeter打开查看
a. 聚合报告:具体说明见下篇

b. 图形报告:具体说明见下篇
注意:这张图口味稍微有点重,密集恐惧症者慎入;-)

c. 树形报告:具体说明见下篇

最新文章

  1. K60——寄存器
  2. 理解javascript中的浏览器窗口——窗口基本操作
  3. Postgresql 取随机数
  4. PHP生成唯一会员卡号
  5. DOM基础2
  6. 暴力/set Codeforces Round #291 (Div. 2) C. Watto and Mechanism
  7. 区域医疗移动医疗影像解决方案1-基于HTML5的PACS
  8. this和$(this)
  9. Redis 学习数据类型
  10. Caffe代码分析--crop_layer.cu
  11. web前端+javascript+h5电子书籍和实战分享
  12. Netty(二)——TCP粘包/拆包
  13. Natural Hazards 隐私政策
  14. JPA注解实体类,给表添加创建时间,更新时间,id的生成以及创建唯一约束
  15. 【转】安全加密(三):RFID标签防伪为生活开启安全模式
  16. python标准库之secrets
  17. 最全Python爬虫总结(转载)
  18. ANSYS渡槽槽身动水压力的施加(1)——矩形渡槽
  19. PBR Step by Step(四)Lambertian反射模型
  20. ES6模块的import和export用法

热门文章

  1. js的页面交互
  2. elment 中tree组件展开所有和收缩所有
  3. SpringCloud之RabbitMQ消息队列原理及配置
  4. less-important
  5. 【转】go里面字符串转成 字节slice, 字节slice转成字符串
  6. Nginx中ngx_http_headers_module
  7. Java File类方法使用详解
  8. ACM-ICPC 2018 沈阳赛区现场赛 E. The Kouga Ninja Scrolls (切比雪夫距离+线段树)
  9. BZOJ 2502 清理雪道/ Luogu P4843 清理雪道 (有源汇上下界最小流)
  10. BZOJ 2039 / Luogu P1791 [2009国家集训队]employ人员雇佣 (最小割)