前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >接口自动化测试多场景实践 - 上篇

接口自动化测试多场景实践 - 上篇

作者头像
测试加
发布2023-02-17 16:46:33
5840
发布2023-02-17 16:46:33
举报

一、背景

当今互联网业务高速发展,无论是各行各业行业,都需要服务端来进行数据存储、逻辑处理等操作。为了更好提升用户体验、满足业务需求,最近几年服务端技术架构从传统的单体应用架构升级到微服务架构。

微服务技术每一天都在不断发展和变化,由于其易于部署和使用,它已成为各类企业级应用背后的核心服务架构。目前,微服务质量正在持续不断提高,其服务灵活性、可缩放性和可扩展性也在不断增强。

首先,微服务可以为企业提供灵活、可配置的服务架构,使企业能够更加细致地对业务进行划分,实现业务的有效集成、部署和运营。

其次,微服务架构可以支撑企业应用的可缩放性,即它可以在必要时适应可能出现的流量激增,并且提供更强大的容错性和故障转移策略,有效地确保系统的可用性。

最后,微服务可以利用容器技术来扩展和快速适应新的需求和需求,使得企业更加灵活地管理资源并提升系统整体运行效率。

但是微服务也带来了明显的缺点,比如:

  • 微服务虽然编译得更快了,但微服务数量却翻了数倍。
  • 微服务可以针对热点服务进行单独扩缩容,但也就需要投入更多的运维成本。
  • 微服务进行代码变更,可能会引起上下游服务的稳定性。

等等。这也使得微服务架构在架构设计、团队协作、质量保障环节等层面引发一系列挑战。

我们知道,“越晚发现的问题,修复的成本也就越高”,所以希望在项目早期就能暴露出问题,本文从质量保障的角度来思考如何高质量保障微服务质量。

行业内按照层级分类的方式将测试分为:单元、接口和UI三个层级,而各层的产出/投入比可以形象的表述为测试金字塔,越往上层,其维护成本越高收益越小。

总的来说,接口测试是保证高复杂性系统质量的内在要求和低成本的经济利益驱动作用下的最佳方案:

  • 低投入,高产出
  • 比较容易实现自动化
  • 和UI自动化测试相比更加稳定

但是,如何做好一个接口自动化测试项目呢?我认为,一个“好的”自动化测试项目,需要从“时间”“人力”“收益”这三个方面出发。

如何控制投入成本?有两个方面:控制工具开发成本和测试用例编写的成本。一款优秀的接口自动化测试工具需要满足不同的用户群体的的诉求,例如:

如何控制投入成本?有几个方面:人员团队管理、团队协作、工具能力

从人员管理/团队协作上:

  • 测试报告发送到邮箱、实时通讯工具等等
  • 关联研发的 API 接口改动变更通知

从工具能力上:

  • 单接口自动化测试
  • 批量接口自动化测试
  • 定时自动化测试
  • 数据库交互操作
  • DevOps自动化流水线测试

但是需要投入较多的工具开发成本,我们可以使用市面上的测试工具帮我们完成日常工作。

本文介绍下最近调研过的API管理与测试一体化工具Eolink,是如何满足复杂的接口自动化测试多场景实践的。

二、单自动化接口测试

1、为了编写测试用例更灵活,可以在接口请求之前或者接口请求之后进行参数修改,可以用到前置脚本或者后置脚本功能。比较常见的场景是在获取接口响应结果之后,对接口请求参数进行编码操作,可以提高参数传递的安全性和隐私性。

代码语言:javascript
复制
let info = eo.http.response.get();

let base64Info = eo.base64.encode(info) // Base64 编码

eo.info(base64Info);

点击执行测试用例完成后,可以在自定义输出信息区域看到,刚才执行base64操作的加密参数。

2、对于两个有业务关联的接口往往是需要参数关联的,依赖上一个接口返回数据作为当前接口的请求参数。

在第一个接口中的后置脚本中获取响应结果后,可以设置项目变量和设置全局变量,两者的区别是一个在项当前项目中有效,后者是在所有项目中有效。

在第二个接口中的前置脚本中通过eo.env.param获取项目变量并且设置到当前请求的请求query参数中。

代码语言:javascript
复制
let requestBase64 = eo.env.param.get("base64Info-project");  // 获取项目变量
eo.http.query.set("base64Info",requestBase64)   // 设置请求query参数

在执行的测试报告中,可以看到可以看到两个接口参数传递的效果。

三、多自动化接口测试

我们先来看下如何设计接口测试的测试方案,在如下图中可以看到,在保障单接口测试通过的前提下,还需要结合业务场景进行多接口自动化测试。

在API自动化测试中选择用例页面,可以看到有很多条测试用例,当服务端代码有变更部署的时候,可以使用批量执行用例功能,便捷实现多场景回归测试,提供测试效率。

1、具体操作,首先需要在测试用例列表中选择批量操作。

2、勾选需要批量执行的测试用例,测试用例直接可以共享Cooikes参数,便于有些需要鉴权的接口和便于接口之间的参数共享。在执行策略上可以设置串行执行和并发执行,串行执行是每个接口按照排列顺序一条条执行,适用于强依赖业务流程的场景中,并发执行是多条测试用例一起执行,执行速度会相对快一些。

3、批量请求完接口后,可以看到最近测试结果、测试执行执行时间,点击下载报告可以查看本次的执行结果。

四、小结

可以看出eolink在接口自动化测试多场景的支持能力很强,本文就先介绍到这里,更高阶的功能会在下篇继续介绍。

eolink产品体验地址如下,支持win、mac、linux多平台, https://www.eolink.com/?utm_source=qyzzh&utm_medium=ceshijia&utm_content=xinxi09

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-12-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 测试加 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、背景
  • 二、单自动化接口测试
  • 三、多自动化接口测试
  • 四、小结
相关产品与服务
Prowork 团队协同
ProWork 团队协同(以下简称 ProWork )是便捷高效的协同平台,为团队中的不同角色提供支持。团队成员可以通过日历、清单来规划每⽇的工作,同时管理者也可以通过统计报表随时掌握团队状况。ProWork 摒弃了僵化的流程,通过灵活轻量的任务管理体系,满足不同团队的实际情况,目前 ProWork 所有功能均可免费使用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档