JMeter教程

  |   0 评论   |   0 浏览

Apache JMeter是Apache组织开发的基于Java的 压力测试工具 。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。

因为JMeter是使用JAVA写的,所以使用JMeter之前,先安装JAVA环境。

基础介绍

一、下载

下载地址:http://jmeter.apache.org/download_jmeter.cgi

二、安装

将下载得到的压缩包解压即可,这里我解压到自己电脑的路径为:

G:\NIIT_2019\SECOND\课件\Junit

三、运行

点击bin目录下的jmeter.bat即可启动Jmeter。(注意直接双击jmeter.bat无法启动时需要使用Window+R,输入cmd,然后进入bin目录如下)。

启动之后会有两个窗口,一个cmd窗口,一个JMeter的 GUI。

上面的意思就是:不要使用GUI运行压力测试,GUI仅用于压力测试的创建和调试;执行压力测试请不要使用GUI。使用下面的命令来执行测试:

jmeter -n -t [jmx file] -l [results file] -e -o [Path to web report folder]

四、汉化

打开apache-jmeter-5.4.1\bin\jmeter.properties 文件

修改第三十九行,去掉前面的#,

改为language=zh_CN

重新打开就是中文界面了

五、创建测试

1.创建线程组

1.在“测试计划”上右键 【添加】-->【Threads(Users)】-->【线程组】

2.设置线程数和循环次数。我这里设置线程数为100,循环一次。

3.创建Http请求

在“线程组”右键 【添加-】->【samlper】-->【HTTP 请求】

4.添加察看结果树和聚合报告

在我们刚刚创建的线程组上右键 【添加】-->【监听器】-->【察看结果树】。添加聚合报告,右键 【添加】-->【监听器】-->【聚合报告】。

直接添加,然后点击运行按钮就可以看到结果了。

结果树分析

通过察看结果树,我们可以看到每个请求的结果,其中红色的是出错的请求,绿色的为通过。

Thread Name(线程组名称): 线程组 1-75

Sample Start( 启动开始时间): 2021-05-15 10:11:03 CST

Load time(加载时长): 2139

Connect Time:(连接时长) 2027

Latency(等待时长): 2136

Size in bytes(发送的数据总大小): 2559

Sent bytes(发送的字节):117

Headers size in bytes(发送数据的其余部分大小): 116

Body size in bytes: 2443

Sample Count(发送统计): 1

Error Count(错误统计): 0

Data type ("text"|"bin"|""): text

Response code(返回状态码): 200

Response message(返回信息): OK

这里绿色的就说明请求是通过的,返回值是200,如果出现红色的×就说明请求失败,这时候可以通过右边的取样器结果和响应数据来查看结果。

聚合报告分析:

样本(Sample):本次测试场景共运行多少线程;

平均值(Average):平均响应时间;

中位数(Median):统计意义上的响应时间中值;

90%百分比(90% line):所有线程中90%的线程响应时间都小于xx的值;

最小值(Min):响应最小时间;

最大值(Max):响应最大时间;

异常(Error):出错率;

Throughput - 吞吐量以“requests/second、requests /minute、 requests /hour”来衡量。 时间单位已经被选取为second,所以,显示速率至少是1.0,即每秒1个请求。 当吞吐量被保存到CVS文件时,采用的是requests/second,所以30.0 requests/second 在CVS中被保存为0.5.

Kb/sec - 以Kilobytes/seond来衡量的吞吐量

六、主要概念

1. 测试计划(test plan)

描述一个性能测试,包含本次测试所有相关功能

2. threads(users)线程

Setup thread group:

一种特殊类型的线程,可用于执行预测试操作。即执行测试前进行定期线程组的执行

Teardown thread group:

一种特殊类型的线程,可用于执行测试后动作。即执行测试结束后执行定期的线程组

以上两个线程组,举个例子:loadrunner的脚本除了action里是真正的脚本核心内容,还有初始化“环境”的初始化脚本和测试完毕后对应的清除信息的脚本块,与其对应

Thread group:

通常添加使用的线程,一般一个线程组可看做一个虚拟用户组,其中每个线程为一个虚拟用户

3.测试片段(test fragment)

2.5版本之后新增的一个选项,是一种特殊的线程组,在测试树上与线程组一个层级,但是它不被执行,除非它是一个模块控制器或者被控制器所引用时才会被执行。

4. 控制器

Jmeter有2种控制器:取样器(sampler)和逻辑控制器(Logic Controller)

作用:用这些原件驱动处理一个测试。

1) 取样器(Sampler)

是性能测试中向服务器发送请求,记录响应信息,记录响应时间的最小单元,JMeter 原生支持多种不同的sampler

如 HTTP Request Sampler 、 FTP Request Sampler 、TCP Request Sampler 、JDBC Request Sampler 等

每一种不同类型的 sampler 可以根据设置的参数向服务器发出不同类型的请求。

2) 逻辑控制器(Logic Controller)

5. 监听器(Listener)

对测试结果进行处理和可视化展示的一系列组件,常用的有图形结果、查看结果树、聚合报告等

以上的五类原件就可以构成一个简单的性能测试脚本。

6. 断言(Assertions)

用于检查测试中得到的响应数据等是否符合预期,Assertions一般用来设置检查点,用以保证性能测试过程中的数据交互与预期一致。

录制脚本

对大多数刚开始接触性能测试的人来说,代码功力可能不是太好,我们可以通过工具,录制脚本来进行测试,以达到我们的目的

一般来讲,录制脚本有两种方法。

一、利用badboy进行脚本录制

1、下载安装

badboy官网地址:http://www.badboy.com.au;https://badboy.en.softonic.com

安装完成后,启动badboy后,界面如下:

2、录制

1) 如上图,在地址栏(红色标注区域)中输入你需要录制的web应用的URL,这里以http://www.baidu.com为例子

2) 点击开始录制按钮(地址栏上方圈出来的地方)开始录制

3) 开始录制后,你可以在badboy内嵌的浏览器(界面右侧)对被测应用进行操作,所有操作过程都会记录在界面左侧的编辑窗口(黄色标注区域)

4) 录制完成后,点击工具栏中的停止按钮(绿色标注区域),完成脚本的录制

5) 点击file→save或者export to jmeter,将文件保存为jmeter的脚本格式:.jmx;启动jmeter,打开刚录制保存的文件,就可以进行测试了

二、利用jmeter代理服务器进行脚本录制

网址: https://blog.csdn.net/weixin_42614544/article/details/109514086

JMeter学习教程 - 从入门到精通

http://www.51ste.com/front/det-16.

转自 https://zhuanlan.zhihu.com/p/515749653