互联网企业 API 自动化测试的最佳实践

互联网企业 API 自动化测试的最佳实践
    马上咨询

    王胜  资深测试架构师

    毕业于上海交通大学,获硕士学位,现任 eBay 中国研发中心测试基础架构(QE-Infrastructure)技术主管,历任 HP 软件中国研发中心资深测试架构师、性能测试专家,Alcatel-Lucent 高级测试主管,Cisco 中国研发中心资深测试工程师等职位,具有超过 15 年的软件测试开发经验和技术管理经验,具有丰富的测试框架设计与自动化测试经验。曾负责建立全球大型电商网站的测试基础架构和和自动化测试方案,主持搭建持续集成测试生态体系,并负责主导无线路由产品的整体自动化测试方案、金融平台产品 SDK,测试框架设计、系统开发平台的白盒测试方案、DSP 平台自动化测试方案、轨道交通安全软件平台测试、大规模产品链的自动化部署和多个大型电子商务网站的自动化功能,测试,API 测试与性能测试。曾在国际以及国内学术期刊上发布多篇测试管理和自动化测试解决方案的论文,并担任“软件测试世界杯赛”的亚洲区评委。曾受邀在国际(美国, 俄罗斯, 日本等)以及国内顶级技术大会(Arch Summit, CNUTCon,Tid,GITC 等 )上多次发表软件测试和 DevOps 相关的技术演讲。另外,王胜还是极客时间“软件测试 52 讲-从小工到专家的实战心法”的专栏作者。

    课程大纲

    主题内容

    API 测试必须了解的 网站架构 基础知识 (1H)


    •  测试工程师必须懂的大型网站架构
    •  业务驱动下的大型网站技术架构的技术演进

    自动化测试 的基础知识 ( 1H) 


    •  分层的测试策略的设计
    •  适合互联网产品的测试策略设计
    •  GUI 自动化测试框架的演进
    •  API 测试基础知识
    •  API 的后向兼容性测试
    •  GUI 测试 VS API 测试
    •  性能测试基础知识
    •  基于 GUI 测试来生成 API 测试用例的设计
    •  案例分享:大型互联网电商的测试策略设计
    API 自动化测试础 基础 (1.5H)•  主流 API 测试方法简介
    •  构建你的被测应用
    •  CURL 使用基础
    •  Postman 使用基础
    •  Postman 的功能测试验证
    •  Postman 的 Collection
    •  Postman 的测试验证
    •  基于 Postman 的 API 测试用例管理
    •  API 测试的数据驱动
    •  API 测试的数据准备
    •  基于 Postman 的自动化代码生成
    •  Postman + Newman
    •  Postman + Newman + Jenkins
    •  基于 JMeter 的 API 功能测试
    •  基于 JMeter 的 API 性能测试
    API  自动化测试 进阶(2H)•  使用 Robot Framework 实现 API 测试
    •  使用 Python Requests 库实现 API 测试
    •  API 测试一站式解决方案:HttpRunner 使用 (Python)
    •  API 测试一站式解决方案:HttpRunner 进阶
    •  实例:基于 Python 搭建 API 自动化测试框架

    API 自动化测试 框架设计与创新 (1H)


    •  最原始的 API 测试框架
    •  引入 API Test Executor 实现 Code-based API 自动化测试
    •  引入 Data-Driven Test Data 的自动生成
    •  引入 Parallel Execution Controller 实现 API 并发测试
    •  引入 Load Generator Cluster 实现 API 高并发和压力测试
    •  引入 2R History Database 实现 API Diff Identification

    微服务下的 I API  测试挑战以及应对思路(1H)


    •  微服务架构简介
    •  微服务架构下的 API 测试挑战
    •  基于消费者契约的 API 测试
    •  基于契约的 Mock Service 实现 API 测试依赖解耦
    •  基于消费者契约的契约捕获 – 基于 Gateway 的方法
    •  基于消费者契约的契约捕获 – 基于 Splunk 的方法
    •  Demo 分享:Spring Cloud Contract 实例

    API 自动化 测试中测试数据难题的解决思路(1H)


    •  测试中数据的复杂性与难点
    •  基于实时数据创建的测试数据准备策略
    •  基于 Out-of-box 的测试数据准备策略
    •  测试数据准备工具的最佳实践
    o  测试数据准备 V1.0 时代
    o  测试数据准备 V2.0 时代
    o  测试数据准备 V3.0 时代
    •  Test Data Service 的架构设计与实现
    •  数据准备的创新设计
    o  引入 Test Data Core Service 和 Recipe
    o  引入 Data Quantity / Quality 管理
    o  引入 Unified Controller 接入不同 Test Data Tool
    •  实际案例分享:全球大型电商网站测试数据的最佳实践

    测试执行环境的设计与最佳实践(1H)


    •  早期的测试执行环境
    •  基于 Jenkins 触发测试执行
    •  引入 Test Runner / Test Execution System
    •  CI/CD 集成的设计与最佳实践
    •  Selenium Grid 简介与工程应用
    •  基于 Selenium Grid 提高测试并行执行能力
    •  基于 Jenkins Cluster 提高测试并行执行能力
    •  基于 Docker 实现 Selenium Grid 的动态扩展与收缩
    •  基于 Docker 实现 Jenkins Cluster 的动态扩展与收缩
    •  引入 Test Report Service 生成各种测试报告

    测试报告平台的设计与最佳实践(0.5H)


    •  典型的 Test Report Platform 架构
    •  高扩展的 Test Report Service
    •  引入 Story Board Test Report
    •  Full Trace Test Report 设计与实现
    •  引入 Multi-Site Comparison Report 提高 LQA 测试效率
    •  引入 Test Analysis Service 提高 Defect 分类效率
    API  性能测试基础 (1H)•  不同视角的软件性能与性能指标解读
    •  性能测试的基本方法与应用领域
    •  后端性能测试工具原理与行业常用工具简介
    •  前端性能测试工具原理与行业常用工具简介
    •  基于 LoadRunner 实现企业级服务器端性能测试的实践
    •  基于 JMeter 实现企业级服务器端性能测试的实践

    代码级自动测试的最佳实践(1H )


    •  代码的基本特征
    •  代码缺陷产生的原因
    •  代码错误的分类
    •  代码级测试方法的分类
    •  完备代码级测试用例的设计
    •  代码测试覆盖率的衡量
    •  代码测试覆盖率的实现原理
    •  探讨覆盖率的局限性
    •  典型代码错误分析