51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1031|回复: 1
打印 上一主题 下一主题

[转贴] 接口自动化测试从入门到高级实战

[复制链接]
  • TA的每日心情
    擦汗
    10 小时前
  • 签到天数: 1048 天

    连续签到: 1 天

    [LV.10]测试总司令

    跳转到指定楼层
    1#
    发表于 2022-1-10 13:36:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    接口测试背景和必要性
      接口测试是测试系统组件间接口(API)的一种测试,主要用于检测内部与外部系统、内部子系统之间的交互质量,其测试重点是检查数据交换、传递的准确性,控制和交互管理过程,以及系统间相互逻辑依赖关系等。
      现在的互联网应用(App)已经普遍基于前后端分离架构思路构建,即后端提供数据接口,前端调用接口返回 JSon 数据渲染到 UI。而随着微服务的流行,后端服务模块越来越多,技术团队迫切需要一个效率更高更稳定的获取系统质量信息的方法,以便进行缺陷检测和质量监督。



     真实的企业后端服务和分层自动化的关键质量保证手段
      之前基于 UI 自动化测试技术的思路和手段由于低效繁杂且容易出错已经无法满足实际需要,而面向服务的接口自动化测试体系则应运而生,成为业界最主流的质量管理手段。尤其是对高复杂性的互联网企业平台,系统越复杂庞大,接口测试自动化和持续集成的效果就越明显。业界已经有成熟的低成本、高效率的解决方案、开源工具和案例经验。当下,熟悉和掌握接口自动化测试技术也成为了一线互联网企业对中高级测试开发工程师的基本要求。
      接口测试的质量目标
      建设完备的接口自动化测试体系主要从以下几个角度考虑:
      · 质量维度
      功能正常:保持新老版本的兼容;
      性能正常:单次请求的响应时间跟总体的 qps 相关;
      变更检测:字段的缺失,字段的类型变更;
      异常和健壮性测试。
      · 质量体系
      构建接口层的快速稳定的质量保证体系;
      构建接口监控体系。
      接口测试流程
      在企业内部实施接口测试的实际流程如下:
      1. 接口的范围:需要覆盖多少业务和接口
      2. 接口分析:接口的协议、上下游依赖
      3. 接口测试用例设计:业务用例如何模拟和覆盖
      4. 接口测试框架选择:选择合适的框架
      5. 测试用例编写与维护:用例编写与维护更新
      6. 持续集成:不断集成测试
      待测接口范围
      常见的待测接口范围如下:
      1. 业务需求调研:研发和产品反馈常出问题的业务
      2. 接口文档:人工文档、Swagger 自动生成的文档
      3. 代码分析:分析 Spring 等框架的代码
      4. 线上 Log 和数据:线上的生产监控和接口 Log
      5. 客户端抓包:基于用户角度的接口行为分析
      常见抓包分析
      1. 监听分析:TCPDUMP + WireShark + HAR 提取工具
      2. 代理分析:Charles + BurpSuite
      3. 转发分析:修改 Host 域名 + 反向代理转发
      测试用例设计
      接口调用的流程分析:
      · 代理抓包
      · 线上 Log 提取
      · 人工用例补充:用流程图和思维导图进行业务建模
      · 正常场景用例 Right Path
      · 异常场景用例
      · 安全和稳定性用例
      接口测试框架选择
      关于如何选择接口测试框架,列举几个常见的框架特性供参考:
      1. 早期阶段:基于各种语言的 HTTPClient 封装
      2. JMeter:性能测试工具,不具备完备的接口测试框架功能
      3. RobotFramework:强大的ATDD工具,不过约束性太大
      4. RestAssured + Swagger
      5. SoapUI [商业化]
      这里推荐开源的 Rest-Assured,它有如下优点:
      · 简约的接口测试 DSL
      · 支持 XML JSon 的结构化解析
      · 支持 XPath JSonPath GPath等多种解析方式
      · 对 Spring 的支持比较全面
      落地接口自动化测试体系有哪些技能挑战?
      要真正落地接口自动化测试体系,测试开发工程师必须根据公司业务实际情况,选择合适的框架,并熟练掌握接口测试工具和平台使用,设计出通用、易于校验、健壮易用的接口测试用例,还需要掌握数据驱动机制,能用断言来完善接口测试用例。
      其次,还需要了解接口测试体系架构与常见后端发布机制,能基于 RPC 协议的微服务框架如 Dubbo 做测试,熟悉测试用例和套件管理机制,能掌握 Jenkins 执行用例的方法,让接口测试实现真正的自动化。
      另外,还要对接口测试方案做持续优化,可进一步通过抓包、Hook 等方法实现接口测试用例的自动生成,并掌握基于接口的快速回归测试手段提升效率。
      熟练掌握接口自动化测试体系背后的这些技能和处理问题的思路,实现时间、人力、收益的平衡,对于一个经验尚浅的初、中级测试开发人员来说绝对是一个艰巨的挑战。

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

    x
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-18 19:33 , Processed in 0.068745 second(s), 24 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表