基于规则引擎的闭环质量平台
如果无法正常显示,请先停止浏览器的去广告插件。
1. 蘑菇街
基于规则引擎的闭环质量量平台
2. 01 测试模型分析
02 输⼊入输出与结果校验
03 规则引擎实现
04 监控与报警
05 报表分析
⽬目录
Content
3. 业务模型 vs 测试模型
业务数据->业务系统/模块->业务结果展示
测试数据->被测试系统(业务逻辑)->结果输出/验证
1、根据业务逻辑编写测试⽤用例例
2、准备测试数据
3、结果验证
4. 电商应⽤用典型特点分析
业务特点分析:
1、后端数据流转复杂,涉及招商、促销、引擎等多个系统交互,会影响到价格、
销量量等敏敏感字段的正确性
2、线上数据多样性,包含了了各种正常请求,XSS注⼊入攻击,超⻓长url等
3、⼈人员熟练程度引发的运营排期、招商模版设置错误引发的问题
5. 01
⽬目录
Content
测试模型分析
02 输⼊入输出与结果校验
03 规则引擎实现
04 监控与报警
05 报表分析
6. ⽤用户输⼊入数据类测试数据源
1、搜索类:以线上数据为蓝本,每⽇日清洗线上数据,并根据访问流量量⼤大⼩小配⽐比,
每⽇日⾃自动更更新约4000条新的请求数据
2、搜索类:⾃自定义请求数据:⽤用于特殊场景的验证及线上发布的快速回归
影响正确性的因素
1、引擎同步消息丢失,逻辑变更更
2、应⽤用层组装异常
3、异常输⼊入,如⽤用户构建的xss注⼊入攻击
搜索过程⻚页
搜索结果⻚页
7. 按请求⽐比例例⾃自动清洗数据
8. 固定产品⻚页/模块类测试数据源
1、固定⻚页⾯面透出类:定期刷新⻚页⾯面数据,及时感知到数据变更更,保证能够第⼀一时
间发现⻚页⾯面的异常(如显示不不完整,空窗)等
2、所有引⽤用固定模块的⻚页⾯面数据检查,如⼤大促类模块的⾃自动扫描录⼊入
所有引⽤用某模块的⻚页⾯面列列表
影响正确性的因素:
1、商品排期空窗
2、招商模版选择错误
3、引擎消息同步异常
4、其它因素
固定产品⻚页
9. 固定模块的数据源更更新
10. 结果输出⽚片段
特点:
1、不不同的接⼝口返回数据格式有差异
2、相同的接⼝口不不同版本返回结构与字段有差异
11. 校验规则分类
1、通⽤用型规则
1)title、image、url等关键字段⾮非空
2)price与引擎、DUMP、招商报名的正确性⽐比对
3)销量量、收藏数正确性检查
2、特定业务逻辑的校验
1)搭配列列表商品熟需⼤大于10
2)商品置顶功能⽣生效
3)秒杀商品存在秒杀价字段等
3、如何灵活的校验?
1)能够适配不不同结构的返回结果
2)规则与请求能够匹配
12. 01 测试模型分析
02 输⼊入输出与结果校验
03 规则引擎实现
04 监控与报警
05 报表分析
⽬目录
Content
13. 规则引擎实现:校验规则与请求匹配
14. 规则引擎实现:引擎校验逻辑
基于Groovy的表达式求值
规则验证⼩小⼯工具
15. ret = 0;
retvalue = [];
if (this.result.get("list") != null) {
retvalue = this.result.get("list")
} else if (this.result.get("wall") != null) {
retvalue = this.result.get("wall").get("list")
};
if (retvalue == null) {
retvalue = this.result.get("wall").get("docs")
};
retvalue.each {
if (it.type == 2 && it.clientUrl == null &&
it.link == null) {
ret = 1
}
};
ret == 0
规则配置列列表
16. 某业务失败原因分维度统计
业务标示维度的错误统计
错误类型维度的统计
17. 01 测试模型分析
02 输⼊入输出与结果校验
03 规则引擎实现
04 监控与报警
⽬目录
Content
05
报表分析
18. 异常数据监控/报警
⻚页⾯面数据为空
价格/折扣为0
IM/短信报警
19. 上下游链路路监控/报警
业务端/引擎/dump异常报表
报警信息
20. 01 测试模型分析
02 输⼊入输出与结果校验
03 规则引擎实现
04 监控与报警
05 报表分析
⽬目录
Content
21. 各维度分析报表
性能趋势
线上回放数据⾛走势分析(每⽇日更更新)
耗时排名与分析
22. 谢
聆
谢
听