1、Jmeter简介
Apache JMeter是Apache组织开发的基于Java的压力测试工具。
2、Jmeter的用途
<1>接口测试
<2>性能测试
<3>压力测试
<4>数据库测试
<5>Java程序测试
3、 Jmeter的优点
<1>开源免费、
<2>支持多协议
<3>轻量级
<4>功能强大
4、Jmeter的缺点
使用Jmeter无法验证JS程序,也无法验证页面UI,所以要和Selenium配合完成Web 2.0应用的测试
5、Jmeter环境的配置与安装
由于Jmeter是100%纯Java桌面应用程序,因此它的运行环境需要Java环境,即需要安装JDK或JRE环境
<1>Jmeter安装
1>需要Java环境
2>去官网https://jmeter.apache.org/ 下载Jmeter的zip文件
解压Zip文件,解压后吧Jmeter的文件放在一个没有中文的路径之下
<2>Jmeter的启动
1>进入Jmeter的路径-->Bin目录
2>在Bin目录下双击Jmeter.bat文件
<3>Jmeter插件的安装
1>插件下载:http://jmeter-plugin.org/download/all
2>插件下载后的安装
找到Jmeter-Plugin-Extra.jar,把Jmeter-Plugin-Extra.jar放到
Apache-Jmeter-2.12\lib\ext目录,并重启Jmeter
插件位置:Jmeter界面菜单栏--选项
4.启动Jmeter
进入Bin目录
双击Jmeter.bat 文件,打卡Jmeter
注意:打开时会有两个窗口,Jmeter的命令窗口和Jmeter的图形操作界面,不可以关闭命令接口;
Linux下启动,Jmeter/bin目录下得Jmeter.sh
6.Jmeter 常用目录
<1>Bin目录
examples 目录中有CSV样例
Jmeter.bat Windows下的启动文件
jmeter.sh Linux下的启动文件
jmeter.log Jmeter运行的日志文件
jmeter.properties 系统配置文件(如果配置文件有修改,必须重启Jmeter才有效)
jmeter-server.bat Windows分布式测试要用到的服务器配置
jmeter-server Linux分布式测试要用到的服务器配置
```注:其中系统配置文件的SSL设置重点: ```
#指定HTTPS协议层
https.default.protocol=TLS https=https+SSL
#指定SSL文件
https.default.protocal=SSlv3
#设置启动的协议
https.socket.protocal=SSlv2Hello SSLv3 TLSv1
#缓存控制,SSL是否可以在多个迭代中重用
https.use.cached.ssl.context=true
<2>docs目录
接口文档目录
<3>extra目录
扩展插件目录,提供了对Ant的支持,可以使用Ant来实现自动化测试
例如批量脚本执行,产生HTML格式的报表,测试运行时,可以把测试数据记录下来,jmeter会自动生成一个.jtl文件,
把该文件放到extras目录下,运行“ant-Dtest=文件名 report”,就可以生成测试统计报表
<4>lib目录
所用到的插件目录,里面均为jar包,Jmeter会自动在Jmeter-HOME和ext目录下寻找需要的类,
lib下存放jmeter所依赖的外部jar:如httpclient.jar、httpcore.jar、httpmime.jar等;
<5>license目录
jmeter证书目录
<6>Printable-docs目录
print-docs的usermanual子目录下的内容是jmeter的用户手册文档,其中usermanual下
component_referen.html是最常用的核心单元帮助文档
7.jmeter基本使用&元件
<1>向百度发送请求
1>创建测试计划--打开jmeter时默认有一个测试计划
2>添加线程组--添加-->线程-->线组
3>添加http请求
鼠标右键-->添加-->取样器-->http请求
http请求:
名称:发送百度请求
协议:http
服务器名称或IP:www.baidu.com
端口号:有就自行添加
方式:Get
4>添加查看结果树
线程组上,鼠标右键-->添加-->监听器-->查看结果树
<2>测试计划元件
描述一个性能测试,包含了本次测试所以相关功能
<3>线程组
线程数-->用户的意思,多用户
Ramp-up时间(秒):启动设置的所有线程数所需的时间
循环次数:线程数循环的此时,所有线程
8.取样器(sampler)
取样器(sampler)是性能测试向服务器发送请求,记录响应信息,记录响应时间的最小单元,
Jmeter支持多种不同的sampler
一个取样器通常进行三部分的工作:
向服务器发送请求,记录服务器的响应数据和记录相关的时间信息
8.jmeter的运行原理
jmeter是以线程的方式运行的,运行在JVM虚拟机上,每个线程开销较大
jmeter GUI模式运行测试脚本对电脑的资源消耗较大,无法实现大的并发和压力测试
使用命令行的方式实现高并发和压力测试
使用GUI模式主要目的是为了编写和调试jmeter测试脚本
9.jmeter测试计划要素
使用jmeter编写测试脚本-要素
<1>测试计划
<2>在测试计划中至少有一个线程组
<3>在线程组中至少有一个取样器
<4>测试计划中必须要有监听器
10.jmeter录制脚本
<1>使用badboy录制(录制web网页,比较落后)
安装badboy-->在地址栏中输入被测网址,回车-->进入是默认为记录状态-->进行操作
-->停止-->导出jmeter-->保存.jmx文件
<2>使用jmeter自身代理录制移动端/网页
1、创建测试计划
2、在测试计划下添加线程组
3、在测试计划上右键添加-->非测试元件-->http代理服务器
4、配置http代理服务器
端口号:默认
httpsdomain:填写本机IP或localhost
目标控制器:测试计划-->线程组
5、启动 -->配置网络
6、停止
7、添加监听器
11、注意事项
<1>中文乱码的问题:
Jmeter安装目录/bin/jmeter.properties中的sampleresult.default.encoding默认为ISO-8859-1,
将参数改为 sampleresult.default.encoding=utf-8即可
```注:将注释符号#去掉,否则不会生效 ```
<2>修改默认语言
language=zh-CN
<3>对于录制脚本的中文乱码,需要对jmeter源码进行修改,即对jmeter的tar包进行编译