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

本文主要是介绍【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

总结

这篇关于【JMeter接口测试工具】第二节.JMeter基本功能介绍(中)【入门篇】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1040204

相关文章

Deepseek R1模型本地化部署+API接口调用详细教程(释放AI生产力)

《DeepseekR1模型本地化部署+API接口调用详细教程(释放AI生产力)》本文介绍了本地部署DeepSeekR1模型和通过API调用将其集成到VSCode中的过程,作者详细步骤展示了如何下载和... 目录前言一、deepseek R1模型与chatGPT o1系列模型对比二、本地部署步骤1.安装oll

MyBatis-Flex BaseMapper的接口基本用法小结

《MyBatis-FlexBaseMapper的接口基本用法小结》本文主要介绍了MyBatis-FlexBaseMapper的接口基本用法小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具... 目录MyBATis-Flex简单介绍特性基础方法INSERT① insert② insertSelec

Spring排序机制之接口与注解的使用方法

《Spring排序机制之接口与注解的使用方法》本文介绍了Spring中多种排序机制,包括Ordered接口、PriorityOrdered接口、@Order注解和@Priority注解,提供了详细示例... 目录一、Spring 排序的需求场景二、Spring 中的排序机制1、Ordered 接口2、Pri

Idea实现接口的方法上无法添加@Override注解的解决方案

《Idea实现接口的方法上无法添加@Override注解的解决方案》文章介绍了在IDEA中实现接口方法时无法添加@Override注解的问题及其解决方法,主要步骤包括更改项目结构中的Languagel... 目录Idea实现接China编程口的方法上无法添加@javascriptOverride注解错误原因解决方

Java function函数式接口的使用方法与实例

《Javafunction函数式接口的使用方法与实例》:本文主要介绍Javafunction函数式接口的使用方法与实例,函数式接口如一支未完成的诗篇,用Lambda表达式作韵脚,将代码的机械美感... 目录引言-当代码遇见诗性一、函数式接口的生物学解构1.1 函数式接口的基因密码1.2 六大核心接口的形态学

四种Flutter子页面向父组件传递数据的方法介绍

《四种Flutter子页面向父组件传递数据的方法介绍》在Flutter中,如果父组件需要调用子组件的方法,可以通过常用的四种方式实现,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录方法 1:使用 GlobalKey 和 State 调用子组件方法方法 2:通过回调函数(Callb

Python进阶之Excel基本操作介绍

《Python进阶之Excel基本操作介绍》在现实中,很多工作都需要与数据打交道,Excel作为常用的数据处理工具,一直备受人们的青睐,本文主要为大家介绍了一些Python中Excel的基本操作,希望... 目录概述写入使用 xlwt使用 XlsxWriter读取修改概述在现实中,很多工作都需要与数据打交

详解Java如何向http/https接口发出请求

《详解Java如何向http/https接口发出请求》这篇文章主要为大家详细介绍了Java如何实现向http/https接口发出请求,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 用Java发送web请求所用到的包都在java.net下,在具体使用时可以用如下代码,你可以把它封装成一

java脚本使用不同版本jdk的说明介绍

《java脚本使用不同版本jdk的说明介绍》本文介绍了在Java中执行JavaScript脚本的几种方式,包括使用ScriptEngine、Nashorn和GraalVM,ScriptEngine适用... 目录Java脚本使用不同版本jdk的说明1.使用ScriptEngine执行javascript2.

Java后端接口中提取请求头中的Cookie和Token的方法

《Java后端接口中提取请求头中的Cookie和Token的方法》在现代Web开发中,HTTP请求头(Header)是客户端与服务器之间传递信息的重要方式之一,本文将详细介绍如何在Java后端(以Sp... 目录引言1. 背景1.1 什么是 HTTP 请求头?1.2 为什么需要提取请求头?2. 使用 Spr