ITest:京东数科接口自动化测试实践

导读:你是否为每天“点点点”的工作而感到索然无味?你是否苦于没有合适的工具而对复杂的测试任务望而却步?频繁变动的接口,重复的功能测试,你,疲惫么?京东数科平台开发团队基于日常接口测试经验,开发了接口测试平台——ITest。通过此平台让研发流程更高效,让测试回归测试本身,做适配数科场景的通用接口测试平台。本文将从需求背景、平台特性、架构设计、未来规划几方面详细阐述ITest助力接口自动化测试在京东数科的最佳实践与探索。

一、需求背景

接口测试位于测试金字塔的中间层,与业务关联度较高,测试及运行成本适中,同时能够覆盖到端对端测试所不能覆盖的并发,安全等,在测试过程中占据重要地位。

接口自动化测试因其能够降低回归成本,提高回归效率,在回归测试及冒烟测试阶段应用较为广泛。但面对日益复杂的软件设计,做好接口自动化工作并非易事,在此针对其中两个痛点进行阐述:

1、复杂场景的接口自动化编码耗时多,接口测试工具无法满足个性化需求

自动化测试能够稳定执行的前提是,单个测试用例必须能够重复成功运行。这意味着完整的自动化用例中必须包含测试数据准备,测试调用,数据校验及数据清理工作等。

在应用逐渐微服务化的今天,A服务接口的数据准备工作可能会依赖多个B服务的接口,接口测试用例的设计本身对于测试同学的业务能力就是不小的挑战,要完成高质量的稳定可重复运行的自动化用例的编码,更是一件耗时的事情。

而目前通用的接口测试工具能解决的多是通用性的需求,当用户的接口请求中包含自定义算法,加解密信息等情况时,接口测试工具无法给予友好的支持。

2、团队协作不易,开发和测试对齐用例有沟通成本

在自动化编码的过程中,测试代码维护在代码仓库中,测试用例的管理也依赖于代码仓库。项目中不同模块的测试情况没有一个总体的入口,较难对测试的情况进行度量和总体评估,不同模块间的用例复用也变得比较困难。

同时因开发同学对测试情况了解不足,在冒烟阶段,bug验证及测试回归阶段,往往需要测试和开发同学对代码仓库中的用例进行对齐,有一定的沟通成本。

为提高测试效率,简化沟通成本,让测试同学专注于测试策略选择,测试用例设计、codeReview等更重要的工作,笔者所在团队研发了接口自动化测试平台ITest, 致力于提供简易、灵活,通用的接口自动化测试服务。

二、ITest特性

1、灵活的用例组织,提高测试效率

  • 简洁的用例配置视图,提供多协议支持(http, jsf, dubbo, jdbc 等)

ITest提供了简洁的可视化配置页面,用户通过对关键接口信息的配置、断言项的选择及预期结果配置即可完成单个接口测试用例的组织。目前平台可支持http, jsf, dubbo, jdbc 等常用协议类的接口用例配置。

在这里插入图片描述

图1 jdbc协议测试步骤配置

  • 通用的用例组织方式,可将测试结果特定信息提取为变量,在测试上下文中传递

ITest平台将仅包含单个接口信息的测试形式定义为测试步骤,而将以before - test -after 这种通用方式组织的测试形式定义为测试用例。测试用例中的 before,after 可选择多种协议类型的测试步骤,亦可选择测试用例。通过这种方式来灵活组织单一接口用例和复杂场景用例,同时实现步骤和用例的复用。同一用例范围内可支持不同测试步骤间变量的相互应用,同时支持将测试过程中测试步骤的关键结果信息提取为变量,在整个用例上下文中传递。

在这里插入图片描述

图2 测试用例编辑页面

  • 用例与数据分离

在这里插入图片描述

图3 用例参数化配置
  • 内嵌常用的函数(时间戳,随机数,求和,常用加解密算法等)
    在这里插入图片描述
图4 常用函数支持

