1、jmeter介绍
2、jmeter变量环境部署
3、jmeter目录结构
4、jmeter  Gui模式
5、jmeter 非Gui模式
6、jmeter 录制完显示乱码设置
7、jmeter 结果分析

 1.jmeter介绍

1.1.jmeter基于java环境中运行,所以运行时电脑中需要配置java的jdk环境变量进行,不同版本的jmeter支持的jdk版本也不同,比如jmeter3.2只支持jdk8.0以上的版本,jmeter下载后解压安装并部署jdk就可以直接使用了。
1.2.jmeter下载(网盘或官网下载)
网盘:https://pan.baidu.com/s/1sKITYdiG7GwBGTzuHvQdTQ  
密码:we6g
官网地址:https://jmeter.apache.org/
1.3.jdk下载(网盘或官网下载)
网盘:https://pan.baidu.com/s/1IZQbtdzde-6SZALfSh4-7w
密码:2zin
官网地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

 

 2.jemter变量环境部署

参考地址:https://jingyan.baidu.com/article/c85b7a6414f2ee003bac95d5.html

验证结果:
在命令窗口输入 java -version 回车(会显示出jdk的版本及时间)
在命令窗口输入java回车(会显示出java命令页)

 3.jmeter目录结构

JMeter中包含以下几个目录:
bin、docs、extras、lib、licenses、printable_docs

 

3.1 bin目录:

examples:目录中有csv样例
ApacheJMeter.jar:JMeter表现层的源码包
jmeter.bat:windows下启动文件
jmeter.sh:Linux下启动文件
jmeter.log:运行产生的日志和错误信息可在此文件查看
jmeter.properties:系统配置文件
jmeter-server.bat:windows下启动负载生成器服务文件
jmeter-server:Linux下启动负载生成器文件

3.2 docs目录:

接口文档目录
docs\api下的index.html可查看

 

3.3 extras目录

提供了对构建工具Ant的支持,可以使用Ant来实现测试自动化。
例如批量脚本执行,产生HTML格式的报表,测试运行时,可以把测试数据记录下来,Jmeter会自动生成一个.jtl文件,将该文件放到extras目录下,运行“ant -Dtest=文件名 report”,就可以生成测试统计报表

 

3.4 lib目录

lib下存放JMeter所依赖的外部jar包:
如httpclient.jar、httpcore.jar、httpmime.jar等等
JMeter依赖的核心jar包、JMeter插件包也在此目录

lib\junit下存放junit测试脚本

 

3.5 Licenses目录

jmeter证书目录

 

3.6 Printable_docs目录

用户使用手册,printable_docs下的index.html可查看

 

4.jmeter GUI模式

4.1 Jmeter windows下启动
4.2 Jmeter 主页面
4.3 Jmeter 测试元件简介
4.4 Jmeter 线程组
4.5 Jmeter接口测试实例
       a、录制脚本
       b、编写脚本
       c、参数化数据

 

4.1 Jmeter的启动:
    bin目录下启动jmeter.bat

 

4.2 Jmeter主页面
    测试计划:

测试计划是使用 JMeter 进行测试的起点,它是其它 JMeter 测试元件的容器

 

 下面看一下一个计划下面都有哪些主要的功能模块
(右键单击“测试计划”弹出菜单)

 

4.3 测试元件:

e、Timer 定时器
负责定义请求(线程)之间的延迟间隔,模拟对服务器的连续请求
f、Logic controller 逻辑控制器
允许自定义JMeter发送请求的行为逻辑,它与Sampler结合使用可以模拟复杂的请求序列。
g、Pre processor Post processor 前端处理器、后端处理器
前置处理器和后置处理器负责在生成请求之前和之后完成工作。前置处理器常常用来修改请求的设置,后置处理器则常常用来处理响应的数据。
h、config element 配置元件
维护Sampler需要的配置信息

4.4 线程组:

线程组的添加:
测试计划—>Threads—>Thread group

 


名称
注释
在取样器错误后要执行的动作
     继续   (如果取样器里的执行出现错误失败的时候,请求不会停止,继续执行。)
     Start Next Thread Loop
         (忽略错误,线程当前循环错误,执行下一个循环。)
     停止线程             (只限当前线程停止,不影响其他线程执行)
     停止测试             (当前执行的线程全部执行完毕后结束)
     Stop Test Now      (立刻停止)
线程属性
    线程数(需要设置多少线程执行测试,可看作模拟的用户数)
    Ramp-up Period (in Seconds)(多长时间启动所有线程)
    循环次数(线程跑几次)
Delay Thread creation until needed  
    (默认不勾选,延迟创建线程,直到该线程开始采样,即之后的任何线程组延迟    和加速时间为线程本身。这样可以支持更多的线程,但不会有太多是同时处于活动状态。)
