栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Jmeter常规使用

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Jmeter常规使用

jmeter环境搭建:
(1)安装JDK
下载(注意选择操作系统对应的位数32/64)
安装(一键式)
配置环境变量
验证:java -version
(2)安装Jmeter
下载(注意下载的版本与JDK版本的对应关系)
安装(解压缩)
配置环境变量
验证:
双击Jmeter.bat
执行:java -jar ApacheJMeter.jar

修改语言:
临时修改:

永久修改:

jmeter元件及基本作用域:
基本元件:

取样器:发送请求。类似于自动化中的业务测试语句
逻辑控制器:控制元件执行顺序。类似于自动化中的逻辑控制语句
前置处理器:对发送的请求参数进行预处理。类似于自动化中的参数化。
后置处理器:对收到的响应数据进行处理。类似于自动化中获得对应的测试结果。
定时器:等待一定时间。类似于自动化中的sleep语句
测试片段:封装的脚本,供其他脚本调用。类似于自动化中封装的函数
配置元件:测试前的环境及数据配置。类似于自动化中的初始化动作
监听器:查看测试的结果。类似于自动化中的日志和报告。

作用域的原理:
按照jmeter测试计划的树形结构来定义作用域(有点儿类型python的缩进)
作用域的原则:

取样器是jmeter的核心,不作用于其他的组件逻辑控制器,只对子节点起作用对于其他的组件

如果父节点是取样器的话,则只对父节点起作用,如果父节点不是取样器的话,则对父节点下的所有组件起作用

Jmeter三个重要组件:

Jmeter的第一个案例:

启动Jmeter

在“测试计划”下添加“线程组”

在“线程组”下添加“HTTP请求”取样器

填写“HTTP请求”的相关请求数据

在“线程组”下添加“察看结果树”监听器

点击“启动”按钮运行,并查看结果

模拟多人操作

如果有多个线程组时,可以并行或者串行执行
如下图,“独立运行每个线程组”勾选,则所有的线程组按照添加顺序串行执行;
如果未勾选,则并行执行(先后顺序无法保证)

线程组的分类:
普通线程组:用于发送业务请求的线程组(受并行、串行配置的影响)
setup线程组:在所有的线程组之前执行(不受并行、串行配置的影响)
teardown:在所有的线程组之后执行(不受并行、串行配置的影响)

线程组的属性:
线程数:需要模拟的虚拟用户数。
ramp-up time:模拟的虚拟用户数全部启动所需要的时间。

目的:为了模拟性能测试的场景,更接近用户的使用习惯(用户慢慢接入系统)

循环次数:

设置为固定次数n时:脚本运行时发送请求的次数为n设置循环次数为“永远”时,脚本会一直运行下去,不停止

调度器:

一般与循环次数为“永远”的设置配合使用持续时间设置为n时:脚本的请求发送的时间为n秒延迟启动设置为n时:脚本的请求发送在等待n秒后再进行

延迟创建线程直到需要:当启动线程发送请求时,才分配资源;如果暂未启动该线程,则不分配。如果不勾选,在jmeter点击运行时立即分配(使用不多,了解即可,无法观察效果)
线程数m和循环次数n的关系:

如果同时配置,实际发送的HTTP请求数应该为m*n虽然发送请求的次数相同,但是不能相互替换

线程数:代表并发用户数,体现服务器的负载量循环次数:代表执行时间

HTTP请求:

案例1:发送请求时:

协议未填写,则默认为HTTP协议端口未填写,则默认为80端口将GET请求参数放在路径中填写

案例2:发送请求时:
- 协议选择HTTPS,

端口号为443将GET请求参数放在下面的参数列表中进行填写
![在这里插入图片描述](https://img-blog.csdnimg.cn/1432cafe050f42d4aa61408b023d6ca3.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5ZyI5aSW5Lq65ZGY,size_20,color_FFFFFF,t_70,g_se,x_16

案例3:发送POST请求
- 方法选择POST 将参数内容放入到消息体数据中

在发送时参数会添加到请求体中发送

查看结果树:

 ![在这里插入图片描述](https://img-blog.csdnimg.cn/d8e39cd230254d21882441a6f5b799fe.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5ZyI5aSW5Lq65ZGY,size_20,color_FFFFFF,t_70,g_se,x_16) 

jmeter响应中出现乱码时:
修改配置文件jmeter.properties(bin目录下)中的内容:

Jmeter参数化

用户定义的变量:
配置方法1:配置元件中配置

添加路径:测试计划——线程组——配置元件——用户定义的变量参数设置:

参数名:参数值

在HTTP取样器中应用:${参数名}
线程组下配置的用户定义的变量,在线程组下生效,与测试计划中配置的变量冲突时,以线程组下的为准

配置方法2:在测试计划中配置(全局生效)

用户参数:
使用用户定义的变量时,不同的用户在访问时,读取的参数值完全相同,如果希望每个用户在访问时的变量不同,可以使用用户参数。
配置方法:

添加位置:线程组——前置处理器——用户参数添加用户:可以添加多组用户添加参数:针对每个用户添加多个参数

CSV数据文件设置:
使用用户参数时,每个用户可以取不同的数据,但是同一用户的多次循环时读取的数据是不变的。如果想让同一用户多次循环读取时的数据也不同,需要使用CSV数据文件设置的方式。
1、定义CSV数据文件

2、添加线程组
3、配置CSV数据文件设置

添加位置:线程组——配置元件——CSV数据文件设置参数配置:

4、添加HTTP请求
引用参数值时,使用时CSV数据文件中定义的变量名
5、查看结果树

函数:
通过counter函数在生成动态变化的数值

在HTTP取样器中,应用counter函数生成的函数字符串,就可以读取counter函数生成的数值。

如果counter参数设置为:TRUE,则每个用户分别从1开始计算,每循环一次加1如果counter参数设置为:FALSE,则所有用户公用一个计数器,每发送一个请求时,取值加1

Jmeter断言:
通过自动化的手段对请求的响应数据进行自动校验
响应断言:
添加:线程组——HTTP取样器——断言——响应断言(断言一定是在HTTP请求的子节点下)

配置介绍:

类似于assertEqual(response.json,”success“)

assertEqual :校验的方式response.json:要校验的部分success:用来校验的数据

可以在同一个HTTP请求下包含多个响应断言

JSON断言:

断言持续时间:
客户端发送请求,到收到服务器的响应的时间,要求不超过指定的时间。

实际时间,是统计的取样器结果中的load time

Jmeter关联:
当请求之间有依赖关系,一个请求的入参,需要使用到之前请求的响应数据时,需要使用关联。

所有提供关联功能的元件都在后置处理器中:

正则表达式提取器xpath提取器JSON提取器

正则表达式介绍:

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/756657.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号