2、便利的项目协作&管理,简化沟通流程

  • 项目空间内用例共享,利于项目内用例复用和对齐
  • 项目域内测试执行计划灵活编排

在这里插入图片描述

图5 测试计划编排示意

  • 项目域管理多组测试计划,用于不同迭代及测试目标

在这里插入图片描述

图6 测试工程详情视图

  • 测试计划执行情况可追溯,提供历史测试报告及执行详情

在这里插入图片描述

图7 测试报告概览

3、多维度运行支持,提高测试运行稳定性

  • 用例在线快速调试
  • 测试计划执行,支持定时执行,批量执行等
  • 任务运行状态通知

4、持续集成

  • 与JCI & JAT 深度合作,嵌入JCI CI&CD流水线
  • 开放API,满足业务线多样化的CI&CD需求

在这里插入图片描述

图8 与通用接口测试工具功能对比

三、ITest架构设计


1、核心概念

测试步骤,测试用例及测试计划是ITest接口自动化平台的核心概念。其中,测试步骤和测试用例是两个描述不同粒度测试行为的单位,测试步骤定义了单个接口测试行为,测试用例则可描述多个接口测试行为。测试用例可嵌套测试用例和测试步骤,满足复杂测试场景的编排需求。

在这里插入图片描述

图9 测试步骤,测试用例及参数化关系

测试计划是多组测试步骤及测试用例的有序集合,beforeGlobal和afterGlobal 中的用例是整个计划的前置用例和后置用例,beforeGlobal用例会先于整个测试计划内其他用例执行,若执行失败,则直接跳过该测试计划剩余用例。

测试计划可包含多个group,同一group中用例可共享执行上下文。在group中可定义beforeGroup 和afterGroup用例,做为group 内的前置用例和后置用例。beforeGroup用例若执行失败,则直接跳过该group 中剩余用例。不同group间用例互不影响,可并行执行。

在这里插入图片描述

图 10 测试计划组成示意

2、总体架构及模板简介


在这里插入图片描述

图11 ITest 总体架构概览

ITest由管理平台和执行引擎两大模块构成。其中,管理平台是面向用户侧的,负责测试用例的编辑及快速调试,测试计划的编排及调度执行,测试结果展示,消息通知,角色权限管理,项目空间和个人空间用例及计划的维护等工作。执行引擎则负责测试模板的解析及执行工作。执行引擎通过java编写,可以通过ITest Agent,Jenkins,容器云轻松集成,当前默认环境托管在数科容器云lambda上,提供面向数科测试环境及公网的集成测试能力。
在这里插入图片描述

图12 ITest engine 功能逻辑示意

四、ITest未来规划

为更好支持接口自动化测试,ITest 接口自动化测试平台计划在以下方面继续丰富完善功能:

1、丰富测试用例及测试计划的组织结构,在目前顺序组织的基础上,增加分支选择结构和循环结构的组织方式,以应对复杂测试逻辑的需求。

2、增加对脚本语言的支持,同时提供函数的上传与编辑需求,满足用户多样化自定义函数的需求。

3、自动化测试的精准度量:从代码及接口数据层面对测试覆盖率进行度量,进一步结合分布式服务跟踪系统SGM与精准测试的理念,实现源码与用例的双向绑定,继而针对版本迭代的代码变更为用户回归范围提供建议。

互动讨论:你在日常工作中都遇到哪些接口测试的痛点?你觉得一个好的接口自动化测试平台是什么样子的呢?欢迎在留言区分享你的困惑或你的见解。

本文作者:京东数科 郑琳


往期好文推荐:
2020 ICDM 知识图谱竞赛获奖技术方案
一文读懂联邦学习的前世今生(建议收藏)
突破DevOps瓶颈:京东数科自动化测试平台建设实践
京东数科七层负载 | HTTPS硬件加速 (Freescale加速卡篇)
京东数科mPaaS:深度解读京东金融App(Android)的秒开优化实践在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/62499.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Thinkphp5 使用Paypal 支付

