自动化测试系列(二)|API测试
在上次的自动化测试系列(一)中为大家大体介绍了自动化测试的概念,本文主要针对API测试的概念及API测试在猪齿鱼Choerodon中的实践展开。
API(应用程序编程接口)测试是一种软件测试,可以直接在API级别执行验证。它是集成测试的一部分,它确定API是否满足测试人员对功能,可靠性,性能和安全性的期望。与UI测试不同,API测试是在没有GUI的消息层执行的。
什么是API测试
接口(API)是各种系统功能的基础,一旦接口出现问题可能会引起许多系统功能的问题并且不容易定位。而接口测试则帮助节省了测试成本,促进了测试前移。如图所示,在软件的自动化测试金字塔中,越是底层的测试,越是能够提前发现Bug,而在底层发现的这些Bug造成的影响往往也会更大。所以,我们倡导测试前移,也就是说,在金字塔中层级越低,占的比重应该更大。(但是在实际工作中,单元测试对技术专业性要求更高,很多情况下都是由开发来实施,因此我们可以先选择接口测试来更早地介入测试。)

其次,接口测试相较于传统的功能测试,接口测试能够更好地解决系统测试的复杂度问题,同时避免了UI层可能不稳定的问题,以此来提高测试人员的工作效率。
通过将API测试任务集成至应用流水线,Choerodon平台实现了接口测试的自动化。
怎样使用Choerodon API测试功能?
本次旨在为大家介绍在Choerodon猪齿鱼 V0.24.0商业版中API测试相关的功能。
API测试用例管理
Choerodon中的接口测试模块通过集成Jmeter,实现了API用例的添加、归集、管理与执行的功能。其中支持基于接口URL或Swagger文档快速编排接口测试用例,而导入或添加API测试用例的整个过程免代码编写,技术门槛低,适合敏捷团队中各个角色使用。
- 创建API测试用例
API测试用例主要由4个部分组成,分别是:用例的基础信息、前置步骤、请求脚本以及断言。

- 前置步骤用于为执行用例请求做前置准备,分为:前置请求、生成随机数据、前置等待3种类型。
- 请求脚本中包含了:选择请求方式、维护URL、维护请求头、请求参数或请求体,同时还能从对应的响应结果中提取出变量供后续的用例引用。
- 断言用于对用例执行后的响应结果做判断,判断请求执行后的响应结果是否满足我们的预期。若满足,则称之为:通过断言;不满足,则为:不满足断言;
- 导入API测试用例
导入用例的功能支持将已有的接口及其相关信息批量快速地导入到用例库中,并自动生成符合规范的API测试用例。目前支持Swagger导入用例与cURL导入用例方式。
Swagger导入用例支持输入Swagger URL从Swagger中批量导入API测试文档中已经维护的接口信息。

cURL导入用例支持从浏览器(如chrome、safari)中复制请求为cURL格式,并将其粘贴进图中的命令行中即可。

- 执行API测试用例

执行API测试用例时,需选择API测试用例,并支持选择API测试任务-任务配置页面已经维护好的任务配置,同时支持在此基础上进行修改,或者直接输入各项配置。
执行配置中设置的参数支持用于此次执行的所有用例,避免重复多次的维护相同的用例信息。
API测试任务
API测试任务是某些特定用例的集合(这里可以是产品的某个版本中的API测试用例,或者是其中某个功能块的API测试用例的集合);从API测试用例库中选择用例创建API测试任务成功后,便能以API测试任务为整体来执行该任务。此外,应用流水线中也集成了API测试任务,从而实现了API测试的自动化执行。
- 创建API测试任务
创建API测试任务时,需选择API测试用例,作为API测试任务中执行的对象。支持选择API测试任务-任务配置页面已经维护好的任务配置,同时支持在此基础上进行修改,或者直接输入各项配置作为此任务的通用配置。
任务配置中设置的参数支持用于API测试任务中执行的用例,避免重复多次的维护相同的用例信息。 * API测试任务记录
API测试任务菜单下,可查看所有API测试任务的执行记录,除此之外,还支持查看直接通过执行用例而产生的用例执行的记录。
测试记录中包含了两部分,分别是:执行概览与执行结果详情;
1. 执行概览:其中包括记录的编号、执行结果、执行者、开始时间、执行耗时、用例通过率、执行成功的用例数、执行失败的用例数。
2. 执行结果详情:即每个用例的执行详情查看;其中包括:用例请求的基本信息(请求方式、URL)、用例执行状态、开始时间、执行耗时、断言的通过情况、请求头、请求体、状态码、响应头以及响应体。

- 任务配置管理
任务配置用于为执行用例或执行API测试任务提供基础的配置,其中包括:全局请求头配置、全局请求配置、授权管理配置以及用户变量配置,以此来避免在多个用例中频繁重复地配置这些参数。

