【JMeter接口测试工具】第二节.JMeter基本功能介绍(中)【入门篇】

文章目录

  • 前言
  • 四、信息头管理器
  • 五、Jmeter参数化
  •       5.1 用户自定义的变量
  •       5.2 csv批量添加
  •       5.3 用户参数
  •       5.4 随机数函数
  •       5.5 计数器函数
  •       5.6 时间函数
  • 六、Jmeter断言
  •       6.0 断言介绍
  •       6.1 响应断言
  •       6.2 大小断言
  •       6.3 持续时间断言
  •       6.4 Json断言
  • 七、Jmeter直连数据库
  • 总结


前言


四、信息头管理器

作用:

新增修改实现时提交的数据是 JSON 格式的,需声明提交的数据的内容类型。
即:只要提交数据是JSON格式,就需要创建信息头管理器。

创建步骤:

测试计划--添加配置元件--信息头管理器

图示说明:

注意:只要前面有🔧一样标志的一般都放到最上面


举实例说明:

我们通过测试学院-新增接口,来使用信息头管理器来提交的数据是 JSON 格式的http请求。

(1)创建信息头管理器,输入名称和值(固定的)。

名称:Content-type         值:application/json;charset=utf-8


(2)在http请求中提交JSON格式的数据。

(3)查看结果树


五、Jmeter参数化

(1)定义:使用不同的测试数据,调用相同的测试方法进行测试

(2)本质:实现测试数据与测试方法的分离

(3)实现方式:

  • 用户定义的变量——全局变量
  • 用户参数——为每个用户分配不同的参数值
  • CSV数据文件设置——文件方式参数化
  • 函数——随机数据
  • 数据库

5.1 用户自定义的变量

(1)使用场景定义全局变量

(2)使用步骤

  1. 添加线程组
  2. 添加配置原件--添加用户定义的变量。格式:变量名 - 变量值
  3. 添加HTTP请求,引用定义的变量名。格式:${变量名}
  4. 查看结果树

(3)图示说明:


(4)举例说明:

定义一个用户自定义一个HTTP请求中路径的变量,并且在HTTP请求中引用自定义的代表路径的变量。

图示步骤说明:

(1)定义HTTP请求中路径的变量。

(2)在http请求中引用该路径变量

(3)查看结果树:


5.2 csv批量添加

CSV 逗号分隔值,是一种简洁且常见的数据存储格式
实现步骤:
1、使用 CSV 文件存储测试数据。
2、编写被复用的学院新增脚本模板
注意2: 编码集使用 UTF-8 无 BOM 格式
3、编辑设置csv文件属性
注意:把线程组中的循环次数设置为永远。(方便知道文件中有多少条数据,不用自己数)

实例说明:

使用csv文件进行存储测试数据,然后设置csv数据文件,最后以${变量名}的方式传入http请求当中,将线程组循环次数设置为永远,最后修改csv文件属性。

(1)使用 CSV 文件存储测试数据:

(注意需要用英文逗号分隔开变量名)


(2)创建csv数据文件格式,并且修改其属性。

1.创建csv数据文件。

2.修改其属性参数。

3.http请求中调用变量。

4.查看结果树


5.3 用户参数

实现步骤:
1、编写被复用的学院新增脚本模板
2、使用 用户参数存储测试数据
3、将数据导入脚本模板
4、设置执行次数

实例说明:

学院新增脚本模板设置用户参数。
步骤1:创建用户参数模块

步骤2:设置用户参数信息。

注意:

数据设计规则:

第一列声明每条数据的字段名称,第二列以及以后,每一列对应一条数据。


步骤3:将数据导入http脚本模板(以${变量名}方式)


步骤4:设置执行次数


5.4 随机数函数

函数使用步骤:

1.打开函数助手

2.选择所需函数

3.为函数传参

4.生成并复制调用格式

5.函数运行结果预览

图示说明:


随机数函数使用:

