以场景驱动设计接口测试用例的方法,想必大家已经非常熟悉了。场景的完成,不单单是一个个独立API的串联,还涉及到参数提取、断言、调用等一系列操作。今天我们将通过一个实际的测试场景,分享如何在MeterSphere中进行场景化的接口测试。

测试目标

人们常说“Eating your own dog food”(吃自己的狗粮),也就是自己做出的产品,要自己首先来使用,这样才能真真正正地从一个用户的角度来发现问题。今天,我们就采取用MeterSphere测试MeterSphere的方式,使用MeterSphere的接口测试功能,来测试MeterSphere项目管理相关接口是否正常。

测试场景

■ 通过查询项目列表接口,获取现有的项目列表,并判断当前项目列表中没有要创建的接口测试项目;

■ 通过创建项目接口,创建一个名称和描述都为“接口测试项目”的项目,并从返回结果中获取该项目的ID;

■ 通过查询指定项目接口,传入上一步中获取的“接口测试项目”的 ID,并且判断返回中的项目ID、名称及描述是否符合预期;

■ 通过删除项目接口,传入“接口测试项目”的ID删除该项目,并通过返回信息判断是否删除成功;

■ 通过查询指定项目接口,传入“接口测试项目”的ID再次查询该项目,通过返回信息再次确认该项目是否删除成功。

接口分析

MeterSphere的接口文档位于所部署环境中的/swagger-ui 路径中,在该文档中的project-controller分组中可以找到我们所需的各个接口。

对应上述测试场景,在这里我们需要用到以下接口:

GET /project/listAll
POST /project/add
GET /project/get/{id}
GET /project/delete/{projectId}
依次查看每个接口的定义,可以发现各个接口的返回都是类似如下形式。因此我们可以通过JSONPath(www.jsonpath.com)的方式来获取特定的返回值,判断其是否符合预期,或者提取为变量供后续请求使用。

{
"success": true,
"message": "Message",
"data": {
"key1": "value1",
"key2": "value2"
}}

创建接口测试

接下来我们就可以在MeterSphere创建一个接口测试,来模拟测试上述测试场景。在本次测试中,我们通过调用登录接口并共享Cookie的方式来处理接口的认证问题。详细的步骤如下:

1. 创建测试并配置场景

在新创建的接口测试场景配置中,新建一个环境配置并填入被测系统的基本信息,同时在场景配置中选择新建的环境,并勾选“共享Cookie”选项。

2. 添加“登录MeterSphere”的HTTP请求

使用“POST /signin”接口,根据接口定义选择POST方法,并通过JSON的格式传入用户名密码。同时添加断言,判断登录请求是否成功。

3. 添加“获取项目列表”的HTTP请求

使用“GET /project/listAll”接口,在这个接口请求里,依次添加两个断言:①响应内容中的success字段值为true;②响应内容中不包含我们要新建的项目名称“接口测试项目”。断言编辑完成后,点击“Add”按钮进行添加。

4. 添加“创建项目”的HTTP请求

使用“POST /project/create”接口,根据接口定义通过JSON格式传入项目名称及描述信息,在这个请求中我们添加一个通用的“响应内容中的success字段值为true”的断言,并通过JSONPath格式的提取功能,从返回数据中获取新创建的项目的ID存入projectID变量中,后续接口可以通过${projectID}格式引用该变量。

5. 添加“查询新创建的项目”的HTTP请求

使用“GET /project/get/{id}”接口,在该接口中我们通过在请求URL中引用${projectId}变量的方式传入新创建的项目的ID。同时,依次添加4个断言:①响应内容中的success字段值为 true;②响应内容中的项目名称与创建时填写的信息保持一致;③响应内容中的项目描述与创建时填写的信息保持一致;④响应内容中的项目ID与之前获取的保持一致。

6. 添加“删除新创建的项目”的HTTP请求

使用“GET /project/delete/{projectId}”接口,在该接口中,我们通过在请求URL中引用${projectId}变量的方式传入新创建的项目的ID。同时,添加一个通用的“响应内容中的success字段值为true”的断言。

7. 添加“查询已删除的项目”的HTTP请求

使用“GET /project/get/{id}”接口,在该接口中我们通过在请求URL中引用${projectId}变量的方式传入新创建项目的ID。由于该项目已经删除,根据接口定义其返回内容中的data字段应该为空,因而在这个接口中我们依次添加2个断言:①响应内容中的success字段值为true;②响应内容中data字段为空。

运行接口测试

至此,我们已经通过上面创建的一系列接口请求,实现了我们需要去验证的测试场景。接下来点击“保存并执行”按钮,系统执行完所有测试场景后将会自动跳转到测试报告页面。在该页面中,我们可以看到所有接口执行结果的概览,同时也可以在左侧的接口列表中选择某个接口查看其详细的请求及响应内容。

关于 MeterSphere

MeterSphere是一站式的开源企业级持续测试平台,致力于通过开源技术创新加速高质量的软件交付,推动中国测试行业整体效率的提升。

MeterSphere项目遵循GPL v2.0开源许可协议,涵盖测试跟踪、接口测试、性能测试、 团队协作等功能,兼容JMeter等开源标准,有效助力开发和测试团队充分利用云弹性进行高度可扩展的自动化测试。

