共计 2780 个字符,预计需要花费 7 分钟才能阅读完成。
HDC 期间可参加老手入驻华为云 Testplan 抽奖流动,流动链接在文末
家喻户晓,软件服务及组件之间的交互次要依赖大量的 API 接口。以华为云 300 多个商用云服务为例,均匀每个服务含 500+ 接口,接口总数高达 10 万 +,接口调用上下文业务场景超乎想像的盘根错节。
如何保障 API 测试场景尽量齐备、不脱漏、不引起重大现网问题?这是以后人们遇到的经典难题,而其中常见的瓶颈次要如下:
- 以后接口测试设计依赖人员教训,测试数据结构伎俩繁多,难以反馈现网实在利用数据分布场景;
- 面对成千上万的 API 接口,可形成上万甚至十几万的操作门路,E2E 场景测试编排工作量微小;
- 现有的 API 接口测试生成工具,根本采纳 Fuzz 测试 + 基于代码笼罩指标疏导的 SBST,或基于现网数据的单接口回放,不感知接口业务上下文,对于多接口性能交互场景,生成有效性较差且效率低。
那么,华为云是如何破解这些问题的呢?
华为云 ATGen,感知 API 接口上下文 , 自主生成 API 全场景测试,改革人机交互模式
ATGen (APITestGenerator) 是一种基于上下文感知(Context-aware)的 API 场景级零代码自主测试生成服务,实现利用 API 场景级测试全自动设计、生成、执行和断定,整个过程无需编写一行代码。
传统的测试设计和执行交互模式,须要人工了解设计文档、编排测试计划、测试自动化开发,这要求参与者熟知产品或服务业务及接口文档,熟练掌握测试技术、测试自动化框架、测试自动化代码编写。现在,在自主设计、自主生成、自主执行、自主断定的 AI 算法加持下,API 场景级测试的人机交互模式已产生了微小的转变。
智能算法加持下 ATGen 人机交互模式
在测试过程中,机器自主解析文档和数据,主动生成 API 场景级操作依赖 ODG(OperationDependencyGraph)图,测试人员只需做适量订正,机器便可自主摸索遍历 ODG 图执行,并同步实现后果的断定和报告的生成,测试人员只需按类批量确认后果。
华为云 ATGen,亮点技术和业务价值
华为云 ATGen 基于正向 API 接口定义文档,主动开掘 API 测试上下文操作依赖图(ODG),摸索遍历 ODG 自主生成 API 测试序列,实时结构并下发 API 测试申请,断定 API 测试响应后果,动静修改 ODG 图,优化下一轮生成。
华为云 ATGen 六大要害个性:
- 反对基于 Rest API 接口定义 Yaml 文档零码全自动智能测试生成;
- 感知 Rest API 接口调用上下文:解析接口定义 Yaml 文档,开掘 API 接口间出参加入参的上下文传参依赖,以及 CRUD 增删改查依赖,生成接口操作序列依赖图 ODG;
- 自主摸索遍历和修改 ODG:摸索遍历 ODG 批量生成测试序列,主动下发执行,根据响应反馈动静修改 ODG 图;
- 13 种接口测试数据生成办法:反对接口上下文主动传参、复用字典取值、enum 值、example 值、example 变异值、边界值、两头值、随机值等 13 种测试数据生成办法;
- 主动开掘生成测试断定点:基于接口定义和状态码生成显性测试断定点;
- 测试后果聚类和批量高效确认:反对依照业务返回码、类似子序列,参数生成类型对测试后果分层聚类,便于测试人员按类别批量确认失败,并一键提单;
* 具体技术细节可参考发表在 ICSE, ASE 的顶会论文【1,2】。
华为云 ATGen 业务价值与利用前景:
- 疾速构建接口和性能品质防护网
对于新成立的产品服务团队,或无专职测试人员的全功能团队,可实现少人参加或无人参加的零代码全自动接口全场景级测试,疾速构建起接口级和性能场景级测试根底品质防护网;
- 低成本、高笼罩
对于有专职测试人员、测试专家、成熟度较高的测试团队,能够极大晋升测试设计效率, 低成本实现更高的测试场景覆盖率和缺点拦挡率;
- 流水线品质门禁加固
可与现有流水线集成,加固现有冒烟测试门禁,进一步拦挡业务逻辑深度缺点;
- 面向接口的全场景全属性测试无码化
能够在 API 失常场景测试根底上实现异样场景(可靠性测试)和并发场景(性能压力模型)的全自动化生成,齐全代替现有接口 fuzz 测试,实现接口全场景测试零代码。
华为云 ATGen 在华为外部已规模部署 30+ 产品服务日常利用,按三个维度来度量业务利用成果:
- 生成有效性
包含接口申请胜利通过率,申请胜利的最长序列长度和长度散布,业务驳回并基线化积淀的用例数等;
- 缺点探测数
缺点拦挡能力,即发现产品服务缺点的问题数及误报率;
- 覆盖率
包含白灰黑盒笼罩,即代码笼罩、接口及参数组合笼罩、业务场景笼罩等。
华为外部三个典型的业务利用场景实际
- 业务利用场景 1
产品状态:存储管理 & 管制服务类云化产品,北向服务化,南向管制嵌入式存储设备
测试团队规模:50+ 人
北向 Restful 接口总数:2300+
利用前现状:团队新成立,不足接口和功能测试自动化防护网
利用模式:从零疾速构建起接口测试和功能测试防护网测试用例
利用成果:共发现 350+ 个接口存在缺点,笼罩 3 大类缺点,API 接口级申请有效性可达 80%+,误报率 10%。
- 业务利用场景 2
产品状态:运营商 & 企业网络保障 & 智能运维类云服务,私有云 / 公有云部署
测试团队规模:50 人
北向 Restful 接口总数:10000+
利用前现状:8000+ 接口 & 性能测试用例
利用模式:对现有测试用例的笼罩加强补充
利用成果:场景测试笼罩晋升 30%,新发现 30+ 深层业务逻辑问题,样例如下:
- 业务利用场景 3
产品状态:XX 工具类云原生服务
测试团队规模:全功能团队,无专职测试
Restful 接口总数:1300+
利用前现状:10000+ 接口测试用例
利用模式:将 ATGen 集成到工具服务 alpha、beta 环境流水线,build 实现及回归测试工作之后主动触发生成工作检测是否有失败接口,作为 alpha、beta 门禁加固
利用成果:补充发现 60+ 个接口缺点,API 接口测试生成有效性可达 82%。
面对云化产品版本的疾速迭代,利用场景的日益丰盛,产品性能渐趋简单,齐全依附人员测试教训来保障品质变得越来越艰难,自主生成全场景功能测试机器人 ATGen 应运而生,可实现低成本、零代码、高笼罩、低误报的 API 全场景测试,继续为开发者提供优质服务。
华为云 ATGen 现已凋谢对外邀测
欢送点击下方预约:
https://survey.huaweicloud.com/survey/#/qtn?id=d80411c370e249…
【1】“MOREST: Model-based RESTful API Testing with Execution Feedback”,ICSE’22,
【2】“Industry practice of automatic RESTful API testing”, ASE’22
抽奖流动:https://bbs.huaweicloud.com/forum/thread-0245123473255323005-1-1.html