Jmeter初识
Apache Jmeter概述
是100%的纯java桌面应用,用于压力测试与功能测试,它开始被设计用于web应用测试,后来扩展到其他测试领域,通过线程租来驱动多个线程运行测试脚本,对被测服务器发起负载,每个负载机上面都可以运行多个线程组。
现在很多公司都是基于Jmeter开发出了公司级的自动化性能或者接口测试框架。比如Maven+Jenkins+Jmeter或ant+Jenkins+Jmeter
Jmeter的优点
1.能够对HTTP和FTP服务器进行压力和性能测试,也可以对任何数据库进行同样的测试(通过JDBC)
2.完全的可移植性和100%纯Java
3.完全Swing和轻量组件支持
4.完全多线程:框架允许通过多个线程并发取样和通过单独的线程租对不同的功能同事取样
5.精心的GUI设计运行快速操作和更精准的计时
6.缓存和离线分类/回放测试结果
7.完全开源,可以对Jmeter进行定制化的二次开发,扩展自己所需要的插件
jmeter的缺点
1.无类似loadrunner的IP欺骗
2.录制功能需要借助第三方工具(badboy/使用浏览器代理)
3.报表类型较少,没有LR齐全
4.上手叫loadrunner困难
5.场景设计比Loadrunner复杂
6.大并发下结果数据不是很准确
7.纯多线程模式,不支持进程模式
8.场景控制以及干预,没有Loadrunner方便,如无法在压力测试执行过程总,人工增加并发用户数
jmeter所支持的协议
-
web:http、https
-
SOAP
-
FTSMTP(S),POP3(S),IMAP(S)
-
MongoDB(Nosql)
-
TCP
-
原生命令或者shell脚本
-
JDBC
-
LDAP
-
面向消息的中间件(通过JMS)
-
邮件
jmeter
文件下载地址:http://jmeter.apache.org/download_jmeter.cgi
jmeter5.0版本需要安装jdk1.8版本
windows系统:在dos命令窗口中直接输入jmeter.bat文件所在位置,就可以打开jmeter
linux系统:在命令窗口中直接输入jmeter.sh文件所在位置,就可以打开jmeter
默认为英文版本的,打开bin 目录下的jmeter.properties配置文件,修改language=zh_CN
相关目录存放文件
examples,report-template,templates目录:都是系统提供的现成例子,包括脚本,参数化,报告等部分
docs目录:离线帮助文件,比如api
extras目录:持续集成和ant结合测试,需要的配置文件在该文件下,jmeter辅助功能,提供了ant,Jenkins集成的功能
lib\ext目录:放置一些拓展jar包,或者下载的插件的jar包
licenses目录:放置一些相关说明
printable_docs目录:也是一些离线帮助文档
readme.md文件当前版本说明文件
线程组包含三种类型:包括setUp线程组,线程组,tearDown线程组
setUp线程组相当于LR中的init
线程组相当于LR中的action
tearDown相当于end
配置文件优先级别最高的
做参数化文件CSV数据文件
http Cookie管理器,如果接口中用到cookie则需要用到该文件
JDBC用于数据库接口
监听结果
对结果进行查看分析,里面可能缺少一些需要的图表,需要你自己下载插件才会有
定时器相当于LR的思考,响应时间
jmeter体系结构
![](https://i-blog.csdnimg.cn/blog_migrate/12bad095f102f7ced1aae34947a51239.png)
元件的执行顺序:
1.配置文件
2.前置处理器
3.定时器
4.取样器
5.后置处理器
6.断言
7.监听器
实际操作结果如图所示:
![](https://i-blog.csdnimg.cn/blog_migrate/9e31d180d66df066c620aa4141efbe65.png)
线程组
线程数相当于并发多少用户数,ramp-up时间秒:多少秒内启动多少个用户
这个里面很多组件与测试计划里面是相同的
逻辑控制器
inclu控制器用于接口自动化