首页 > 编程知识 正文

jmeter断言(jmeter响应断言使用)

时间:2023-05-06 12:02:22 阅读:95531 作者:4358

接口测试大部分使用接口的响应值作为接口验证的依据,但在与数据库交互的接口中,这一结果不足以判断接口的正确性。 本文以jmeter为接口测试的工具实现接口的数据库断言

一.总体思路概述

使用jmeter启动接口请求

使用json提取器获取接口响应结果的重要内容

使用jmeter启动数据库操作并获取数据库的值

使用BeanShell断言实现接口响应内容和数据库内容的比较

jmeter启动接口请求

以搜索界面为例,业务需求是用关键字搜索商品。 接口信息如下所示。

接口信息:

输入参数:

返回结果:

基于以上接口信息,向jmeter添加http请求。 请参见下图

3 .为接口请求添加json提取器

添加json提取器是为了获取接口响应的所有name,并将其与数据库中发现的name值进行一对一比较

3.1添加JSON提取器

选择搜索请求---添加---后处理器--json提取器

3.2安装JSON提取器

各参数的说明:

1.namesofcreatedvariables :表示包含JSON提取器从响应中获取的内容的变量。 建议随意定义为不发生冲突即可,命名有意义的名称,不要写abc无意义的名称

2. JSON Path Expressions:json提取的表达式表示必须根据此规则匹配响应中的内容,图中的表达式表示响应中的所有name字段的值

3.matchno.(0forrandom ) :将匹配结果存储在变量中的策略。 默认情况下什么都不写的话为0

0是随机存储的变量,例如,如果与多个name字段的值匹配,则Names of created variables指定的变量将随机分配一个值

2 -1表示使用数字后缀来识别每个匹配的结果。 例如,如果与多个name字段的值相匹配,则最终每个结果都对应于一个变量。 变量的名称为名称1、名称2、名称3和名称4 .

3 X表示将第几个匹配值分配给在Names of created variables中指定的变量。 例如,如果写2,则会为name指定第二个匹配的name字段的值

4. Compute concatenation var :表示如果与多个值匹配,则可以将多个值存储在一个变量中。 将_ALL赋给变量名称为“创建变量”的变量名称。 例如,在当前图中,name_ALL表示存储的多个值将被分割

5.default values :如果JSON表达式与任何值都不匹配,则表示变量的默认值是什么

4 .配置数据库启动数据库请求

以mysql数据库为例

4.1配置数据库连接组件

配置数据库所需的jar包,然后下载mysql-connector-j

ava.5.1.46.jar,可以直接在maven上进行下载,下载地址https://mvnrepository.com/artifact/mysql/mysql-connector-java/5.1.46

下载好以后放入jmeter目录下的lib/ext目录下,然后重启jmeter

配置jdbc元件,选中线程组--添加--配置元件--JDBC Connection Configuration

核心字段含义

Variable Name for created pool:表示该连接配置的名称,这个名称将会在后续的jdbc请求中使用

Dabase URL:表示数据库实例的连接地址

JDBC Driver class:表示连接驱动类

Username:表示连接数据库实例的用户名

Password:表示连接数据库实例的密码

4.2 数据库请求,请注意该请求需要放在查询接口请求之前

选中线程组--添加--取样器--JDBC Request

核心字段含义

Variable Name of Pool declared in JDBC Connect Configuration:表示要连接的数据库配置名称,与我们上面配置的一致

Query:填写sql语句,这里我们是查询商品表,通过name字段模糊查询,并且只返回了name字段

Result variable name:表示从数据库中查到的内容存到哪个变量里,这里写变量名称

五. 脚本调试

5.1 添加调试取样器,用来查看各个变量的值是否正确

选中线程组--添加--取样器--调试取样器

5.2 添加察看结果树,用来查看请求结果

选中线程组--添加--监听器--察看结果树

5.3 执行测试,查看各个变量的值是否正确

dbname=[{name=天喔 西梅454g}, {name=天喔 盐津桃肉170g/瓶}, {name=天喔很牛牛肉粒(沙爹)150g/袋}, {name=天喔 Q猪香辣小香肠100g/袋}] 数组中存着键值对

name_ALL=天喔 西梅454g,天喔 盐津桃肉170g/瓶,天喔很牛牛肉粒(沙爹)150g/袋,天喔 Q猪香辣小香肠100g/袋 逗号分隔的字符串

六. 使用Beanshell 断言完成接口结果和数据库结果的校验

选中搜索请求--添加--断言--BeanShell 断言

执行整个脚本,执行通过,脚本全貌如下

作  者:gddyc老师

出  处:微信公众号:自动化软件测试平台

版权说明:欢迎转载,但必须注明出处,并在文章页面明显位置给出文章链接

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。