云时代做接口测试的正确姿势

举报
DevCloud 发表于 2018/03/14 17:08:28 2018/03/14
【摘要】 现在,你负责测试某一个电商网站一个用户的订单列表功能,测试过程中你发现页面上展示的订单数量与实际数据库里的数量不一致,请大家结合自己平时的工作方式回忆下如何快速的定位该问题是不是BUG或者BUG产生的原因是什么? 如果这只是一道面试题,考察的可能只是你的逻辑思维和实践经验;但如果发生在生产环境里,可是会直接造成经济损失和用户投诉的!

现在,你负责测试某一个电商网站一个用户的订单列表功能,测试过程中你发现页面上展示的订单数量与实际数据库里的数量不一致,请大家结合自己平时的工作方式回忆下如何快速的定位该问题是不是BUG或者BUG产生的原因是什么?

如果这只是一道面试题,考察的可能只是你的逻辑思维和实践经验;但如果发生在生产环境里,可是会直接造成经济损失和用户投诉的!


什么是接口测试?

 避免发生这种业务逻辑和数据的问题,上线前 API(接口)测试不可或缺!那什么又是接口测试呢?维基百科的解释是:

API 测试是一种作为集成测试的一部分,通过直接控制被测应用的接口(API)来确定是否在功能、可靠性、性能和安全方面达到预期的软件测试活动。由于 API 都没有 GUI 界面,API 测试都是在通讯层进行的。现在 API 测试在自动化测试中有着很重要的地位,因为 API 一般是应用逻辑的主要接口,同时 GUI 测试在敏捷开发和 DevOps 的快速迭代和频繁变更中很难维护。


云时代接口测试的现状

接口测试由来已久,云计算技术迅速发展,接口测试的重要性更逐步凸显。如软件测试金字塔所言,单元级别测试、接口级别测试、界面级别测试三层由下而上组成测试金字塔,并建议增加下层的测试力度,这样可以尽早在小范围内发现和解决软件问题。但在实践中因为各种原因单元测试并没有被广泛使用,越来越多的研发团队在接口层面增加测试投入。

在互联网的前后端架构中, HTTP REST格式的接口成为一种被广泛接受的接口协议。HTTP REST接口容易理解,独立于开发语言,很多语言框架开箱支持,接口开发实现简单。同时开源社区提供了一些轻量的接口开发插件和可视化工具,降低了接口开发门槛,如被广泛使用的Swagger。

单体应用向分布式和微服务架构演化的过程中,HTTP REST接口是组件和服务的主流调用方式,帮助完成服务解耦和服务自制,同时接口调用关系复杂度增加。一个典型的微服务接口会被多个服务调用,接口作为组件和服务之间的依赖点,需要持续保证功能可用和性能稳定,否则即产生单点失败引起的连锁反应。在复杂云服务系统中,调用关系更为复杂,会有几十个微服务,上百个接口,几百个接口操作定义。微服务之间形成网状调用关系。单个服务接口出现问题后,对整个系统的影响犹如蝴蝶效应。逐级追溯问题工作量巨大,并且需要多个微服务团队紧密配合。分布式和微服务架构的采用,需要与之相对应的快速测试反馈手段。

技术的接口会对应组织和团队的人员沟通接口。接口跨角色、跨团队使用,不同的角色和团队对接口需求和验收标准的理解不一致。前端开发人员或业务人员对服务编程接口不熟悉,导致沟通困难。业界有很多种尝试来解决这种问题,比如行为驱动的开发和测试,测试驱动的开发。归根结底是希望用一种大家都可以理解的并且无歧义的方式来做验收。

 

接口测试功能点多,接口测试用例和场景多,对测试提出很大的挑战。每个HTTP REST接口有多个传入参数,传入参数有多种组合,对应到不同的输出。接口测试设计还需要考虑鉴权token、请求头、响应头、响应码等。再和典型值、边界值等结合起来,接口测试用例和场景多,完全使用手工测试工作量大,并且容易有遗漏点。研发团队实践接口测试需要一种编程门槛低自动化程度高的工具。


如何低投入高效完成接口自动化测试呢?

华为云DevCloud接口测试结合了华为优秀研发实践和研发理念:

  • 测试用例免代码编写,技术门槛低,适合接口开发者、接口消费者、测试人员、业务人员等不同角色。

  • 一键导入Swagger接口定义自动生成脚本模板,基于脚本模板组装编排、管理接口自动化测试用例。

  • 支持HTTP和HTTPS协议,可视化用例编辑界面,丰富的预置检查点、内置变量,支持自定义变量、参数传递、持续自动化测试。

 

华为云DevCloud接口测试核心特性:

  •  一键导入Swagger接口描述文档,生成接口测试关键字

    用户只需要提供接口的Swagger描述文档,一键导入即可以生成接口测试关键字,每一个接口操作对应一个测试关键字。测试关键字在用例之间复用,免除了重复设置接口路径、参数的工作量。

图片1.png

  • 基于脚本模板关键字,拖拽组装测试用例

    拖拽一键生成的脚本模板关键字,在模板中填写输入参数和检查点后,即可以生成接口测试用例,降低脚本编写门槛,提升效率

图片2.png

  • 提供丰富的预置检查点、内置参数,支持自定义全局和局部参数,支持测试步骤间参数传递

    预置30多种检查点,简单选择即可创建测试检查点;通过把接口数据变量化,可以在测试步骤之间传递,并可以作为高级测试逻辑的输入

图片3.png

  • 支持测试套件,按需批量完成接口测试,支持和流水线集成的持续自动化测试

    将接口测试放入流水线中按需执行,可以实现DevOps持续测试,尽早发现接口问题。

图片4.png

为你的业务保驾护航,华为云DevCloud接口测试最牛体验官火爆公测中,限时免费体验,撰写体验报告,更有Kindle阅读器、颈肩放松器、笔记本支架等你拿!活动地址:http://forum.huaweicloud.com/thread-6353-1-1.html


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。