阅读 140

性能工具之Jmeter小白入门系列之一

一、简单了解

Apache JMeter™ The Apache JMeter™ application is open source software, a 100% pure Java application designed to load test functional behavior and measure performance. It was originally designed for testing Web Applications but has since expanded to other test functions.

官网网站为: jmeter.apache.org/

安装 l 官网:jmeter.apache.org/download_jm…

微信图片_20210604185448.png

l 下载完成后直接解压缩即可,无须安装(前置条件,本机需要有java运行虚拟机环境)。

微信图片_20210604185456.png

l 点击bin目录下的jmeter.bat文件即可启动jmeter.

帮助文档: jmeter.apache.org/usermanual/…

插件安装

访问:jmeter-plugins.org/install/Ins…

微信图片_20210604185500.jpg 下载后存放位置:

微信图片_20210604185656.png

  1. 下载成功后将jar包放到jmeter的 lib/ext目录下,重启jmeter即可
  2. 验证插件可以使用

微信图片_20210604185700.jpg

查看插件

微信图片_20210604185704.png

二、初步功能测试介绍

步骤一:新建线程组 【Thread Group】

步骤二:添加请求类型【sampler】

步骤三:增加结果参看树【view results tree】

1、添加线程组

TestPlan-->右键-->add-->Threads(Users),添加Thread Group

微信图片_20210604185817.png

解释:Threads(Users):

setUp Thread Group

tearDown Thread Group

这个两个组件在工作中不是必须的,setUp Thread Group用来做初始化的工作,Thread Group是工作常用组;tearDown Thread Group用来做清理工作;

2、添加Sampler(演示使用HTTP Request)

选中group,右键-->add-->Sampler-->选择要测试的协议类型,以HTTP Request为例

微信图片_20210604185822.jpg

显示:

微信图片_20210604185824.png

说明:

Protocol[http]:不写就是默认的HTTP

Server Name or IP:www.7dtest.com 【默认不需要带http://】

Port Number:HTTP默认为80

Path:/表示根目录

Paramters:分两种方式一种为key-->value与json两种方式,如果测试文件上传参考性能工具之Jmeter上传与下载介绍

3、添加查看结果

选中TestPlan-->右键-->add-->Listener-->View Results Tree,

微信图片_20210604185829.png

点击请求:

微信图片_20210604185832.jpg

弹出警告:

微信图片_20210604185835.png 为你是否保存之后运行

结果如下:

微信图片_20210604185839.jpg 结果查看几种方式: View Results Tree组件可以很方便的查看请求的数据,响应的数据,当出现问题的时候可以用来分析问题,在jmeter中使用的频率很高

微信图片_20210604190534.png 微信图片_20210604185842.png

Write results to file/Read from file

微信图片_20210604185846.png l Filename:可以将执行结果保存到Filename指定的文件中,注意:默认保存在jmeter的bin目录下。如果勾选了后面的Errors,那么只保存错误信息;如果勾选了Success,那么只保存执行成功的信息;都不勾选的话保存所有的信息

l Browser:可以打开之前保存过的测试文件,将测试信息显示到下面的result栏中。如果勾选了后面的Errors,那么只显示错误信息;如果勾选了Success,那么只显示执行成功的信息;都不勾选的话显示所有的信息

1、Text:默认的显示方式,原始的HTML文本

微信图片_20210604185849.jpg

微信图片_20210604185852.png 2、HTML:以类似浏览器的格式查看响应数据

微信图片_20210604185856.png

3、RegExp Tester:支持正则用来做检查点或者关联使用

如:(.*?)

微信图片_20210604185901.png

[1][0]:表示整个匹配的表达式

[1][1]:表示分组中的内容

4、XPath Tester:xpath方式提取内容

微信图片_20210604185905.png

参考语法:[www.w3school.com.cn/xpath/index…]

l Use Tidy?:当需要处理的页面是HTML格式时,必须选中该选项,当需要处理的页面是XML或XHTML格式(例如,RSS返回)时,取消选中该选项。

l Reference Name:存放提取出的值的参数。

l XPath Query:用于提取值的XPath表达式。

l Default Value:参数的默认值

5、JSON PATH Tester 使用方式为:

微信图片_20210604185908.png

如果:$.extend.pageInfo.pageSize

参考java代码如:

/**

 * 通过json获取值
 * 李文 2020-03-25
 * @param json
 * @param path
 * @param filter
 * @return
 */
 
public static Object jsonPath(String json, String path, Filter... filter) {

    try {
        return filter.length == 0 ? JsonPath.parse(json).read(path, new Predicate[0]) : JsonPath.parse(json).read(path, new Predicate[]{filter[0]});
    } catch (PathNotFoundException var4) {
        log.error(var4.getMessage());
        return null;
    }
}
复制代码

以上取值待遇也是按$.开头取值;

6、Scroll automatically:请求很多时可以自动滚屏

如果勾选会自动滚屏

微信图片_20210604185912.jpg

View Results Tree试图为:

微信图片_20210604185916.png sampler result:

微信图片_20210604185919.jpg

说明:

Thread Name: Thread Group 1-1:Thread Group 2线程组的编号,1是线程组内线程的编号

Load time: 整个请求的执行时间

Connect Time: 连接时间

Latency: 延迟时间

Size in bytes: Headers size in bytes + Body size in bytes

Sent bytes:发送的字节数

request 请求数据

微信图片_20210604185924.png

response data 响应数据

微信图片_20210604185928.png

聚合报告简单说明使用

图:

微信图片_20210604185931.jpg

运行结果:

微信图片_20210604185935.jpg

说明:

Label:标签。如果选择了Include group name in label?这个选项,就会添加线程组的名称作为前缀(当聚合报告监控多个线程组时就勾上)

Samples:具有相同名称的样本数

Average:平均响应时间(单位:毫秒),默认是单个request的平均响应时间,当使用了事务控制器(Transaction Controller)的时候,也可以以事务为单位统计响应时间

Median:中位数。也就是50%的样本不超过这个时间

90% Line:90%的样本不超过这个时间

95% Line:95%的样本不超过这个时间

Min:具有相同标签样本的最小执行时间

Maximum:具有相同标签样本的最大执行时间

Error %:错误百分比

Throughput:吞吐量,一般认为是TPS。吞吐量以每秒/分钟/小时的请求量来衡量。当TPS很低时,jmeter会默认以分钟为单位统计。

Received KB/Sec:每秒收到的以千字节为单位的吞吐量

Sent KB/Sec:每秒发送的以千字节为单位的吞吐量

Save Table Data:把数据保存到csv文件中

Include group name in label?:会将线程组的名字作为前缀显示

微信图片_20210604185938.png 打开文件如:

微信图片_20210604191400.jpg 简单说明:

微信图片_20210604185942.png

改图配置可以根据实际情况选择

微信图片_20210604185945.png

文章分类
代码人生
文章标签