1,首先前往官网https://www.paypal.com 创建一个账户,我创建的是一个企业账户 2,前往paypal开发者平台https://developer.paypal.com/ 进行创建应用(使用谷歌自带的翻译,把网页翻译过来....) 3&#xff0c…

OpenCart中PayPal Payments Standard(Paypal 标准支付方式)设置

当你安装Install (Paypal 标准支付方式)PayPal Payments Standard这个支付方式后&#xff0c;编辑Edit它&#xff0c;需要填写许多参数。 本教程<< OpenCart中PayPal Payments Standard(Paypal 标准支付方式)设置 >>由 OpenCart中国网站 制作&#xff0c;转…

paypal国际支付的对接,使用tp5开发paypal

前言 paypal是一种国际支付&#xff0c;并且是一个免费的产品&#xff0c;用户支付并不需要扣除用户消费的手续费&#xff0c;只在商家端扣除的&#xff0c;是一个不错的国际支付 2.下载 直接到github下载php-sdk包&#xff0c;我下载完直接在extend中使用 使用 <?p…

Stripe国际支付平台接入

Stripe 是一家科技公司&#xff0c;致力于为互联网经济打造基础设施。所有公司&#xff0c;无论规模大小&#xff0c;从初创公司到上市企业&#xff0c;都可以用我们的软件来收款和管理他们的线上业务。 引用stripe 公司介绍的一段话&#xff1a;“我们的使命是&#xff1a;增…

TP5集成PayPal支付

项目需要使用到PayPal支付,在网上找了一圈大多写的太过简陋不易看懂,在这里详细记录集成过程方便后期使用. 第一步:下载PayPal-PHP-SDK集成到项目中 最新SDK下载地址: https://github.com/paypal/PayPal-PHP-SDK/releases 官方英文文档:点击打开链接 下载sdk解压,我们需要使用…

Android PayPal支付

最近集成完PayPal支付&#xff0c;记录一下集成注意事项。 一、PayPal版本选择 由于官方不再支持旧版的"PayPal-Android-SDK"&#xff0c;所以决定直接集成"Native Checkout SDK"。 二、集成环境 我是在Macos上开发&#xff0c;之前一直用的Android St…

如何在网站集成Payssion的国外支付方式?

如果你的用户来自海外&#xff0c;那你可能已经接入paypal ,信用卡&#xff0c;西联来收款。 今天我们再介绍另一种收款方式&#xff0c;既能极大的提高你网站的转化率&#xff0c;且在很多国家使用率高于paypal和信用卡。 这就是海外本地支付方式&#xff08;如中国的本地支…

仿牌独立站如何通过PayPal.Me亲友付进行收款

14 5月 先来看一段PP官方对于paypal me的介绍: PayPal.Me是什么 PayPal.Me是一种与您的企业账户相联的个性化链接。您仅需为自己或您的企业创建独特的自定义链接&#xff0c;分享出去即可轻松收款。这意味着&#xff0c;您无需再进行繁琐的银行转账&#xff0c;可轻松享受Pa…

stripe国际支付(对接支付宝、微信)

前言&#xff1a;stripe国际支付现在网上资料很少&#xff0c;且不支持中国&#xff0c;所以如果要用需要去支持的国家注册商户&#xff0c;官网的java demo是用的spark框架&#xff0c;我这里用的spring&#xff0c;验签需要手动验签&#xff0c;且不能用官网的方法 正文&…

再度盈利,搜狐稳了?

2016年在宣布要用3年时间回归互联网舞台中心之后&#xff0c;很长一段时间内张朝阳积极活跃在各种社交媒体上&#xff0c;完全是一派“积极出山”的姿态。而后畅游从美股退市&#xff0c;搜狗“卖身”腾讯&#xff0c;一系列的收缩动作又似乎是在逐渐远离喧嚣。 而在最近三年&a…

宝宝入托,爸妈要避开这5种心态

孩子入托&#xff0c;父母也要做好心理准备&#xff0c;尤其需要避免以下5种常见的、不良心理状态&#xff0c;否则会加重孩子入托的困难度。 01.“生离死别式”的入托状态 即每次送孩子入园&#xff0c;就像一场生离死别。宝宝屋里哭&#xff0c;家长屋外哭&#xff0c;最后多…

