当今互联网业务高速发展,无论是各行各业行业,都需要服务端来进行数据存储、逻辑处理等操作。为了更好提升用户体验、满足业务需求,最近几年服务端技术架构从传统的单体应用架构升级到微服务架构。
微服务技术每一天都在不断发展和变化,由于其易于部署和使用,它已成为各类企业级应用背后的核心服务架构。目前,微服务质量正在持续不断提高,其服务灵活性、可缩放性和可扩展性也在不断增强。
首先,微服务可以为企业提供灵活、可配置的服务架构,使企业能够更加细致地对业务进行划分,实现业务的有效集成、部署和运营。
其次,微服务架构可以支撑企业应用的可缩放性,即它可以在必要时适应可能出现的流量激增,并且提供更强大的容错性和故障转移策略,有效地确保系统的可用性。
最后,微服务可以利用容器技术来扩展和快速适应新的需求和需求,使得企业更加灵活地管理资源并提升系统整体运行效率。
但是微服务也带来了明显的缺点,比如:
等等。这也使得微服务架构在架构设计、团队协作、质量保障环节等层面引发一系列挑战。
我们知道,“越晚发现的问题,修复的成本也就越高”,所以希望在项目早期就能暴露出问题,本文从质量保障的角度来思考如何高质量保障微服务质量。
行业内按照层级分类的方式将测试分为:单元、接口和UI三个层级,而各层的产出/投入比可以形象的表述为测试金字塔,越往上层,其维护成本越高收益越小。
总的来说,接口测试是保证高复杂性系统质量的内在要求和低成本的经济利益驱动作用下的最佳方案:
但是,如何做好一个接口自动化测试项目呢?我认为,一个“好的”自动化测试项目,需要从“时间”、“人力”、“收益”这三个方面出发。
如何控制投入成本?有两个方面:控制工具开发成本和测试用例编写的成本。一款优秀的接口自动化测试工具需要满足不同的用户群体的的诉求,例如:
如何控制投入成本?有几个方面:人员团队管理、团队协作、工具能力
从人员管理/团队协作上:
从工具能力上:
但是需要投入较多的工具开发成本,我们可以使用市面上的测试工具帮我们完成日常工作。
本文介绍下最近调研过的API管理与测试一体化工具Eolink,是如何满足复杂的接口自动化测试多场景实践的。
1、为了编写测试用例更灵活,可以在接口请求之前或者接口请求之后进行参数修改,可以用到前置脚本或者后置脚本功能。比较常见的场景是在获取接口响应结果之后,对接口请求参数进行编码操作,可以提高参数传递的安全性和隐私性。
let info = eo.http.response.get();
let base64Info = eo.base64.encode(info) // Base64 编码
eo.info(base64Info);
点击执行测试用例完成后,可以在自定义输出信息区域看到,刚才执行base64操作的加密参数。
2、对于两个有业务关联的接口往往是需要参数关联的,依赖上一个接口返回数据作为当前接口的请求参数。
在第一个接口中的后置脚本中获取响应结果后,可以设置项目变量和设置全局变量,两者的区别是一个在项当前项目中有效,后者是在所有项目中有效。
在第二个接口中的前置脚本中通过eo.env.param获取项目变量并且设置到当前请求的请求query参数中。
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