IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> 00Jmeter课程笔记 -> 正文阅读

[开发测试]00Jmeter课程笔记

                   接口测试 Jmeter

1.Jmeter概述

1.1 Jmeter简介

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

? 是一款接口压测工具,同类的产品有loadrunner,loadrunner是收费的。

1.2 Jmeter作用

1.接口测试

? 2.性能测试:内在 —程序的算法 响应时间 1个功能的花费时间

? postman,但jmeter有参数化,更强大

? 3.压力测试:外在 —12306买票 响应时间要求不高,但并发用户数 系统不会挂 要好 测最大的负载量 用户数

4.web自动化测试

5.数据库测试:测试数据库 jmeter能连接数据库

6.Java程序测试

1.3 Jmeter优点

1.开源、免费

2.支持多协议:http https ftp文件传输协议

3.小巧 47M

4.功能强大

1.4 Jmeter缺点

1.不支持IP欺骗 天气预报接口 1天内超过2次就收费

? 如果能IP欺骗,就可以免费访问接口

2.不支持前端测试,前端用Selenium测试

2.Jmeter环境搭建

2.1 Jmeter下载

? 进入官网:http://jmeter.apache.org/

1.第一步进入官网如下图

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sYtCyXYe-1632792995399)(https://raw.githubusercontent.com/tangguanlin2006/image/main/img/20210927193738.png)]

2.选择进行下载,下载下来为一个压缩包,解压即可。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kWdmoOQ6-1632792995404)(https://raw.githubusercontent.com/tangguanlin2006/image/main/img/20210928092856.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2vjx6t87-1632792995407)(https://raw.githubusercontent.com/tangguanlin2006/image/main/img/20210927193800.png)]

3.我下载的是jmeter5.4版本,对应jdk1.8。然后就进行解压。

2.2 JDK安装

JDK1.7 意思即可(安装省略)

2.3 Jmeter安装

1.) 电脑桌面----》“计算机”图标----》鼠标右键选择“属性”----》点击高级系统设置----》高级—》环境变量页面

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VXdrq4dJ-1632792995410)(https://raw.githubusercontent.com/tangguanlin2006/image/main/img/20210927193817.png)]

2) 开始配置环境变量了。在系统变量框,点击“新建”,建立一个变量:JMETER_HOME,值为你解压的jmeter安装路径。我的安装路径是在D盘,这个路径根据自己实际安装路径进行填写。然后点击确定保存即可


[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QZLw4rZw-1632792995412)(https://raw.githubusercontent.com/tangguanlin2006/image/main/img/20210927131129.png)]

3)配置classpath变量

? path: %JMETER_HOME%\lib

4)基本配置完成,然后验证一下是否配置正确,是否可用。

首先进到你的jmeter安装路径,找到bin文件夹,点击进去,找到jmeter.bat,鼠标右键用管理员方式运行,或者直接双击打开,此时会弹出2个界面:1.个是命令窗口,使用jmeter的时候此命令窗口不能关,你缩小到电脑任务栏即可。2.还有一个界面是jmeter工作页面,你可以在里面进行相关的操作.具体如图

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UeAFZAfL-1632792995414)(https://raw.githubusercontent.com/tangguanlin2006/image/main/img/20210927193902.png)]

5)确认安装是否成功,双击jmeter.bat或者以管理员方式运行,页面如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zNCaNWu1-1632792995415)(https://raw.githubusercontent.com/tangguanlin2006/image/main/img/20210927193920.png)]

6)jmeter的工作区域如下:,我们每次使用jmeter的首先打开方式就是进入bin文件下双击这个jmeter.bat,如果觉得麻烦,可以鼠标右键快捷方式发送电脑桌面,就会方便很多。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KsS6dpkI-1632792995417)(https://raw.githubusercontent.com/tangguanlin2006/image/main/img/20210927193930.png)]

3.Jmeter线程组

3.1 什么是线程组

进程:正在运作中的程序—QQ、微信、迅雷

线程:进程中的执行单元 一个进程包含多个线程 —下载 播放

? 每发起一个http请求,系统对应一个线程

线程组:按照线程性质对线程进行分组 --单个下载 批量下载 – 接口分组

接口分组:

接口分组 http请求------对应----线程 线程组

顺序执行:按照线程的启动顺序挨个执行 ----线程组内顺序执行

并发执行:多个线程同时执行 特定:执行结束顺序和线程的启动顺序不一定一致 —线程组间并发执行

image-20210921180753300

? 线程数5:–模拟用户数 5个用户
时间(秒数)10:指定时间内启动所有线数 10 10秒钟之内启动3个用户(区间内) 2个小时内 陆陆续续有300个用户
? 循环次数3:单个用户访问次数 3 每个用户执行3次

3.2 Http请求

一个接口请求

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6E020ohg-1632792995420)(https://raw.githubusercontent.com/tangguanlin2006/image/main/img/20210927193948.png)]

关于http请求的的属性参数说明:

1)名称:用于标识一个sample。建议使用一个有意义的名称

