大疆创新-互联网事业部

基于 HttpRunner 构建完整的自动化测试体系

公司(业务)介绍

DJI 大疆创新致力于持续推动人类进步,自 2006 年成立以来,在无人机、手持影像、机器人教育及更多前沿创新领域不断革新技术产品与解决方案,重塑人们的生产和生活方式。DJI 大疆创新与全球合作伙伴携手开拓空间智能时代,让科技之美超越想象。

案例提供人:李隆,原大疆互联网事业部测试开发 leader(2016~2019)

为什么选择 HttpRunner?

大疆在高速发展的过程中,业务和人员都处于快速增长阶段。如何「低成本」地满足众多项目普遍存在的接口自动化测试、性能测试、持续集成、线上监控等需求,这对质量团队带来了非常大的挑战。

在 HttpRunner 之前,团队有使用过 Postman、Python Requests、pytest、Locust、Jenkins 等工具,但效果并不好。

主要的问题在于:

  • 接口测试、性能测试、线上监控使用的工具相互独立,数据不通且存在大量的重复投入的问题
  • 测试脚本形式风格迥异,团队协作困难,维护成本高昂

而 HttpRunner 恰好非常完美地解决了这些问题。相比于其它测试工具,HttpRunner 最大的不同在于如下几点:

  • 一体化解决方案:一套脚本可同时支持接口自动化测试、性能测试、线上监控等多维度需求,投入产出比极高
  • 约定大于配置:测试用例是标准结构化的,格式统一,方便协作和维护;同时也支持与 HAR/Postman/Swagger/Curl/JMeter 等工具对接,轻松实现用例生成和转换
  • 高可扩展性:具有很高的可扩展性和二次开发能力,可以很方便地集成到各种测试平台
  • 融入最佳工程实践:不仅仅是一款测试工具,在功能中融入最佳工程实践,极大地提升了团队的整体效率

HttpRunner 的使用情况

在 HttpRunner 的基础上,我们建设了一整套的自动化测试体系,包括功能测试用例管理平台、接口自动化测试平台、性能测试平台、持续集成、测试数据平台等。

核心亮点包括:

  • 覆盖支撑了 10+ 业务线的项目,自动化测试用例总数 3000+
  • 打通了功能测试用例管理平台(TestRail)和接口自动化测试平台,提升了回归测试效率
  • 打通了接口测试平台、性能测试平台和测试数据生成服务,实现了测试用例和测试数据的复用
  • 性能测试平台基于 HttpRunner 的底层能力,结合 PID 自动控制算法实现了智能加压的高级特性

详细的逻辑框架如下图所示:

在 2018 年的 MTSC 大会上,我们也分享了 HttpRunner 在大疆内部的实践经验,收获了非常多的好评,并被评选为服务端测试专场 11 个议题中的最佳议题

PPT 链接:大疆互联网的一站式自动化测试解决方案(基于HttpRunner)

些许展望

基于 HttpRunner 的一体化测试平台从 2018 年建成以来,一直持续支撑着大疆互联网事业部各个业务线的自动化测试工作。即使在我从大疆离职 3 年后的今天,平台仍然还在维护使用。

前几天跟还在大疆的前同事收集了下反馈,当前平台主要存在的问题主要有 2 个:

  • 平台底层还基于 HttpRunner v2.x 版本,想升级到最新版本遇到些问题
  • 平台无法支持 WebSocket 协议的测试需求

所幸这都不是啥大问题,平台只需要针对 HttpRunner v4.x 做少量的适配改造,即可获得 HttpRunner v4.x 更多的网络协议支持和更强的性能发压能力。