Skip to main content

自动化测试系列(二)|API测试

· 11 分钟阅读

在上次的自动化测试系列(一)中为大家大体介绍了自动化测试的概念,本文主要针对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测试任务目前仅支持Choerodon商业版能选择。当API测试任务触发后,会立刻执行选中的测试任务。

注意:该类型的CD任务仅Choerodon商业版可用。

  • 选择添加此类型任务后,首先需要填写任务名称、配置触发分支;触发分支的匹配方式支持:分支类型匹配、正则匹配、精确匹配以及精确排除。
  • 选择API测试任务:此处仅支持选择项目下已有的API测试任务。

总结

持续测试是DevOps流程中重要的一环,而API测试能帮助实现测试前移,从而帮助团队降低测试成本,更快地发现缺陷与问题。

关于猪齿鱼

Choerodon猪齿鱼作为全场景效能平台,是基于的Kubernetes,Istio,knative,Gitlab,Spring Cloud来实现本地和云端环境的集成,实现企业多云/混合云应用环境的一致性。平台通过提供精益敏捷,持续交付,容器环境,微服务,DevOps等能力来帮助组织团队来完成软件的生命周期管理,从而转变,更替代地交付更稳定的软件。

更多内容

大家可以通过以下社区途径了解Choerodon猪齿鱼文档,最新动态,产品特性:

【Choerodon官网】

https://choerodon.io/zh/

【汉得开放平台】

https://open.hand-china.com/

【汉得开放论坛】

https://openforum.hand-china.com/

也可以加入Choerodon猪齿鱼官方社区用户交流群,交流猪齿鱼使用心得,Docker,微服务,K8S,敏捷管理等相关理论实践心得,群同步更新版本更新等信息,大家可以加群讨论交流。

①-Choerodon猪齿鱼官方交流(已满);

②-Choerodon猪齿鱼官方交流(可加);【微信号发至客服邮箱[email protected],运营小伙伴拉您入官方交流群】

欢迎加入Choerodon猪齿鱼社区,共同为企业数字化服务打造一个开放的生态平台。