2)注释:对于测试没任何影响,仅用来记录用户可读的注释信息

3)服务器名称或IP:http请求发送的目标服务器名称或者IP地址,比如http://www.baidu.com

4)端口号:目标服务器的端口号,默认值为80,可不填

5)协议:向目标服务器发送http请求时的协议,http/https,大小写不敏感,默认http

6)方法:发送http请求的方法(链接:https://blog.csdn.net/frank_ldw/article/details/88394063)

7)Content encoding:内容的编码方式(Content-Type=application/json;charset=utf-8)

8)路径:目标的URL路径(不包括服务器地址和端口)

3.3 Http信息头管理器

JMeter不是浏览器,因此其行为并不和浏览器完全一致。这些JMeter提供的配置元件中的HTTP属性管理器用于尽可能模拟浏览器行为,在HTTP协议层上发送给被测应用的http请求

http信息头管理器添加好之后,需要填入信息头的名称以及对应的值,如下

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vIsyljzQ-1632792995421)(https://raw.githubusercontent.com/tangguanlin2006/image/main/img/20210927193958.png)]

3.4 查看结果树

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WGGFcHGk-1632792995422)(https://raw.githubusercontent.com/tangguanlin2006/image/main/img/20210927194006.png)]

如上,测试结束后,如果我们的请求成功发送给服务器,那么结果树里面的模拟请求会显示为绿色,可以通过取样器结果里面的响应状态码信息来判断。

也可以点击请求模块,查看我们发送的请求

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pcj6Rlgd-1632792995424)(https://raw.githubusercontent.com/tangguanlin2006/image/main/img/20210927194014.png)]

里面有我们发送的请求的方法、协议、地址以及实体主体数据,以及数据类型,大小,发送时间,客户端版本等信息

响应数据:里面包含服务器返回给我们的响应数据实体,如下图

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5WEXUox0-1632792995425)(https://raw.githubusercontent.com/tangguanlin2006/image/main/img/20210927194026.png)]

3.5 Http Cookie管理器

web网站的请求大部分都有cookies,jmeter的HTTP Cookie管理器可以很好的管理cookies。

直接加一个HTTP Cookie管理器放到请求的最前面,就可以自动管理cookies了。

比如:当登录成功了,服务端会返回2个token,

添加后会自动保存你每次请求的cookies,

后续的请求都会带上前面的cookies,就跟你正常访问浏览器是一样的。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pAYqtvgC-1632792995426)(https://raw.githubusercontent.com/tangguanlin2006/image/main/img/20210927194036.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lfhN00q4-1632792995428)(https://raw.githubusercontent.com/tangguanlin2006/image/main/img/20210927194050.png)]

3.6 聚合报告

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-C3XdXeDS-1632792995430)(https://raw.githubusercontent.com/tangguanlin2006/image/main/img/20210927194058.png)]

对于每个请求,它统计响应信息并提供请求数,平均值,最大,最小值,错误率,大约吞吐量(以请求数/秒为单位)和以kb/秒为单位的吞吐量.

Label:请求的名称,就是我们在进行测试的httprequest sampler的名称

Samples:总共发给服务器的请求数量,如果模拟10个用户,每个用户迭代10次,那么总的请求数为:10*10 =100次;

Average:默认情况下是单个 Request 的平均响应时间,当使用了 Transaction Controller 时,以Transaction 为单位显示平均响应时间 ,单位是毫秒

Median: 50%用户的请求的响应时间,中位数

90%Line:90%的请求的响应时间

95%Line:95%的请求的响应时间

99%Line:99%的请求的响应时间

Min:最小的响应时间

Max:最大的响应时间

Error%:错误率=错误的请求的数量/请求的总数

Throughput: 默认情况下表示每秒完成的请求数(Request per Second),当使用了 Transaction Controller 时,也可以表示类似 LoadRunner 的 Transaction per Second 数

KB/sec: 每秒从服务器端接收到的数据量

3.7 Http请求默认值

一般情况下,我们在一个项目中调用的接口中域名、端口等都是相同的。当我们创建多个HTTP 请求时,由于这些数据是必填项,所以,我们就需要不停地填写相同的数据。如果项目进行过程中出现了更改域名、更改端口号等情况,我们又需要把每一个请求中的数据都做更改,这样看上去似乎有些麻烦了。

下面我们就来介绍一种方法将这些相同的参数设置为默认的,每次创建 HTTP 请求时就不用再输入了,这就需要我们配置【HTTP 请求默认值】来实现了。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dvb9BqVG-1632792995431)(https://raw.githubusercontent.com/tangguanlin2006/image/main/img/20210927194119.png)]

3.8 调度器(计时器)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pOEhovzV-1632792995433)(https://raw.githubusercontent.com/tangguanlin2006/image/main/img/20210927194124.png)]

? 一般勾选永远
? 循环次数:设置为永远
? 持续时间: 5秒
? 启动延迟时间:3秒 3秒后开始启动,持续访问5秒钟
? x秒后访问服务器,持续y秒

3.9 setUp线程组

最先执行的线程组
用途:资源加载,数据初始化

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nIsk7I77-1632792995434)(https://raw.githubusercontent.com/tangguanlin2006/image/main/img/20210927194135.png)]

3.10 tearDown线程组

最后执行的线程组
用途:程序正式关闭之前,将数据保存进内存

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-96YbMBGv-1632792995436)(https://raw.githubusercontent.com/tangguanlin2006/image/main/img/20210927194143.png)]

4.Jmeter函数

4.1 计数器函数

1.设置计数器函数

选择counter函数,输入TRUE,每个用户有自己的计数器,点击生成:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sOH64UPN-1632792995437)(https://raw.githubusercontent.com/tangguanlin2006/image/main/img/20210927194150.png)]

2.使用计数器函数

复制生成的函数字符串:${__counter(TRUE,)},放到需要用的地方:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6FNAA7x2-1632792995438)(https://raw.githubusercontent.com/tangguanlin2006/image/main/img/20210927194158.png)]

4.2 随机数函数

1.设置随机数函数

选择Random函数,输入最小值和最大值,点击生成:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Q6GQxOI6-1632792995440)(https://raw.githubusercontent.com/tangguanlin2006/image/main/img/20210927194205.png)]

2.使用随机数函数

复制生成的函数字符串:${__Random(1,99,)},放到需要用的地方:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bJ8JLvC4-1632792995441)(https://raw.githubusercontent.com/tangguanlin2006/image/main/img/20210927194213.png)]

4.3 时间函数

1.设置时间函数

选择time函数,输入时间格式yyyy-mm-dd HH:MM:SS,点击生成:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PCCOvx32-1632792995442)(https://raw.githubusercontent.com/tangguanlin2006/image/main/img/20210927194224.png)]

2.使用时间函数

复制生成的函数字符串:${__time(yyyy-mm-dd HH:MM:SS,)},放到需要用的地方:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kTioMQ2G-1632792995444)(https://raw.githubusercontent.com/tangguanlin2006/image/main/img/20210927194233.png)]

5.Jmeter参数化

参数化是指动态的设置并获取数据

参数化就是可以程序代替人工设置并获取数据:安全 高效

5.1用户定义的变量

jmeter的自定义变量可以让我们随机选取变量,从而达到在性能测试过程中可以随机选取变量的目的。

设置自定义变量如图:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uDzYpdnQ-1632792995445)(https://raw.githubusercontent.com/tangguanlin2006/image/main/img/20210927194241.png)]

获取自定义变量:

? 引用已定义的变量:${变量名},比如: ${user1}

image-20210921192028363

5.2 CSV Data Set Config

批量读取数据, 从文件中读取变量值,用于变量的参数化

A. Jmeter 参数CSV Data Set Config

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Oumb4w1G-1632792995448)(https://raw.githubusercontent.com/tangguanlin2006/image/main/img/20210927194257.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lDKZytP8-1632792995450)(https://raw.githubusercontent.com/tangguanlin2006/image/main/img/20210927194304.png)]

B.CSV文件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iCxOnOvi-1632792995451)(https://raw.githubusercontent.com/tangguanlin2006/image/main/img/20210927194310.png)]

C.body传值

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VOvIYa79-1632792995452)(https://raw.githubusercontent.com/tangguanlin2006/image/main/img/20210927194316.png)]

6.Jmeter高并发

高并发场景:模拟100个用户同时访问服务器资源,要求平均响应时间在30ms内,且错误率为0

线程组:线程数:100
http请求:
同步定时器:
模拟用户组的数量:100 一个批次请求的人数 100人分1批
超时时间以毫秒为单位:10

? 聚合报告:对结果汇总分析

5.1 线程组设置

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-b0ZQhnCG-1632792995455)(https://raw.githubusercontent.com/tangguanlin2006/image/main/img/20210927194324.png)]

5.2 同步定时器设置

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-X4gCohOe-1632792995456)(https://raw.githubusercontent.com/tangguanlin2006/image/main/img/20210927194333.png)]

7.Jmeter断言

7.1 什么是断言

在 jmeter 中断言用于验证服务器返回的数据是否满足我们的要求

让程序代替人工判断响应结果是否符合预期。

Restful风格:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KTUaBJGr-1632792995457)(https://raw.githubusercontent.com/tangguanlin2006/image/main/img/20210927195929.png)]

1.响应断言 = 断言状态码和响应文本

? 响应状态码: 相等 200

? 响应文本:包含 相等

2.大小断言 = 判断响应内容的字节长度

3.断言持续时间 = 判断响应时间

7.2 响应断言

响应文本:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JDOTJXzq-1632792995459)(https://raw.githubusercontent.com/tangguanlin2006/image/main/img/20210927194342.png)]

响应代码:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SOMhy8OX-1632792995460)(https://raw.githubusercontent.com/tangguanlin2006/image/main/img/20210927194347.png)]

7.3 大小断言

判断字符大小的长度

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9U7iS7Bk-1632792995463)(https://raw.githubusercontent.com/tangguanlin2006/image/main/img/20210927194352.png)]

7.4 断言持续时间

判断响应时间

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rwbiM19b-1632792995466)(https://raw.githubusercontent.com/tangguanlin2006/image/main/img/20210927194610.png)]

8.循环控制器

8.1 仅一次控制器

? 设置了“仅一次控制器”的接口请求,一个用户只会执行一次。

http请求要放到“仅一次控制器”里面,被控制器控制才有效。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LFCBcegF-1632792995468)(https://raw.githubusercontent.com/tangguanlin2006/image/main/img/20210927194636.png)]

8.2 if逻辑控制器

if逻辑控制器,当满足指定的条件时,才执行http请求。

http请求要放到“if逻辑控制器”里面,被if逻辑控制器控制才有效。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Dxq3TXbK-1632792995470)(https://raw.githubusercontent.com/tangguanlin2006/image/main/img/20210927194719.png)]

设置if控制器的判断条件:

设置变量val的值为 abc,

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YmgNVlXh-1632792995472)(https://raw.githubusercontent.com/tangguanlin2006/image/main/img/20210927194738.png)]

设置判断条件:"${val}"==“abc”

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jRFEtxNG-1632792995473)(https://raw.githubusercontent.com/tangguanlin2006/image/main/img/20210927194802.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lnYucdkP-1632792995476)(https://raw.githubusercontent.com/tangguanlin2006/image/main/img/20210927194822.png)]

8.3 foreach逻辑控制器

业务逻辑:

ForEach控制器一般与用户自定义变量/JDBC结果变量一起使用,可以认为他就是一种遍历型循环,该节点下的脚本内容会根据结和使用的变量被执行一次或者多次

控制器选项介绍:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1HUmWZem-1632792995477)(https://raw.githubusercontent.com/tangguanlin2006/image/main/img/20210927194828.png)]

**Input variable prefix:**变量前缀,比如上面的test_1,这里就输入test

**Start index for loop:**开始循环字段,不包含输入的数值,按照上图从1开始,则这里输入0,为空和非数字都从0开始

**End index for loop:**结束循环字段,包含输入的数值,这里输入范围内的数值则遍历到该值后停止,如果非范围内的值,则一直遍历至结束

**Output variable name:**输出变量名称,将前面拼凑起来的变量的值复给该变量,以便后续使用

JDBC请求获取的值格式也是 XX_1、XX_2、XX_3,因此也同样适用于类似上述的用户自定义变量

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CU93kgkd-1632792995478)(https://raw.githubusercontent.com/tangguanlin2006/image/main/img/20210927194834.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-quNb9SEZ-1632792995481)(https://raw.githubusercontent.com/tangguanlin2006/image/main/img/20210927194840.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5J6kb0BC-1632792995483)(https://raw.githubusercontent.com/tangguanlin2006/image/main/img/20210927194952.png)]

最后的结果:取到值放入请求路径中

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dqsWIxXN-1632792995484)(https://raw.githubusercontent.com/tangguanlin2006/image/main/img/20210927194848.png)]

8.4 逻辑控制器

当http请求设置为逻辑控制器时,就会按设定的次数循环执行http请求。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lQzLiMAX-1632792995486)(https://raw.githubusercontent.com/tangguanlin2006/image/main/img/20210927194857.png)]

执行结果:执行3次http请求

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RDChz9Cd-1632792995488)(https://raw.githubusercontent.com/tangguanlin2006/image/main/img/20210927194904.png)]

9.关联

9.1 xpath提取器

–xpath提取器(网页数据): 后置处理器 ----针对网页数据
勾选Use Tidy
引用名称:val
Xpath query: //title 提取方式
匹配数字:1
缺省值:黑马

设置界面:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0oWleLnW-1632792995489)(https://raw.githubusercontent.com/tangguanlin2006/image/main/img/20210927195352.png)]

使用获取到的值:

image-20210925212630204

运行结果:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wCUUUp7R-1632792995493)(https://raw.githubusercontent.com/tangguanlin2006/image/main/img/20210927195407.png)]

9.2 正则表达式提取器

–正则表达式提取器(非网页数据): -------json数据 前后端接口数据
引 用 名称: val
正则表达式:“dep_name”:"(.*?)" ?:贪婪终止模式
模 板: 1 1 1
匹 配 数字:1
缺 省 值:黑马(没匹配上就选黑马)

接口返回:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0tKe3NMt-1632792995495)(https://raw.githubusercontent.com/tangguanlin2006/image/main/img/20210927195413.png)]

设置界面:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-o5Fvv6yY-1632792995496)(https://raw.githubusercontent.com/tangguanlin2006/image/main/img/20210927195419.png)]

使用获取的结果:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QrcmZ4Of-1632792995498)(https://raw.githubusercontent.com/tangguanlin2006/image/main/img/20210927195424.png)]

运行结果:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Tt06gtH1-1632792995499)(https://raw.githubusercontent.com/tangguanlin2006/image/main/img/20210927195429.png)]

10.跨越线程组传值

跨线程组关联:

? 全局:跨线程组 线程组直接相互传值

? 局部:同一个线程组

设置全局变量 setProperty:

? BeamShell取样器: KaTeX parse error: Expected '}', got 'EOF' at end of input: …etProperty(out,{val},)}_