- 流水线中集成API测试任务
流水线中API测试任务目前仅支持猪齿鱼商业版能选择。当API测试任务触发后,会立刻执行选中的测试任务。
注意:该类型的CD任务仅Choerodon商业版可用。 * 选择添加此类型任务后,首先需要填写任务名称、配置触发分支;触发分支的匹配方式支持:分支类型匹配、正则匹配、精确匹配以及精确排除。 * 选择API测试任务:此处仅支持选择项目下已有的API测试任务。
总结
持续测试是DevOps流程中重要的一环,而API测试能帮助实现测试前移,从而帮助团队降低测试成本,更快地发现缺陷与问题。
本文由猪齿鱼技术团队原创,转载请注明出处
自动化测试系列(二)|API测试的更多相关文章
- Appium+Java 自动化测试系列二:Maven+Testng
新建Maven项目作为测试项目分为3个步骤: 1.Eclipse安装Testng 插件 2.新建Maven项目 3.引入Testng 一.Eclipse安装Testng插件 TestNG安装可选择在线 ...
- 使用 robotframework 自动化测试系列 二 -----环境搭建
环境搭建是测试人员基础,本质都是不难的,按照流程和步骤一步步做,遇到问题不要担心,解决的问题越多,你理解的也就越多. 1. 安装python环境,python现在有python2 和python3.由 ...
- Selenium3 + Python3自动化测试系列二——selenium元素定位
一.selenium元素定位 Selenium对网页的控制是基于各种前端元素的,在使用过程中,对于元素的定位是基础,只有准去抓取到对应元素 才能进行后续的自动化控制,我在这里将对selenium8种元 ...
- selenium+python自动化测试系列(二):AutoIt工具实现本地文件上传
AutoIt使用简单说明 AutoIt的安装这里就不在啰嗦,可以参考AutoIt安装或者自行搜索解决. 第一步:定位上传文件路径的文本框 这里举例说明,如何定位?如图 这里我们看到上传文件的类型是bu ...
- RF+Appium框架自动化测试系列一之(Mac下Appium环境搭建)万事开头难
消失了3个月,有一段时间没来园子更新博客了,各位看官见谅哈哈,消失是因为刚换了工作环境没外网,好多笔记没能及时的记录分享,以后有时间慢慢补上吧,这段时间主要接触了移动端app的自动化测试,公司为了快速 ...
- 初学者的API测试技巧
API(应用程序编程接口)测试是一种直接在API级别执行验证的软件测试.它是集成测试的一部分,它确认API是否满足测试人员对功能.可靠性.性能和安全性的期望.与UI测试不同,API测试是在没有GUI层 ...
- 自动化测试系列(三)|UI测试
UI 测试是一种测试类型,也称为用户界面测试,通过该测试,我们检查应用程序的界面是否工作正常或是否存在任何妨碍用户行为且不符合书面规格的 BUG.了解用户将如何在用户和网站之间进行交互以执行 UI 测 ...
- 开源API测试工具 Hitchhiker v0.8 - 自动化测试结果统计
Hitchhiker 是一款开源的支持多人协作的 Restful Api 测试工具,支持自动化测试, 数据对比,压力测试,支持脚本定制请求,可以轻松部署到本地,和你的team成员一起协作测试Api. ...
- [CXF REST标准实战系列] 二、Spring4.0 整合 CXF3.0,实现测试接口(转)
转自:[CXF REST标准实战系列] 二.Spring4.0 整合 CXF3.0,实现测试接口 文章Points: 1.介绍RESTful架构风格 2.Spring配置CXF 3.三层初设计,实现W ...
随机推荐
- Noip模拟76 2021.10.14
T1 洛希极限 上来一道大数据结构或者单调队列优化$dp$ 真就没分析出来正解复杂度 正解复杂度$O(q+nm)$,但是据说我的复杂度是假的 考虑一个点转移最优情况是从它上面的一个反$L$形转移过来 ...
- Noip模拟8 2021.6.17
T1 星际旅行 仔细一看,发现像一个欧拉路(简称一笔画). 满足"可以一笔画"的条件是: 1.所有点都有偶数条连边; 2.有偶数个点连奇数条边; 满足以上两个条件的任意一个即可一笔 ...
- 【行人惯性导航】关于行人导航中IMU位姿推导的知识点及相关代码
IMU姿态惯性推导 最近从事行人惯性导航的研究,本人也是一个小白,其中看了很多文献,有很多个人思考很费时间的地方,撰写此随笔的目的不仅是给自己做一个笔记,也是给各位有需要的仁兄一点个人理解. 本文只关 ...
- VirtualBox问题解决合集 - [drm:vmw_host_log [vmwgfx]] *ERROR* Failed to send host log message
转载:https://blog.csdn.net/mychangee/article/details/104954262 问题描述:[drm:vmw_host_log [vmwgfx]] ERROR ...
- CPU使用率和平均负载
转载: https://mp.weixin.qq.com/s?__biz=MzU4NzU0MDIzOQ==&mid=2247487782&idx=3&sn=3f04bb053d ...
- P2120 [ZJOI2007]仓库建设
P2120 [ZJOI2007]仓库建设 怎么说呢?算是很水的题了吧... 只要不要一开始就把dp想错就行... #include<bits/stdc++.h> #define ll lo ...
- hdu 5087 Revenge of LIS II (DP)
题意: N个数,求第二长上升子序列的长度. 数据范围: 1. 1 <= T <= 1002. 2 <= N <= 10003. 1 <= Ai <= 1 000 0 ...
- echarts 让轴自适应数据为小数整数
echarts 让轴自适应数据为小数整数,以解决y轴数值重复的问题 工作中突然遇到这个问题 试了一下用formatter自适应 ok 在yAxis中提阿尼按键属性 axisLabel 1 axis ...
- 新手使用python以及pycharm看过来
前言 随着互联网时代的进步,人类与计算机之前的沟通交流越来越便捷,自此交流的媒介--编程语言吸引力更多的人学习,今天我们就来谈谈当前市面上最火的编程语言 1.文件的概念 什么是文件夹.文件 其实是操作 ...
- 浅谈Vue中计算属性(computed)和方法(methods)的差别
浅谈Vue中计算属性(computed)和方法(methods)的差别 源码地址 methods方法和computed计算属性,两种方式的最终结果确实是完全相同 计算属性是基于它们的响应式依赖进行缓存 ...