移动互联网公司的一般架构简化模拟
**
**
接口测试背景和必要性
接口测试是测试系统组件间接口(API)的一种测试,主要用于检测内部与外部系统、内部子系统之间的交互质量,其测试重点是检查数据交换、传递的准确性,控制和交互管理过程,以及系统间相互逻辑依赖关系等。
现在的互联网应用(App)已经普遍基于前后端分离架构思路构建,即后端提供数据接口,前端调用接口返回 JSon 数据渲染到
UI。而随着微服务的流行,后端服务模块越来越多,技术团队迫切需要一个效率更高更稳定的获取系统质量信息的方法,以便进行缺陷检测和质量监督。
真实的企业后端服务和分层自动化的关键质量保证手段
之前基于 UI
自动化测试技术的思路和手段由于低效繁杂且容易出错已经无法满足实际需要,而面向服务的接口自动化测试体系则应运而生,成为业界最主流的质量管理手段。尤其是对高复杂性的互联网企业平台,系统越复杂庞大,接口测试自动化和持续集成的效果就越明显。业界已经有成熟的低成本、高效率的解决方案、开源工具和案例经验。当下,熟悉和掌握接口自动化测试技术也成为了一线互联网企业对中高级测试开发工程师的基本要求。
接口测试的质量目标
建设完备的接口自动化测试体系主要从以下几个角度考虑:
质量维度
-
功能正常:保持新老版本的兼容
-
性能正常:单次请求的响应时间跟总体的 qps 相关
-
变更检测:字段的缺失,字段的类型变更
-
异常和健壮性测试
质量体系
-
构建接口层的快速稳定的质量保证体系
-
构建接口监控体系
接口测试流程
在企业内部实施接口测试的实际流程如下:
-
接口的范围:需要覆盖多少业务和接口
-
接口分析:接口的协议、上下游依赖
-
接口测试用例设计:业务用例如何模拟和覆盖
-
接口测试框架选择:选择合适的框架
-
测试用例编写与维护:用例编写与维护更新
-
持续集成:不断集成测试
待测接口范围
常见的待测接口范围如下:
-
业务需求调研:研发和产品反馈常出问题的业务
-
接口文档:人工文档、Swagger 自动生成的文档
-
代码分析:分析 Spring 等框架的代码
-
线上 Log 和数据:线上的生产监控和接口 Log
-
客户端抓包:基于用户角度的接口行为分析
常见抓包分析
-
监听分析:TCPDUMP + WireShark + HAR 提取工具
-
代理分析:Charles + BurpSuite
-
转发分析:修改 Host 域名 + 反向代理转发
测试用例设计
- 接口调用的流程分析
* 代理抓包
* 线上 Log 提取
- 人工用例补充:用流程图和思维导图进行业务建模
* 正常场景用例 Right Path
* 异常场景用例
* 安全和稳定性用例
接口测试框架选择
关于如何选择接口测试框架,列举几个常见的框架特性供参考:
-
早期阶段:基于各种语言的 HTTPClient 封装
-
JMeter:性能测试工具,不具备完备的接口测试框架功能
-
RobotFramework:强大的ATDD工具,不过约束性太大
-
RestAssured + Swagger
-
SoapUI [商业化]
这里推荐开源的 Rest-Assured,它有如下优点:
-
简约的接口测试 DSL
-
支持 XML JSon 的结构化解析
-
支持 XPath JSonPath GPath等多种解析方式
-
对 Spring 的支持比较全面
落地接口自动化测试体系有哪些技能挑战?
要真正落地接口自动化测试体系,测试开发工程师必须根据公司业务实际情况,选择合适的框架,并熟练掌握接口测试工具和平台使用,设计出通用、易于校验、健壮易用的接口测试用例,还需要掌握数据驱动机制,能用断言来完善接口测试用例。
其次,还需要了解接口测试体系架构与常见后端发布机制,能基于 RPC 协议的微服务框架如 Dubbo 做测试,熟悉测试用例和套件管理机制,能掌握
Jenkins 执行用例的方法,让接口测试实现真正的自动化。
另外,还要对接口测试方案做持续优化,可进一步通过抓包、Hook 等方法实现接口测试用例的自动生成,并掌握基于接口的快速回归测试手段提升效率。
熟练掌握接口自动化测试体系背后的这些技能和处理问题的思路,实现时间、人力、收益的平衡,对于一个经验尚浅的初、中级测试开发人员来说绝对是一个艰巨的挑战。
《接口自动化测试从入门到高级实战》课程介绍
霍格沃兹测试学院特开发了《接口自动化测试从入门到高级实战》专项突破课程,由资深测试架构师思寒老师主讲,用 4 周时间,30
课时,带你深度掌握接口测试入门基础、进阶技能、框架原理,管理工具,项目实战 5 大模块技能,在企业内真正落地接口自动化测试体系。
课程亮点
-
核心理论 + 实战演练 + 接地气的案例经验 + 踏坑填坑指南
-
直播和录播回放:两年内可重复观看录播,并可打卡跟学下一期课程新内容;
-
多编程语言支持:Java 和 Python 双语言教学和代码示例;
重磅福利
学员经学院内推成功返还学费:对于优秀的学员,霍格沃兹测试学院还有奖学金激励和 BAT 等一线名企内推服务。
讲师介绍
思寒,十年测试开发工作经验,资深测试架构师,AppCrawler 作者,先后工作于阿里巴巴、百度、雪球,现为测吧科技 CTO。
课程目录
课程受众
-
手工/黑盒测试工程师
-
测试开发工程师
-
测试和质量体系管理人员
-
研发工程师/研发工程师转行测试工程师
-
具备编程功底的在校学生
报名详情
-
上课时间:2018年11月24日至12月15日(每周六10:00-18:00);
-
上课形式:腾讯课堂直播 + 录播回放 + 助教答疑
-
优惠政策:
* TesterHome 社区用户,有专属限量 600 元优惠券;
* 3 人拼团享优惠价格 2800 元,点击“阅读原文”进入拼团页面;
- 对接口自动化测试技术感兴趣的同学,可以扫码加群交流。
若群满,请加下面助教微信,备注“接口测试”入群
常见答疑
1. 是否对编程能力有要求?
需要具备一定的编程能力,学院提供了 Python 和 Java 语言基础入门录播课程,可以帮助大家快速掌握基本编程能力。
2. 如何上课?
上课使用腾讯课堂直播,并支持观看录播,课后也可在社区的霍格沃兹测试学员节点发帖提问。报名成功后,课程助教会挨个拉大家到微信群,并同步上课的准备工作和预习资料。
3. 是否提供发票?
提供
4. 拼团是否有优惠?
多人组团可享受团购价,可扫码入群后联络群主。
来霍格沃兹测试开发学社,学习更多软件测试与测试开发的进阶技术,知识点涵盖web自动化测试 app自动化测试、接口自动化测试、测试框架、性能测试、安全测试、持续集成/持续交付/DevOps,测试左移、测试右移、精准测试、测试平台开发、测试管理等内容,课程技术涵盖bash、pytest、junit、selenium、appium、postman、requests、httprunner、jmeter、jenkins、docker、k8s、elk、sonarqube、jacoco、jvm-sandbox等相关技术,全面提升测试开发工程师的技术实力
QQ交流群:484590337
公众号 TestingStudio
点击获取更多信息