获取全局变量 property:
${_property(out,)}

1.正则表达式提取器

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lcV6QNZV-1632792995501)(https://raw.githubusercontent.com/tangguanlin2006/image/main/img/20210927195436.png)]

2.setProperty函数

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PnMngD7i-1632792995504)(https://raw.githubusercontent.com/tangguanlin2006/image/main/img/20210927195441.png)]

3.BeanShell取样器

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pMsszvAf-1632792995506)(https://raw.githubusercontent.com/tangguanlin2006/image/main/img/20210927195447.png)]

4.property函数

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FSquSSEY-1632792995508)(https://raw.githubusercontent.com/tangguanlin2006/image/main/img/20210927195453.png)]

5.使用全局变量

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-N4puZwAO-1632792995509)(https://raw.githubusercontent.com/tangguanlin2006/image/main/img/20210927195459.png)]

6.运行结果:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zizhXFzt-1632792995510)(https://raw.githubusercontent.com/tangguanlin2006/image/main/img/20210927195505.png)]

11.生成测试报告

11.1、生成测试报告

利用已有.jtl文件生成报告,如果已经有经过测试生成的.jtl文件,可以利用该文件直接生成HTML可视化测试报告。

进入jmeter的bin目录下,输入如下命令:

jmeter -g test.jtl -o /path

# -g:后跟test.jtl文件所在的路径

# -o:后跟生成的HTML文件存放的路径

jmeter -g …\run_result\业务办理_建聪.jtl -o …\report\ywbl_jiancong

? (.jtl文件路径) (测试报告存放目录)

如果是在Windows环境命令行运行,必须指定生成的HTML文件存放文件夹,否则会报错;

如果是linux环境,如指定路径下不存在该文件夹,会生成对应的文件夹存放报告文件!

执行完毕后,用浏览器打开生成的文件目录下的index文件,效果展示如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-i7IicWtb-1632792995512)(https://raw.githubusercontent.com/tangguanlin2006/image/main/img/20210927195526.png)]

11.2、图表信息详解

测试报告分为两部分,Dashboard和Charts,下面分开解析。

1、Dashboard(概览仪表盘)

①、Test and Report informations

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XlpAQWM5-1632792995513)(https://raw.githubusercontent.com/tangguanlin2006/image/main/img/20210927195550.png)]

②、APDEX (应用性能指标)

关于APDEX的相关信息,请参考这里:应用性能指标;英文原文,参考这里:Apdex-Wikipedia

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-efqaoYzb-1632792995515)(https://raw.githubusercontent.com/tangguanlin2006/image/main/img/20210927195555.png)]

③、Requests Summary

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ybi8fhgW-1632792995517)(https://raw.githubusercontent.com/tangguanlin2006/image/main/img/20210927195606.png)]

2、Charts(详细信息图表)

PS:由于详细信息图表有点多,这里我挑几个性能测试过程中比较关键的图表解析!

Over Time

①、Response Times Over Time(脚本运行期间的响应时间变化趋势图)

说明:可以根据响应时间和变化和TPS以及模拟的并发数变化,判断性能拐点的范围。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jyt8jsDL-1632792995519)(https://raw.githubusercontent.com/tangguanlin2006/image/main/img/20210927195613.png)]

②、 Response Time Percentiles Over Time (successful responses)

说明:脚本运行期间成功的请求响应时间百分比分布图,可以理解为聚合报告里面不同%的数据,图形化展示的结果。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RBig46XQ-1632792995520)(https://raw.githubusercontent.com/tangguanlin2006/image/main/img/20210927195621.png)]

③、Bytes Throughput Over Time(脚本运行期间的吞吐量变化趋势图)

说明:在容量规划、可用性测试和大文件上传下载场景中,吞吐量是很重要的一个监控和分析指标。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-opHRju4P-1632792995521)(https://raw.githubusercontent.com/tangguanlin2006/image/main/img/20210927195626.png)]

④、 Latencies Over Time(脚本运行期间的响应延时变化趋势图)

说明:在高并发场景或者强业务强数据一致性场景,延时是个很严重的影响因素。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BiMNwbYD-1632792995523)(https://raw.githubusercontent.com/tangguanlin2006/image/main/img/20210927195638.png)]

Throughput

①、Transactions Per Second(每秒事务数)

说明:每秒事务数,即TPS,是性能测试中很重要的一个指标,它是用来衡量系统处理能力的一个重要指标。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gqaSu3R3-1632792995525)(https://raw.githubusercontent.com/tangguanlin2006/image/main/img/20210927195646.png)]

Response Times

①、 Response Time Percentiles(响应时间百分比分布曲线图)

说明:即响应时间在某个范围内的请求在所有请求数中所占的比率,相比于平均响应时间,这个值更适合用来衡量系统的稳定性。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SrsqxwLu-1632792995526)(https://raw.githubusercontent.com/tangguanlin2006/image/main/img/20210927195652.png)]

②、Time Vs Threads(平均响应时间和线程数的对应变化曲线)

说明:可以通过这个对应的变化曲线来作为确定性能拐点的一个参考值。

[外链图片转存中…(img-RBig46XQ-1632792995520)]

③、Bytes Throughput Over Time(脚本运行期间的吞吐量变化趋势图)

说明:在容量规划、可用性测试和大文件上传下载场景中,吞吐量是很重要的一个监控和分析指标。

[外链图片转存中…(img-opHRju4P-1632792995521)]

④、 Latencies Over Time(脚本运行期间的响应延时变化趋势图)

说明:在高并发场景或者强业务强数据一致性场景,延时是个很严重的影响因素。

[外链图片转存中…(img-BiMNwbYD-1632792995523)]

Throughput

①、Transactions Per Second(每秒事务数)

说明:每秒事务数,即TPS,是性能测试中很重要的一个指标,它是用来衡量系统处理能力的一个重要指标。

[外链图片转存中…(img-gqaSu3R3-1632792995525)]

Response Times

①、 Response Time Percentiles(响应时间百分比分布曲线图)

说明:即响应时间在某个范围内的请求在所有请求数中所占的比率,相比于平均响应时间,这个值更适合用来衡量系统的稳定性。

[外链图片转存中…(img-SrsqxwLu-1632792995526)]

②、Time Vs Threads(平均响应时间和线程数的对应变化曲线)

说明:可以通过这个对应的变化曲线来作为确定性能拐点的一个参考值。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1IaSn2o6-1632792995527)(https://raw.githubusercontent.com/tangguanlin2006/image/main/img/20210927195657.png)]

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2021-09-29 10:36:19  更:2021-09-29 10:37:05 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/18 0:24:19-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码