ByQI服务端接口测试智能解决方案
ByQI是Quality Lab团队开发的智能化、无人值守全自动化服务端接口验证工具。可提供:针对各业务线通用的基础接口全自动化检测能力 + 业务线定制测试增强能力。
一、背景
在当前软件研发流程中,接口测试是质量保障的重要一环,业界主要通过接口测试框架或diff平台来实现自动化,前者实现了用例的执行能力,后者在原始流量回放的基础上实现了的diff断言能力。
但是,在测试用例生成、用例执行、结果断言、问题定位等高人力成本的环节,尚未有较完整的解决方案或能力的打通融合,这也是质量团队人效提升的关键瓶颈。
ByQI 的诞生,就是期望以智能化手段解决传统服务端接口测试所面临的如下问题:
-
手工构造 用例覆盖度低 ,丰富度 受限于经验值
-
人力成本及维护成本高 ,测试流程中需要大量的人工介入
-
数据消费质量差 :测试与研发流程未形成闭环, RD问题定位困难
-
实际测试中,有 大量有价值数据未得到充分挖掘利用
二、目标
三、设计方案
3.1 整体流程
header/query/body
部分的
cookie
等用户身份字段进行替换,避免干扰真实用户;同时对电话、住址等隐私信息识别后进行打码,保护隐私数据。
正向用例:对已知入参通过算法进行组合以验证代码边界等逻辑问题 负向用例:通过改变入参类型等方法验证代码的异常处理能力和鲁棒性等
3.2 能力矩阵
3.3 核心痛点及解决方案
(一) 非幂等接口测试
-
基于链路拓扑识别写操作的非幂等接口 -
针对非幂等接口录制入流量与出流量生成匹配的mock数据 -
用例执行时根据链路拓扑识别写操作进行mock
(二) 场景化测试
请求源IP、q
uery
、
body
等参数,通过排序、构建链接关系等方法,绘出一个有向无环图(Directed Acyclic Graph);
-
执行前: -
获取测试环境有效用户 cookie/session
等 -
创建直播间
-
执行场景化用例,如用户进入、送礼物、连麦等
-
执行后: -
数据清理、关闭直播间
(三) 用例生成能力
关键名词说明:PSM(服务唯一标识,下同)
-
流量录制:从实验选定的PSM中录制线上流量(15000条/PSM),将每条流量的Request和Response按键对存储。
-
筛选参数:对于同一个PSM中的每个接口,过滤不相关参数,汇总每个参数的可选值。
-
用例生成策略 -
RT(随机生成):对于每个接口的每个参数,分别从可选值中随机选取,生成一条随机用例。 -
ART(自适应随机生成):自适应随机生成方法是基于随机生成的,主要是通过定义用例间距离metrics,使随机生成的用例之间的离散程度最大化,从而实现更好的覆盖效果。 -
CIT(组合生成):对于所有参数的所有可选值,通过two-pairwise组合的方法生成用例。
(四) 断言准确性
-
接口层面 -
首先对 状态码
、逻辑码
进行初步判断 -
支持 schema
结构断言、值断言以及自定义精准值断言能力
-
监控层面 -
抓取调用链路上下游日志 -
分析服务监控指标
(五) 功能+性能验收
四、ByQI实践案例
五、未来规划
-
更快:主要在研发效率的提升和问题发现的时效性 -
更准确:依托算法能力,强化场景化测试能力,以及结果断言的智能化 -
更强大:在现有HTTP及RPC(thrift)接口验证的基础上,增加对其他协议的兼容和覆盖;并探索问题定位及自动修复能力。