【ArchSummit架构师峰会】探讨数据与人工智能相互驱动的关系>>> 了解详情
写点什么

敏捷模式下携程的接口自动化平台演变

  • 2020-05-27
  • 本文字数:2255 字

    阅读完需:约 7 分钟

敏捷模式下携程的接口自动化平台演变

一、引言

现有的接口自动化测试实现,多以使用代码工程项目的形式,借助第三方软件测试编程框架,手工编写自动化测试脚本,并采用其它的第三方开源调度平台(如 Jenkins)实现自动化任务的调度与执行。



这样的传统做法,首先是自动化测试用例数据管理与维护不方便,数据检索、统计与报告不便捷。其次,对于从事自动化测试工作的人员技术要求也相对较高,特别不利于在原来以手工测试为主的团队快速推进自动化工作。


再次,各类自动化代码工程项目,也增加了开发与测试人员的代码维护难度,冗余代码较多,且与公司内其它系统间的依赖交互需要在各自动化项目中进行不同程度的实现,增加了自动化测试人员的代码编写复杂性。


同时,公司对技术研发团队的优化,新的敏捷开发实践,在去测试化的工作团队中,几乎不再有专门从事自动化测试代码编写与维护的人员,而由开发人员与极少的测试人员共同承担测试工作。再继续维护代码工程类的自动化脚本项目,对所有研发人员来说都是一项繁琐而复杂的工作,不利于自动化测试工作的长期开展。


二、解决方案

如何克服上述现有技术实现方式对于软件开发测试团队带来的困扰?


将自动化测试工作进行平台化成为最优的解决方案,公司过去有过类似的实践,但仍然存在配置过于复杂等问题。因此,我们急需要提供一种更轻量更简易的自动化测试在线编写与执行的系统及方法。

三、方案的实现要点

1)将接口自动化测试工作移到一个平台化的工具上,实现自动化测试用例的便捷管理、测试执行与报告的简单快速。


2)实现自动化测试用例配置的简易化,实现脚本的在线编写和执行。


3)支持报文即验证点的功能,使测试用例无需脚本或仅需少量脚本。


4)实现自动化用例与 Mock 用例的直接关联,提升 Mock 在自动化中的使用便捷性,提高用例稳定性。


5)支持 AB 实验配置,QConfig 配置,Redis 依赖数据配置等。



6)支持数据库查询与操作,支持获取依赖服务的报文进行验证。


7)支持自动化的持续集成,支持 Pipeline 及代码覆盖率统计等。


8)实现测试设计管理功能,支持测试设计思维导图的导入导出,并与自动化数据关联进行测试执行与统计。


9)支持不同的自动化执行策略,提供对性能测试的支持等。


10)直观的各类自动化测试统计报表,扩展的外部调用 API 等。

四、技术实现

平台系统前端采用当前流行的 Vue 架构实现,后台采用 Java 技术实现,数据存储采用 MongoDB,同时集成与 Mom、Paas、QConfig、Redis、CI、Mock、PTest 等平台交互的功能,测试用例脚本编写采用 JavaScript 等脚本语言。



1)用户在线编写用例使用 JavaScript 脚本,脚本中可使用由平台后台用 Java 实现的方法。


2)测试的执行,由 Java 分布式执行服务完成,由于测试用例使用解释性脚本编写,执行过程无需编译,执行速度快。执行的调度与执行不再依赖任何第三方工具。



3)平台通过与 Mock、QConfig、Redis 等工具对接,实现测试依赖数据的挡板功能,有效的提升测试用例的执行稳定性的同时,使用户不再需要操心与这些工具的交互环节。


4)平台与 CI、Paas 等工具对接,实现由代码 Merge 请求触发应用的自动发布与自动化测试执行,实现代码质量的提前检测。并结合 gitLab 的 Pipeline 功能根据自动化测试等结果规范代码提交行为,提高开发提交的代码质量。



5)通过与性能测试、项目管理等工具对接,同时对外提供扩展 API,可使测试用例、测试结果等数据复用到更多场景。

五、平台易操作性

易操作性对工具的推广和使用至关重要,在平台功能的设计上力求精简有效,降低用户配置的复杂性,使配置过程简单明了。


极其简单的操作流程:[测试设计]> 测试用例配置与编写 > 创建测试套件与测试项目> 配置执行计划 > 测试执行与自动化报告。



操作流程简单说明:


1)测试设计,该步骤为可选步骤,通常是在需要对测试需求进行测试框架设计时使用,采用思维导图的方式输出测试设计结果,可在平台上进行增删改查与导入与导出操作。


2)创建测试用例,配置测试用例,简单的进行服务请求配置与测试验证配置,即可实现一个用例。更详细的配置还可以包括前置服务配置、其它依赖数据配置(如:依赖服务 Mock 配置、AB 实验配置、Redis 数据配置等),测试验证配置中,可分别配置如响应验证报文、SOA 调用验证报文配置等,还可以编写请求格式化与测试验证脚本等,在用例配置过程中,可以随时使用测试用例的试运行功能,即时查看用例的编写是否正确。


3)添加测试套件,对测试用例按所属服务、测试类型、测试级别等进行分类管理与装配。


