• 1. Jmeter 2016年08月8日 张媛媛
  • 2. 介绍 Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试但后来扩展到其他测试领域。 它可以用于测试静态和动态资源例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库, FTP 服务器, 等等。JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。另外,JMeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。为了最大限度的灵活性,JMeter允许使用正则表达式创建断言。 2
  • 3. 目录1、安装和启动 2、工具介绍 3、性能测试(接口并发压测) 4、断言使用 3
  • 4. 安装和启动1.下载jdk和jmeter 可以去jdk官网下载: http://www.oracle.com/technetwork/java/javase/downloads/jdk6-downloads-1637591.html 不要下成linux版本的了哦. jmeter下载的地址是: http://jmeter.apache.org/download_jmeter.cgi 2.安装jdk 然后给jdk设置环境变量,右键我的电脑-属性-高级-环境变量. 在用户变量中设置: 新建变量名"JAVA_HOME",变量值为:安装jdk的目录 再新建变量名"CLASSPATH",变量值为:C:\Program Files\Java\jdk1.6.0_34\lib\dt.jar;C:\Program Files\Java\jdk1.6.0_34\lib\tools.jar;C:\Program Files\Java\jdk1.6.0_34\bin 最后在系统变量"Path"的变量值加上%JAVA_HOME%/bin 4
  • 5. 安装和启动3.安装jmeter 解压apache-jmeter-2.7.zip到c盘跟目录下c:\apache-jmeter-2.7,当然看你个人的习惯了。 设置jmeter环境变量: 在用户变量中,新建变量名"JMETER_HOME",变量值为C:\apache-jmeter-2.7 修改"CLASSPATH",在后面添加;%JMETER_HOME%/lib/ext/ApacheJMeter_core.jar;%JMETER_HOME%/lib/jorphan.jar;%JMETER_HOME%/lib/logkit-2.0.jar 4.在系统cmd命令提示符下输入java -version,如果可以到java版本信息,说明jdk安装成功. 5.运行jmeter,直接打开C:\apache-jmeter-2.7\bin\jmeter.bat就可以了.
  • 6. 工具介绍Jmeter工具和其他性能工具在原理上完全一致,工具包含4个部分:   (1)负载发生器:用于产生负载,通常以多线程或是多进程的方式模拟用户行为。   (2)用户运行器:通常是一个脚本运行引擎,用户运行器附加在线程或进程上,根据脚本要求模拟指定的用户行为。   (3)资源生成器:用于生成测试过程中服务器、负载机的资源数据。   (4)报表生成器:根据测试中霍地的数据生成报表,提供可视化的数据显示方式。 6
  • 7. 性能测试实践实例-邮件发送 1、新建测试计划
  • 8. 性能测试实践实例-邮件发送 2、新建线程组
  • 9. 性能测试实践实例-邮件发送
  • 10. 性能测试实践名称随意编辑,为当前测试项 Number of Threads(users)(线程数): 一个用户占一个线程, 200个线程就是模拟200个用户 Ramp-Up Period(in seconds):设置线程需要多长时间全部启动。如果线程数为200 ,准备时长为10 ,那么需要1秒钟启动20个线程。也就是每秒钟启动20个线程。 Loop Count:(循环次数): 每个线程发送请求的次数。如果线程数为200 ,循环次数为10 ,那么每个线程发送10次请求。总请求数为200*10=2000 。如果勾选了“永远”,那么所有线程会一直发送请求,直到选择停止运行脚本。
  • 11. 性能测试实践实例-邮件发送 3、新建HTTP请求
  • 12. 性能测试实践
  • 13. 性能测试实践实例-邮件发送 4、新建HTTP信息头管理器
  • 14. 性能测试实践实例-邮件发送 5、新建CSV Data Set Config(为了压测,设置变量,不同用户发送请求)
  • 15. 性能测试实践实例-邮件发送 6、新建结果树(观看接口请求执行结果的)
  • 16. 性能测试实践实例-邮件发送 7、新建聚合报告(观看执行结果数据) 1. #Samples:样本数,表示此次测试共发出多少个请求 2. Average:平均响应时间。 3. Median:中位数,50%用户响应时间。 4. %90 Line:90%用户响应时间。 5. Min:最小响应时间。 6. Max:最大响应时间。 7. Error%:本次测试中出现错误的请求的数量/请求的总数 8. Throughput:吞吐量,表示每秒完成的请求数。 9.KB/sec:每秒从服务器端接收到的数据量
  • 17. 断言使用先说一下使用断言的目的:在request的返回层面增加一层判断机制。因为request成功了,并不代表结果一定正确。类似于QTP中的检查点检查。断言的使用方法: step_1:在你选择的Sampler下添加对应的断言(因为不同类型的断言检查的内容不同)。配置好响应的检查内容(根据断言情况而定,有的断言控制面板不需要添加任何内容,如XML Assertion)。 step_2:添加一个断言结果的监听器(从监听器中添加),通过“断言结果”可以看到是否通过断言。对于一次请求,如果通过的话,断言结果中只会打印一行请求的名称;如果失败,则除了请求的名称外,还会有一行失败的原因。(不同类型的断言,结果不同。) 注意:一个Sampler可以添加多个断言,根据你的检查需求来添加相应的断言,当Sampler下所有的断言都通过了,那么才算request成功。
  • 18. ~谢谢~后续有实际场景运用到不同的功能点,可以时长分享并编写相应的学习文档