__Random 随机数函数
参数1:取值范围最小值(包含)
参数2:取值范围最大值(包含)

举实例说明:

放到http请求名称后面用于设计随机数排序http请求。

(1)设置函数配置:


(2)添加在请求后面:


5.5 计数器函数

计数器函数使用:

__counter计数器函数

TRUE(每个用户都有自己的计数器)

FALSE(所有用户共用一个计数器)

举实例说明:

(1)TRUE(每个用户都有自己的计数器)

(2)FALSE(所有用户共用一个计数器)


5.6 时间函数

时间函数使用:

__time 时间函数
获取当前时间的函数
无参: 获取的是距离 1970/01/01 00:00:00 的毫秒值
参数1: yyyyMM_dd HH:mm:ss 格式化成 年\月_日 时:分:秒 格式

举实例说明:

(1)函数设置配置:

(2)函数设置配置:


六、Jmeter断言

6.0 断言介绍

(1)断言定义 让程序代替人工判断响应结果是否符合预期
(2)分类
  • 响应断言 = 断言状态码和响应体
  • 大小断言 = 判断响应内容的字节长度
  • 断言持续时间 = 判断响应时间

(3)断言步骤:
  • 1、按照之前的实现编写测试脚本
  • 2、为被判断的取样器添加断言组件
  • 3、直接运行查看结果
  • 断言通过: 无提示
  • 断言失败: 给出错误

6.1 响应断言

响应断言 = 断言状态码和响应体


图示说明:

相关配置解析:

响应文本:来自服务器的响应文本,即主体
响应代码:响应的状态码,例如:200
响应信息:响应的信息,例如:OK
响应头:响应头信息
请求头:请求头信息
URL样本:请求URL
文档(文本):响应的整个文档
忽略状态:忽略返回的响应状态码
包括:文本包含指定的正则表达式
匹配:整个文本匹配指定的正则表达式
相等:整个返回结果的文本等于指定的字符串(区分大小写)
字符串:返回结果的文本包含指定的字符串(区分大小写)
否:取反
或者:如果存在多个测试模式,勾选代表逻辑或,不勾选代表逻辑与
测试模式:即填写你指定的结果(可填写多个)


举实例说明:

判断http请求中的状态码是否为200.


6.2 大小断言

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


图示说明:


6.3 持续时间断言

(1)作用:

检查HTTP请求的响应时间是否超出要求范围

(2)使用步骤:

添加线程组->添加HTTP请求->添加断言持续时间设置持续时间->添加查看结果树.


图示说明:


6.4 Json断言

(1)使用场景:

HTTP请求的响应结果为JSON格式时,可以使用JSON断言

(2)使用步骤:

添加线程组->添加HTTP请求->添加JSON断言配置参数->添加查看结果树查看断言结果


图示说明:

相关配置解析:

  • Assert JSON Path exists:用于断言的JSON元素的路径(实际结果)
  • Additionally assert value:如果您想要用某个值生成断言,请选择复选框
  • Match as regular expression:使用正则表达式断言
  • Expected Value: 期望值(期望结果)
  • Expect null:如果希望为空,请选择复选框
  • Invert assertion (will fail if above conditionsmet):反转断言(如果满足以上条件则失败)

七、Jmeter直连数据库

(1)直连数据库的作用:

  • 用作请求的参数化。例如:登录时需要的用户名可以从数据库中查询获取
  • 用作结果的断言。例如:添加购物车下单时,检查接口返回的订单号,是否与数据库中生成的订单号一致
  • 清理垃圾数据。例如:添加商品(商品名/编号等不能重复),再执行该脚本不能成功,需要在下次执行前删除该商品数据
  • 准备测试数据。例如:通过数据库来准备大量的性能测试数据

(2)直连数据库的步骤:

步骤一.添加Mysql驱动jar包


步骤二.配置数据库连接信息

添加步骤:测试计划->线程组->配置元件->JDBC Connection Configuration