4)配置测试项目,引用和组装对应测试套件,配置服务测试地址、测试执行计划(含自动发布等)、邮件报告通知等。测试项目是正式执行测试的管理单元。


5)完成以上步骤,即可运行测试项目,查看测试报告、用例执行详情,进行失败用例重试等。

六、小结

接口自动化测试的平台化,对技术研发团队的积极效果在于:


1)提升接口自动化测试工作开展的便捷性,缓解和减轻开发和测试的自动化测试脚本编写与维护工作,降低手工测试的人力和时间成本投入。


编写单个测试用例的时间平均缩短 60%以上,测试执行秒/分钟级出报告,测试项目执行时间平均缩短 90%以上。


上线时间应用服务用例项目执行次数
9个月239798419524133962


2)大幅降低了对自动化测试人员的技术要求,方便团队快速实现和提升接口自动化测试的覆盖率,提高自动化测试在业务需求研发过程中的占比,得以更大程度地发挥其应有的重要作用。


作者介绍


Tony,携程高级测试开发经理,负责自动化测试框架及平台类工具开发。


本文转载自公众号携程技术(ID:ctriptech)。


原文链接


https://mp.weixin.qq.com/s/jQfA5RkNDtUcYhvWzCjOXQ


2020-05-27 14:061689

评论

发布
暂无评论
发现更多内容

打通商城与ERP系统,实现物料自动同步

聚道云软件连接器

案例分享

从源码分析 MySQL 身份验证插件的实现细节

快乐非自愿限量之名

MySQL 数据库 sql 源码

程序员一定要知道的限流大法:令牌桶算法

不在线第一只蜗牛

程序员 高并发 限流

PullTube for Mac(在线视频下载器)v1.8.5.23中文激活版

iMac小白

Snagit for mac(最强大的屏幕截图软件)v2023.2.6中文版下载

iMac小白

虚幻引擎nDisplay教程:如何同步nDisplay节点与Switchboard + Helix Core

龙智—DevSecOps解决方案

Atlassian版本选择趋势是上云还是本地部署?全面分析两个版本的特性

龙智—DevSecOps解决方案

DevSecOps Atlassian

Alarm Clock Pro for mac(闹钟和时间管理工具) v15.6激活版下载

iMac小白

共话 AI for Science | 中国自然资源航空物探遥感中心于峻川:“AI+遥感”技术地学应用实践与展望

ModelWhale

人工智能 机器学习 深度学习 AI4S

共话 AI for Science | 解放军总医院医学创新研究部刘晓莉:基于数据和知识驱动的临床预测模型的构建

ModelWhale

人工智能 机器学习 深度学习 预测模型 AI4S

提升源代码安全性的C#和Java深度混淆工具——IpaGuard

京东商品详情API实现实时数据获取的Java代码示例

Noah

Mixtral 8X7B MoE模型基于PAI的微调部署实践

阿里云大数据AI技术

海外云手机助力企业拓展海外市场

Ogcloud

云手机 海外云手机

Jenkins入门知识:什么是Jenkins?以及它的历史与发展

龙智—DevSecOps解决方案

永不停止,永远在路上!MIAOYUN 2023年度回顾

MIAOYUN

2023年度回顾 2023年终总结 年度关键词 年度成绩单

如何优雅的对ILogger进行扩展并实现日志分类及追踪

多态丶

netcore 扩展 logger dotnetcore 结构化日志

华为产品创新经验,帮你成为更好的产品创新者

华为云PaaS服务小智

学习 华为云

Boxy SVG for Mac(矢量图编辑器)v4.21.1免激活版

iMac小白

RetsCloud AppLink适用的场景有哪些?

RestCloud

零代码 自动化集成 适用场景

IITO-IPQ6010 WIFI router support-What is the relationship between VAP-AP-STA?

wifi6-yiyi

iiot vap

2023年Gartner® DevOps平台魔力象限发布,Atlassian被评为“领导者”

龙智—DevSecOps解决方案

DevOps

解锁 AI 潜力 | 使用 GreptimeAI 深入观测 OpenAI 行为和用量

Greptime 格睿科技

数据库 LLM LLMOps

软件测试/测试开发/全日制/测试管理丨App 自动化测试的价值与体系

测试人

软件测试

电商新趋势:解析养号的必要性及海外云手机运用攻略

Ogcloud

云手机 海外云手机 跨境电商云手机

铭文 LaunchPad 平台 Solmash 推出早鸟激励计划

长安区块链

Archicad 27 for Mac(3D建模软件)v27.1.1 (4030)激活版

iMac小白

MetaImage for Mac(图像元数据编辑器)v2.6.3中文激活版

iMac小白

Navicat Premium 16 for Mac(数据库管理软件)v16.3.5中文激活版

iMac小白

PaaS服务的零代码开发平台——JNPF

这我可不懂

软件开发 低代码 JNPF

海外直播专线:打通TikTok直播的畅通通道

Ogcloud

海外直播专线 Tik Tok直播 Tik Tok直播网络

敏捷模式下携程的接口自动化平台演变_软件工程_携程技术沙龙_InfoQ精选文章