JMeter接口测试实战(二)-多接口串联形成业务闭环

目录

一.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字段调用

知识点-UUIDuuid通用唯一识别码。每次请求都会生成一个新的 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

---后记

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

  • 18
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JMeter接口测试业务闭环是指在接口自动化测试中,通过模拟真实的业务场景,将多个接口请求组合成一个完整的业务流程,从而实现对整个业务流程的测试。下面是实现JMeter接口测试业务闭环的步骤: 1. 首先需要了解业务流程,将需要测试的接口按照业务流程顺序组合成一个完整的业务闭环场景。 2. 在JMeter中创建一个测试计划,并添加线程组和取样器。 3. 在线程组中设置虚拟用户数、循环次数等参数,以模拟真实的用户场景。 4. 在取样器中添加需要测试的接口请求,并设置请求参数、请求头等信息。 5. 使用逻辑控制器控制接口请求的执行顺序,确保业务流程的正确性。 6. 在请求之前或之后添加前置处理器和后置处理器,以模拟真实的业务场景。 7. 添加断言,判断接口请求是否成功,以及返回结果是否符合预期。 8. 添加定时器,控制接口请求的发送时间间隔,以模拟真实的用户场景。 9. 添加配置元件,设置请求期的配置信息,如Cookie、Token等。 10. 添加监听器,收集测试结果,如响应时间、吞吐量、错误率等。 下面是一个JMeter接口测试业务闭环的示例: 假设需要测试一个电商网站的下单流程,包括登录、添加商品到购物车、提交订单等接口。则可以按照以下步骤进行测试: 1. 创建一个测试计划,命名为“电商下单流程测试”。 2. 在测试计划中添加一个线程组,设置虚拟用户数为100,循环次数为10。 3. 在线程组中添加一个HTTP Cookie管理器,用于管理Cookie信息。 4. 在线程组中添加一个HTTP请求默认值,设置请求头信息。 5. 在线程组中添加一个HTTP请求,用于登录电商网站。 6. 在HTTP请求中添加一个正则表达式提取器,用于提取登录成功后返回的Token值。 7. 在线程组中添加一个HTTP请求,用于添加商品到购物车。 8. 在HTTP请求中添加一个HTTP头管理器,用于设置请求头信息。 9. 在HTTP请求中添加一个正则表达式提取器,用于提取添加商品成功后返回的商品ID。 10. 在线程组中添加一个循环控制器,用于循环执行下单流程。 11. 在循环控制器中添加一个HTTP请求,用于提交订单。 12. 在HTTP请求中添加一个HTTP头管理器,用于设置请求头信息。 13. 在HTTP请求中添加一个正则表达式提取器,用于提取提交订单成功后返回的订单ID。 14. 在HTTP请求中添加一个响应断言,判断请求是否成功。 15. 在测试计划中添加一个聚合报告,用于收集测试结果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值