教程丨使用MeterSphere进行场景化的接口测试相关推荐

  1. 听见丨哈罗单车完成10亿元人民币D2轮融资,复星领投 场景化AI应用服务公司百可录完成A轮融资

    Garmin发布vivofit 4系列智能手环提供一年电池寿命 据cnBeta报道,Garmin已经在旗下vivofit系列产品当中推出了最新一代可穿戴设备- vivofit 4 系列智能手环,它有一 ...

  2. 【Vue学习笔记】尚硅谷Vue2.0+Vue3.0全套教程丨vue.js从入门到精通

    尚硅谷Vue2.0+Vue3.0全套教程丨vue.js从入门到精通 1.Vue核心部分 1.1 Vue简介 1.1.1 Vue是什么? Vue是一套用于构建用户界面的渐进式JavaScript框架. ...

  3. python代码入门教程_Python入门教程丨1300多行代码,让你轻松掌握基础知识点

    欢迎关注小编,除了分享技术文章之外还有很多福利,私信学习资料可以领取包括不限于Python实战演练.PDF电子文档.面试集锦.学习资料等. 前言 本文适合有经验的程序员尽快进入Python世界.特别地 ...

  4. 十大视频场景化应用工具+五大视频领域冠军、顶会算法重磅开源!

    >> 导读 随着短视频的快速发展以及安全管理的需求不断增多,视频领域的相关技术应用包括视频智能标签.智能教练.智能剪辑.智能安全管理.文本视频检索.视频精彩片段提取.视频智能封面正逐渐成为 ...

  5. 十大视频场景化应用工具+五大视频领域冠军/顶会算法开源

    导读 随着短视频的快速发展以及安全管理的需求不断增多,视频领域的相关技术应用包括视频智能标签.智能教练.智能剪辑.智能安全管理.文本视频检索.视频精彩片段提取.视频智能封面正逐渐成为人们生活中的重要部 ...

  6. 怎样使一排文字中间有间隔_教程丨如何设置间距

    原标题:教程丨如何设置间距 给一篇文章设置得当的间距,能让读者清爽的浏览文句,文章整体也会很美观:反之如果文章设置的间距太宽或太窄,文章结构就会变得松散或紧凑,这样的情况下,阅读视觉上就不能专注,更别 ...

  7. 切割图形_模型教程丨切割机使用——结合实例

    点击这里查看上一期教程哦~ 半平米工坊:模型教程丨切割机操作手册​zhuanlan.zhihu.com 不知道大家看了上期的切割教程有没有去实际操作呢~有没有发现一些切割时不知道该如何处理的小问题~ ...

  8. 【UE5教程】影棚拍摄于虚拟场景合成制作流程学习

    用虚幻引擎预算虚拟生产5 你会学到什么 使用虚幻引擎5进行虚拟生产 使用虚幻引擎5的独立虚拟制作 用虚幻引擎预算虚拟生产5 用虚幻引擎5进行穷人虚拟生产 用虚幻引擎5进行自制虚拟制作 虚幻引擎5独立虚 ...

  9. 麒麟信安面向场景化创新,赋能openEuler商业验证

    12月24日,由中国电子技术标准化研究院.中国软件行业协会.绿色计算产业联盟主办,华为.飞腾.麒麟信安等操作系统厂商协办的操作系统产业峰会在北京成功举行.湖南麒麟信安科技股份有限公司是openEule ...

最新文章

  1. 海康威视人证对比设备SDK-C#
  2. 数据库类型少_全栈之数据库系列 - 数据库的设计、架构和使用规范
  3. 色环电感外部磁场泄漏
  4. 04需求工程软件建模与分析阅读笔记之四
  5. opencv-api filter2D
  6. How Touch Screen Monitors Work
  7. 汇编语言 王爽 第四版 第二章 检测点2.1
  8. mc小刘yeah粉丝网
  9. 【期末大作业】简单的学生网页作业源码 基于html css javascript南京大学网页校园教育网站html模板(3页)
  10. 键盘按键名称及HID扫描码及VK虚拟键码对照表
  11. 客厅中式装修风格 温馨舒适的生活格调
  12. 如何学习编程、一门编程语言怎么算入门、快速掌握一门编程语言
  13. 优化ESD防护的PCB设计准则
  14. 搭建属于自己的基于ChatGPT的微信聊天机器人(方法)
  15. 图嵌入综述 (arxiv 1709.07604) 译文 4.3 ~ 4.7
  16. 三菱PLC SER DESR 数据检索指令
  17. Mac电脑使用:删除Mac已保存的WiFi连接
  18. 基于PLC的自动售货机设计
  19. 关于x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.3, random_state=0)
  20. Linux解压rar压缩文件,rar unrar

热门文章

  1. 获取微信昵称、头像等信息方法
  2. SAP BW介绍(zt)
  3. JS导出html的table表格
  4. 易飞ERP客户问题集合之一
  5. 写一篇产品体验报告需从哪些方面入手?
  6. HDOJ中的a+b问题汇总
  7. K线买入信号有哪些?
  8. 【转载】不是技术也能看懂云计算,大数据,人工智能
  9. 【QQ空间】免费漂浮物代码
  10. Windows 使用键盘移动窗口