步骤三.添加JDBC请求

步骤方法:

测试计划->线程组->取样器->JDBC Request

总结

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/24204.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Python机器学习】主成分分析(PCA)

主成分分析(PCA)是一种旋转数据集的方法,旋转后的数特征在统计上不相关。在做完这种旋转之后,通常是根据新特征对解释数据的重要性来选择它的一个子集。 举例: import mglearn.plots import matplotlib.pyplot as pl…

python tqdm怎么安装

tqdm是一个显示循环的进度条的库。taqadum, تقدّم)在阿拉伯语中的意思是进展。tqdm可以在长循环中添加一个进度提示信息,用户只需要封装任意的迭代器 tqdm(iterator),是一个快速、扩展性强的进度条工具库。 tqdm库的安装 在CMD窗口下输…

利用梯度提升树分类法实现乳腺癌数据集分类

目录 1. 作者介绍2. 梯度提升树算法2.1 Boosting 算法2.2 Boosting Tree (提升树)2.3 梯度提升树(Gradient Boosting Tree) 3. 利用梯度提升树分类法实现乳腺癌数据集分类实验3.1 乳腺癌数据集介绍3.2 实验过程3.3 实验结果3.4 完…

【Microelectronic Systems】期末速通

PART1 嵌入式系统概述与玩转mbed 1 嵌入式系统,微控制器,与ARM 1.1什么是嵌入式系统? 微处理器不仅仅存在于通用计算机中,也可以安置在一些不需要计算的设备内部,比如洗衣机,摄像机。微处理器常常可以控制…

​【JS重点知识04】JS执行机制(重点面试题)

学前案例: console.log(111); setTimeout(function () {console.log(222); }, 1000) console.log(333); //输出结果:1111 333 222 console.log(111); setTimeout(function () {console.log(222); }, 0) console.log(333); //输出结果:111 33…

Django 里的表格内容做修改

当Django里表格内容需要做修改&#xff0c;可以这么操作。 先看效果图 修改后的表格 1. 先得在 asset_list.html 里修改。你们的html有可能跟我不一样 <table border"1px"><thead><tr><th>ID</th><th>标题</th><th…

AVL树【C++实现】

文章目录 AVL树的概念AVL树节点的定义AVL树的插入AVL树的旋转新节点插入较高右子树的右侧---右右&#xff1a;左单旋新节点插入较高左子树的左侧---左左&#xff1a;右单旋新节点插入较高左子树的右侧---左右&#xff1a;先左单旋再右单旋新节点插入较高右子树的左侧---右左&am…

【C++课程学习】:C++入门(函数重载)

&#x1f381;个人主页&#xff1a;我们的五年 &#x1f50d;系列专栏&#xff1a;C课程学习 &#x1f389;欢迎大家点赞&#x1f44d;评论&#x1f4dd;收藏⭐文章 目录 &#x1f308;函数重载&#xff1a; &#x1f349;1.参数个数不同&#xff1a; &#x1f349;2.参数…

ceph对象储存的使用

radosgw-admin user create --uid“user1” --display-name“user1” #创建用户 sudo apt install s3cmd cephadminceph-mgr01:~/ceph-cluster/s3$ s3cmd --configure Enter new values or accept defaults in brackets with Enter. Refer to user manual for detailed desc…

Visual C++ Redistributable下载

安装程序的时候提示丢失mfc140u.dll 如下图,查了资料说可以下载Visual C Redistributable来进行处理 下载Visual C Redistributable 1.打开网站 https://www.microsoft.com/zh-cn/download/details.aspx?id48145&751be11f-ede8-5a0c-058c-2ee190a24fa6True) 2.点击下载 …

Java面试题:Redis持久化问题

Redis持久化问题 RDB (Redis Database Backup File) Redis数据快照 将内存中的所有数据都记录到磁盘中做快照 当Redis实例故障重启时,从磁盘读取快照文件恢复数据 使用 save/bgsave命令进行手动快照 save使用主进程执行RDB,对所有命令都进行阻塞 bgsave使用子进程执行R…

