在上次的自动化测试系列(一)中为大家大体介绍了自动化测试的概念,本文主要针对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测试的更多相关文章

  1. Appium+Java 自动化测试系列二:Maven+Testng

    新建Maven项目作为测试项目分为3个步骤: 1.Eclipse安装Testng 插件 2.新建Maven项目 3.引入Testng 一.Eclipse安装Testng插件 TestNG安装可选择在线 ...

  2. 使用 robotframework 自动化测试系列 二 -----环境搭建

    环境搭建是测试人员基础,本质都是不难的,按照流程和步骤一步步做,遇到问题不要担心,解决的问题越多,你理解的也就越多. 1. 安装python环境,python现在有python2 和python3.由 ...

  3. Selenium3 + Python3自动化测试系列二——selenium元素定位

    一.selenium元素定位 Selenium对网页的控制是基于各种前端元素的,在使用过程中,对于元素的定位是基础,只有准去抓取到对应元素 才能进行后续的自动化控制,我在这里将对selenium8种元 ...

  4. selenium+python自动化测试系列(二):AutoIt工具实现本地文件上传

    AutoIt使用简单说明 AutoIt的安装这里就不在啰嗦,可以参考AutoIt安装或者自行搜索解决. 第一步:定位上传文件路径的文本框 这里举例说明,如何定位?如图 这里我们看到上传文件的类型是bu ...

  5. RF+Appium框架自动化测试系列一之(Mac下Appium环境搭建)万事开头难

    消失了3个月,有一段时间没来园子更新博客了,各位看官见谅哈哈,消失是因为刚换了工作环境没外网,好多笔记没能及时的记录分享,以后有时间慢慢补上吧,这段时间主要接触了移动端app的自动化测试,公司为了快速 ...

  6. 初学者的API测试技巧

    API(应用程序编程接口)测试是一种直接在API级别执行验证的软件测试.它是集成测试的一部分,它确认API是否满足测试人员对功能.可靠性.性能和安全性的期望.与UI测试不同,API测试是在没有GUI层 ...

  7. 自动化测试系列(三)|UI测试

    UI 测试是一种测试类型,也称为用户界面测试,通过该测试,我们检查应用程序的界面是否工作正常或是否存在任何妨碍用户行为且不符合书面规格的 BUG.了解用户将如何在用户和网站之间进行交互以执行 UI 测 ...

  8. 开源API测试工具 Hitchhiker v0.8 - 自动化测试结果统计

    Hitchhiker 是一款开源的支持多人协作的 Restful Api 测试工具,支持自动化测试, 数据对比,压力测试,支持脚本定制请求,可以轻松部署到本地,和你的team成员一起协作测试Api. ...

  9. [CXF REST标准实战系列] 二、Spring4.0 整合 CXF3.0,实现测试接口(转)

    转自:[CXF REST标准实战系列] 二.Spring4.0 整合 CXF3.0,实现测试接口 文章Points: 1.介绍RESTful架构风格 2.Spring配置CXF 3.三层初设计,实现W ...

随机推荐

  1. 零基础入门Linux有什么好的学习方法吗?(超详细)

    本节旨在介绍对于初学者如何学习 Linux 的建议,在这里不具体分析Linux的学习节点只分析对于零基础的伙伴的学习方法.那么如果你已经确定对 Linux 产生了兴趣,那么接下来我们介绍一下学习 Li ...

  2. 该如何有效的提高C/C++语言编程能力

    很多答案都谈到算法的重要性,我的答案主要集中在C++上,只是一些个人经验. 其实我以前也有这样的困惑,感觉完了不知道怎么用.而且我也不是学计算机的,也没有从事相关工作,所以大概有十年的时间都没写什么程 ...

  3. 另类加法 牛客网 程序员面试经典 C++ Python

    另类加法  牛客网 程序员面试经典 C++ Python 题目描述 请编写一个函数,将两个数字相加.不得使用+或其他算数运算符. 给定两个int A和B.请返回A+B的值 测试样例: 1,2 返回:3 ...

  4. Linux安装部署Zabbix

    Zabbix 是一个企业级的分布式开源监控方案,能够监控各种网络参数以及服务器健康性和完整性的软件.Zabbix使用灵活的通知机制,允许用户为几乎任何事件配置基于邮件的告警.这样可以快速反馈服务器的问 ...

  5. vue3快速上手

    前言 虽然Vue3肯定是未来的趋势,但还不是很成熟,实际开发中用的也不多,建议学Vue3之前先掌握Vue2,将Vue3作为未来的知识储备. Vue3快速上手 Vue3简介 2020年9月18日,Vue ...

  6. 设计模式学习-使用go实现代理模式

    代理模式 定义 优点 缺点 应用场景 代码实现 参考 代理模式 定义 定义:为其对象提供一种代理以控制这个对象的访问.通俗点讲就是它在不改变原始类(或叫被代理类)代码的情况下,通过引入代理类来给原始类 ...

  7. [源码解析] PyTorch 分布式(3) ----- DataParallel(下)

    [源码解析] PyTorch 分布式(3) ----- DataParallel(下) 目录 [源码解析] PyTorch 分布式(3) ----- DataParallel(下) 0x00 摘要 0 ...

  8. liteIDE配置环境变量

    1.下载安装go https://www.cnblogs.com/Jack-cx/p/9878213.html 2.下载ide https://www.golangtc.com/download/li ...

  9. PHP create_function代码注入

    今天做ctf遇到一道题,记录一下知识点 <?php class Noteasy{ protected $param1; protected $param2; function __destruc ...

  10. 工具篇:apache-httpClient 和 jdk11-HttpClient的使用

    关注公众号,一起交流,微信搜一搜: 潜行前行 HttpClient (apache) apache HttpClient 是 java项目里 较为常用的组件之一:对接外部服务时,各个商家提供的接口是各 ...