调度器(默认不勾选,选中之后可以配置启动时间)

     启动时间(测试计划什么时候启动,启动延迟会覆盖它。当启动时间已过或手动运行
        脚本时,当前时间也会覆盖它(但启动时间页面显示不会变)。)

     结束时间(测试计划什么时候结束,持续时间会覆盖它)

     持续时间(测试计划持续多长时间,会覆盖结束时间)

     启动延时(测试计划延迟多长时间启动,会覆盖启动时间)

 

4.5 接口测试-实例

A、脚本的录制
 
A-1:
添加线程组:
右键测试计划-》添加-》Threads(Users)-》线程组

 

 

 A-2:
添加HTTP代理服务器:
右键工作台-》添加-》非测试元件-》HTTP代理服务器

 

 

 A-3:
配置代理服务器

 --端口(Port域):XXXX

--目标控制器(Target Controller):测试计划>XXXX(线程组名称)

--分组:每个组放入一个新的控制器

--添加“包含模式(Patterns to Include)”:如“.*\.html”

--添加“排除模式(Patterns to Exclude)”:如“.*\.gif”

 

A-3:
添加HTTP代理服务器:

 

A-4:
手机配置

1、配置手机代理

2、安装证书
进入jmeter bin安装目录,找到“ApacheJMeterTemporaryRootCA.crt”文件,
以任何可行方式上传至手机(如何安装证书可自行百度)

 

4、证书安装成功后即可录制脚本


安装步骤:使用QQ、微信或USB线传输到手机,设置-更多设置-系统安全-从SD卡中安装。注:
安装前手机需设置为数字解锁密码,安装后可以关闭。

 
B 脚本的编写:

B-1
添加线程组:
右键测试计划-》添加-》Threads(Users)-》线程组
 
B-2
添加http请求
右击“线程组”,然后“添加”–>“Sampler”–>“HTTP请求”

 

 


B-3
在Sampler-http请求中完善:

域名
方法
Content encoding
路径
参数

 


B-4
添加查看结果树

右击“线程组”,然后“添加”–>“监听器”–>“查看结果树”

 

 

 C 参数化数据

C-1
添加 CSV Data Set Config

右击“线程组”,然后“添加”–>“配置元件”–>“CSV Data Set Config”

 

 

C-2
CSV Data Set Config配置

 

 

C-3
CSV Data Set Config配置说明


Filename:制定的文档路径和名字;可以右击文档-属性,找到文档的路径,注意要写上文档名字和后缀;

File enconding:编码格式,如果txt文档中有中文,该行就要写入utf-8;

Variable Names:定义参数;txt文档中有几列就定义几个参数;参数见用英文逗号隔开;直接写wxid,在其他模块用的时候直接${wxid}调用即可;

Recycle on EOF:到了文件尾处,是否循环读取参数;

Stop thread on EOF:到了文件尾,是否停止线程;

 

C-4
http请求引用参数化数据

请求中参数值为${Variable Names}直接来引用

 

 

 

D 执行测试

命令行执行测试

 

5.Jmeter的非GUI模式


这里是我们使用非 GUI 模式运行测试脚本时可以使用的一些命令:

    -h 帮助 -> 打印出有用的信息并退出
    -n 非 GUI 模式 -> 在非 GUI 模式下运行 JMeter
    -t 测试文件 -> 要运行的 JMeter 测试脚本文件
    -l 日志文件 -> 记录结果的文件
    -r 远程执行 -> 启动远程服务
    -H 代理主机 -> 设置 JMeter 使用的代理主机
    -P 代理端口 -> 设置 JMeter 使用的代理主机的端口号


jmeter -n -t C:\Work\Order_10.jmx -l %workspace%\Report.jtl -e -o %jmxPath%\TestResult_Order\%d%\Report

 

6.Jmeter录制完显示乱码设置


6.1.修改jmeter配置文件:jmeter.properties

位置:jmeter中bin目录下

 

6.1.修改jmeter配置文件:jmeter.properties
    打开配置文件后,
    Ctrl+F输入encoding,把这行代码“=”后全部删除加入UTF-8,前方注释删除。

 

7.Jmeter结果分析


7.1.聚合报告

 

7.2.断言
    添加响应断言:线程组-断言-响应断言
    1.断言可以设置自己的预期结果
    2.如我发送的请求返回值中有"success":true信息。
    3.可以在响应断言中添加"success":true。

 

 

 

7.3.图形结果
    添加图形结果:线程组-添加-监听器-图形结果
    样本数目:总共发送到服务器的请求数。
     最新样本:代表时间的数字,是服务器响应最后一个请求的时间。
     吞吐量:服务器每分钟处理的请求数。
     平均值:总运行时间除以发送到服务器的请求数。
     中间值:代表时间的数字,有一半的服务器响应时间低于该值而另一半高于该值。
     偏离:服务器响应时间变化、离散程度测量值的大小,或者,换句话说,就是数据的分布。