接口测试大讲堂--(利用JMeter执行接口关联场景用例实现业务闭环--第五讲)

哈喽。大家好,我是思思。通过这一节课的学习,必掌握内容是:

1.实现多接口串联场景用例

2.对多接口场景用例实现业务闭环

3.会使用db验证及脚本验证结果正确性

目录

一.JMeter运行顺序

二.业务场景(wms删除入库单场景化(图形化验证码--登录--新建入库--删除入库--验证db字段))

1.case1--图形化验证码接口(/api/captchaImage)

2. case2--登录接口(/api/login)

4.sql查询语句参数化设置

5.case3--wms系统删除入库单接口(/api/wms/receiptOrder/${id_1})

6.查询删除入库单后del_flag状态值为1


这篇主要介绍多接口的一个串流程,包括参数传递、响应报文验证和数据库的验证。

JMeter的单接口实战请见JMeter接口测试实战(一)--简单接口请求-CSDN博客

一.JMeter运行顺序

1.测试计划-->线程组-->配置元件-->前置处理器-->定时器-_>取样器-->后置处理器-->断言-->监听器

        其中线程组与线程组之间是并行运行,但是勾选独立运行每个线程组时,就会变成串行运行,即一个线程组运行结束后会启动下一个线程组。

二.业务场景(wms删除入库单场景化(图形化验证码--登录--新建入库--删除入库--验证db字段))

业务背景:从登录开始新建一个入库接口并删除入库单,形成一个业务闭环。此场景中要实现对入库单编号删除要实现4个接口的串联,并对数据库入库数据做出校验。

1.case1--图形化验证码接口(/api/captchaImage)

主要功能是生成一个唯一的uuid供登录接口请求报文中的uuid字段调用

知识点-UUID:uuid通用唯一识别码。每次请求都会生成一个新的 UUID,从而保证请求的唯一标识不同。UUID是唯一的,系统可以轻松地使用它们来跟踪和管理这些对象,避免出现冲突和重复。

接口1涉及流程:测试计划---->添加线程(用户 )-线程组---->添加取样器(HTTP请求)---->添加断言(响应断言和JSON断言)---->添加监听器查看结果树

知识点-响应断言和JSON 断言

常见的断言类型包括响应断言和JSON 断言

a.响应断言

  • 响应文本断言,判断响应报文里是否包含了对应字段内容。

  • 响应码断言,判断响应码状态是否符合预期

b.JSON 断言

JSON断言有判断单个节点断言和判断多个变量的断言。

JSON Path 指的是 JSON 路径表达式。表达式由一系列的属性名和数组索引组成:根节点用$表示;object用.表示;Array用[]表示。

  • 判断单个变量断言

  • 判断多个变量的断言

JMeter本身提供JSON Assertion断言,但当我们想要对返回的JSON list中的多个字段进行断言的时候,就需要通过Json List Element Assertion插件进行多字段断言。将下面4个插件放入路径\apache-jmeter-5.6.2\lib\ext下。

c.断言结果

运行用例。如果响应值符合断言,则什么都不会发生。否则,在查看结果树中会看到报错信息。

断言正确

断言报错

2. case2--登录接口(/api/login)

从上个接口captchaImage的response中获取uuid信息传入到登录接口request的uuid

  • 在上一个接口captchaImage添加后置处理器


#JSON提取器注释
名称:可以随意设置,甚至为空;
注释:可随意设置,可以为空;
Apply to:应用范围。选默认的main sample only就行
Names of created variables:变量名(多个变量名用;隔开),后面使用${Variable names}引用。必传
JSON Path expression:json提取表达式(多个表达式用;隔开),变量值绝对路径。必传
Match No.(0 for Random):提取第几个值(0:随机,默认;-1所有;1第一个值)。非必传
Compute concatenation var(suffix_ALL):如果发现许多结果,插件将使用“,”分隔符将它们连接起来,并将其存储在名为_ALL的var中
Default Values:缺省值,匹配不到值的时候取该值,可写error;多个值用分号分割。非必传

  • 变量uuid传入至登录接口的request中

3. case3--wms系统入库接口(/api/wms/receiptOrder/add-or-update)

入库接口的功能是创建一个新的入库单,此接口需要依赖上个接口登录接口生成的token信息

入库接口依赖上个登录接口的response返回的token字段传入到入库接口add-or-update请求头Authorization的字段中

  • 设置后置处理器-JSON提取

  • 在此接口中设置HTTP信息头处理器

  • 入库接口add-or-update请求接口后对request报文参数化

首先将request报文字段OrderNo参数化,可通过两种方式。

i.通过BeanShell预处理程序

选择request中要替换的参数

ii.设置用户定义的变量

4.sql查询语句参数化设置

验证调用新增入库接口,是否有落入wms_receipt_order表中

  • 验证db和报文的一致性

5.case3--wms系统删除入库单接口(/api/wms/receiptOrder/${id_1})

删除入库单接口,为了处理接口测试时候产生的一些垃圾数据

注意点:参数写${id_1},因为默认的第一行是0,代表的是字段属性。1代表第二行数据

将select查询出来的第一个变量值改为id

6.查询删除入库单后del_flag状态值为1

删除后的入库单,会将数据库中的del_flag字段更新为1

------------------------------------------------------------------------------------------------------------------------

后记

欢迎交流软件测试的一切,且本场景实践中,需要的插件、用例、视频。可以contact wechat:sisiceshi

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值