创新案例 | AI数据驱动下的全域数字化转型的五大关键洞见

近年来通过全域数字化转型在竞争激烈的市场中脱颖而出。传统零食行业面临市场竞争加剧和消费者需求多样化的挑战&#xff0c;如何利用数据驱动和AI技术&#xff0c;能更好地实现会员运营效率和用户满意度的显著提升呢&#xff1f;本文将探讨全域数字化转型的五大关键洞见&#…

【C++】STL中List的基本功能的模拟实现

前言&#xff1a;在前面学习了STL中list的使用方法&#xff0c;现在我们就进一步的讲解List的一些基本功能的模拟实现&#xff0c;这一讲博主认为是最近比较难的一个地方&#xff0c;各位一起加油。 &#x1f496; 博主CSDN主页:卫卫卫的个人主页 &#x1f49e; &#x1f449; …

Excel 交叉表的格转成列,行转成格

Excel里交叉表的左表头是卡车号&#xff0c;上表头是工作&#xff0c;交叉格是工作编号。 ABCD1Truck NumberJob1Job2Job3271592859285928372395859282971473297159282971 要求&#xff1a;将交叉格转为列&#xff0c;左表头转为格。 ABC1297139585928272727137371473715726…

深度学习的实用性探究:虚幻还是现实?

深度学习的实用性探究&#xff1a;虚幻还是现实&#xff1f; 深度学习作为人工智能领域的一个热点&#xff0c;已经在学术和工业界引起了广泛的关注。尽管深度学习技术显示出惊人的性能和潜力&#xff0c;但有时它们给人的感觉是“虚”的&#xff0c;或许是因为它们的抽象性和…

微服务框架下,因发送端与消费端的vhost不一致,导致rabbitmq出现严重的消息堆积

一、背景 在生产环境下&#xff0c;rabbitmq机器出现磁盘空间不足的报警&#xff0c;发现是某个队列的消息只有生产&#xff0c;迟迟没有消费。 可以得到的信息是&#xff1a; 队列queue是data_center_file_change_queue队列绑定的交换机是resourceChangeExchange&#xff0c…

PLC通过Profinet转Modbus网关与流量计通讯案例

1、案例背景 在工业自动化系统中&#xff0c;PLC(可编程逻辑控制器)与流量计之间的通信是保证以后设备生产数据准确传输和实现控制功能的关键。但是&#xff0c;由于PLC和流量计可能使用不同的通信协议(如Profinet和Modbus)&#xff0c;因此需要一种转换机制来实现它们之间的通…

uniapp uni-popup内容被隐藏问题

今天开发新需求的时候发现uni-popup 过一会就被隐藏掉只留下遮罩(css被更改了)&#xff0c;作者进行了如下调试。 1.讲uni-popup放入其他节点内 失败&#xff01; 2.在生成dom后在打开 失败&#xff01; 3.uni-popup将该节点在包裹一层 然后将统计设置样式&#xff0c;v-if v-s…

算法题--华为od机试考试(围棋的气、用连续自然数之和来表达整数、亲子游戏)

目录 围棋的气 题目描述 输入描述 示例1 输入 输出 解析 答案 用连续自然数之和来表达整数 题目描述 输入描述 输出描述 示例1 输入 输出 说明 示例2 输入 输出 解析 答案 亲子游戏 题目描述 输入描述 输出描述 示例1 输入 输出 说明 示例2 输入…

开发人员必备的常用工具合集-lombok

Project Lombok 是一个 java 库&#xff0c;它会自动插入您的编辑器和构建工具&#xff0c;为您的 Java 增添趣味。 再也不用编写另一个 getter 或 equals 方法了&#xff0c;只需一个注释&#xff0c;您的类就拥有了一个功能齐全的构建器&#xff0c;自动化了您的日志记录变量…