小孩从小就学习编程,真的有必要吗?

现今&#xff0c;许多面向儿童的计算机教程和编程语言十分风行&#xff0c;那么是否人人都应该从小学计算机呢&#xff1f; 美国前总统奥巴马曾表示&#xff0c;应该“向每个学生提供动手式的计算机科学和数学课程&#xff0c;从一开始就让他们为将来的工作做好准备。”不久&am…

你喜欢读书,还是听书?

前段时间在我的星球里做了一个小调研&#xff0c;我看一些知识付费的课程素材&#xff0c;我发现我的阅读速度&#xff0c;是播放语音效率的5倍以上&#xff0c;十几分钟的语音课程&#xff0c;我看文字可能两分钟就看完了。但我知道&#xff0c;很多人还是更喜欢聆听。 实际上…

小孩厌学,与其说教,不如和他写个游戏

表弟又闹着不去幼儿园了,我得想个办法让他体会到学习的快乐和意义…… 带娃真难 玩了一个周末,玩舒服了,周一起床后,一听要去学校,就不干了,死活不去,对我们各种撒(威)泼(逼)打(利)滚(诱),实在招架不住,只能妥协了,虽然我可以扛起他,塞进校车里,但受过良好…

20本父母必读的亲子教育书籍

作者注&#xff1a;有位好朋友成为母亲没多久&#xff0c;向我提出一个要求&#xff0c;说不知道怎么教孩子&#xff0c;看我是否能帮助推荐一些这方面的书籍。经过一段时间的搜索和整理&#xff0c;给她整理出一套书单&#xff0c;朋友看了后&#xff0c;说受益匪浅。现在她的…

读懂婴幼儿心理学,不要随便责怪孩子

读懂婴幼儿心理学&#xff0c;不要随便责怪孩子 一、不知道孩子在0-6岁时存在各种敏感期&#xff0c;把孩子在敏感期的表现当成不乖的行为斥责孩子&#xff0c;违背了孩子的天性&#xff0c;造成他的痛苦&#xff0c;留下心理隐患。 孩子在0-6岁时存在各种各样的敏感期&a…

和孩子读书学习的一点心得

这是学习笔记的第 2386篇文章 最近带着孩子做了一些实验和游戏&#xff0c;也总结了几个经验和技巧。 #1 小步迭代&#xff0c;做电路实验 最近带着孩子做电路实验&#xff0c;和上一次玩电路实验已经隔了好一段时间&#xff0c; 孩子应该都基本忘了那种感觉了&#xff0c;所以…

读书会招募 | 一起来读《蛤蟆先生去看心理医生》吧

Hello&#xff0c;大家好&#xff0c; 欢迎来到壹脑云读书圈&#xff0c;我是瘦瘦~ 随着国家经济社会的快速发展&#xff0c;人们的心理问题逐渐增多&#xff0c;新冠疫情也对人们的心理健康带来了或多或少的消极影响。 在此背景下&#xff0c;面对心理咨询&#xff0c;一方…

请告诉孩子:努力读书,是为将来拥有更多选择的权利,而不是被迫谋生

请告诉孩子&#xff1a;努力读书&#xff0c;是为将来拥有更多选择的权利&#xff0c;而不是被迫谋生 01 现在的孩子津津乐道于几个文化不高、但事业有成的名人&#xff0c;用于堵住家长苦口婆心的嘴。 然而事实是&#xff0c;这样的人只是少数&#xff0c;大多数不爱学习的…

经常看书的人和不看书的人有什么区别?

只要能做到高效看经典书籍&#xff0c;对个人提升一定是飞快的&#xff01; 其实能坚持每天看书两小书&#xff08;武侠言情之类的杂书除外&#xff09;&#xff0c;已经超过99%的人了。 99%并不夸张&#xff0c;甚至会更多&#xff0c;我们中的很多人除了读书时期会看书&…