为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

API测试在智能化测试时代的探索与实践

2020-01-12 21页 ppt 3MB 5阅读

用户头像 个人认证

IT人

暂无简介

举报
API测试在智能化测试时代的探索与实践API测试在智能化测试时代的探索与实践1百度API测试平台发展背景2ITP通用接口测试服务摘要3测试智能化实践及收益4总结与思考ITEST2011:Python开发代码测试框架,用于功能测试自动化书写,环境准备、Mock及测试执行广泛应用于商业平台检索端及大搜索等产品Robot+2012:Java开发代码测试框架,配置化管理用例,Junit驱动测试执行曾广泛应用于商业平台业务端产品业务线自建平台XTS2014:支持场景单一、各异公共问题被重复解决易用性和使用效率低资源占用多技术探索难以落地2015:基于Robot升级,关键字封...
API测试在智能化测试时代的探索与实践
API测试在智能化测试时代的探索与实践1百度API测试平台发展背景2ITP通用接口测试服务摘要3测试智能化实践及收益4与思考ITEST2011:Python开发代码测试框架,用于功能测试自动化书写,环境准备、Mock及测试执行广泛应用于商业平台检索端及大搜索等产品Robot+2012:Java开发代码测试框架,配置化管理用例,Junit驱动测试执行曾广泛应用于商业平台业务端产品业务线自建平台XTS2014:支持场景单一、各异公共问题被重复解决易用性和使用效率低资源占用多技术探索难以落地2015:基于Robot升级,关键字封装广泛用于手百等用户产品测试,后续融入ITP中ITP2015:基于ITEST底层,集合各产品测试规范,可视化用例开发与执行平台12万积累用例10万次日均测试量43覆盖部门205覆盖产品百度API测试平台–从百花齐放走向归一ITP通用接口测试服务ITP通用接口测试服务-能力概览HTTP/Socket/JsonRpc/Stargate/Protobuf/Mcpack/Dubbo…XAPI测试测试类型在线IDE浏览器插件序列测试Diff测试原子操作APIMysqlESRedisShell参数传递特性支持扩展函数数据驱动质量评估度量驱动行为分析用例检测登录管理连接池管理序列化协议传输协议服务总线寻址API入口MongoITP通用接口测试服务–用例组织与编写用例树:允许最小子目录粒度并发执行,支持单一环境测试及多环境Diff测试Operation:定义具体的操作,包括API请求,Mysql、Redis、ES、Mongo访问,执行远程机器命令参数传递:支持Setup、Teardown及同一个Case内所有操作间传递数据${操作名.response.a.b[x]}全局参数:支持按用例树目录的多层级参数配置,可使用传递参数和扩展函数扩展函数:支持通用及产品线自定义扩展函数,函数内可引用请求相关参数,可与传递参数、其他函数嵌套使用${method(arg1,arg2…)}数据驱动:替换参数占位符,如$[abc],设置多组执行数据,实现用例的数据驱动执行复制与引用:允许从已有请求复制允许从模版复制或引用Step:用于长流程时,组织一组有业务意义的组合版本控制:支持用例的多版本控制,拉取、合入等ITP通用接口测试服务–用例执行计划计划配置:包括环境信息、并发配置、重试、用例筛选、用例集合等配置版本管理:选择对应的执行版本ITP通用接口测试服务–检测与度量用例检测:支持通用规则的检测和自动修复基本统计能力评估ITP通用接口测试服务-部署结构Web-IDEWeb-IDE分发器分发器Web-IDE执行器B执行器C执行器A执行器B执行器C执行器A机房A机房B机房C离线–执行包DataioDataio业务DB日志内存数据库Web执行器多租户,根据实际需要上线产品线执行器ZK控制模块连接,实现无状态节点Admin-Monitor用于私有化项目测试1.节点在线情况2.可用资源情况,用于动态调度3.异常恢复内存数据库ThreadGroup测试智能化实践及收益智能化测试时代的新挑战–极致的成本与效率现状:稳定性、效果损失。激增的用例数,维护不及时,都带来流水线的稳定性问题,并进而导致效果可信的问题,形成恶性循环现状:发布周期:周期和质量保障手段是矛盾双方;大批量用例的执行,在流水线中的时间占比越来越高业务诉求现状:保证高覆盖、高质量用例的前提下,用例书写和维护成本变得不可接受,自动化『设计成本』与『书写成本』,占用QA过多人力,20%~50%高质量高效率低成本智能化实践–用例书写效率提升API模版1 参数类型与约束规则识别识别器参数组合计算Case数据逆向生成参数流量聚类参数对象组合信息、参数约束输入:参数约束输入:前置的参数组合23输入:生成数据准备API信息识别识别访问地址等基本信息识别参数类型,特别是枚举类型的识别,寻找可能的取值识别参数的分组信息实时同步与变更提醒用例的生成计算最大入参覆盖的用例组合改进:计算过程中,考虑日志中聚类得到的参数组合改进:计算过程中,考虑参数分组,避免生成大量无业务意义的参数组合SetUp&TearDown生成识别Restful接口中的Add/Delete操作,自动生成数据准备基于SQL逆向生成,生成数据准备智能化实践–用例书写效率提升–算法日志归一后日志约束规则Top结果集-TT组合权重分组A权重分组B权重分组C权重权重信息预置组合分组APSSTt->Ts-At与Ts已有解均不重叠(回溯法)补全Ts-A,未覆盖的两两组合(贪心)分组B分组C加入初始Ts-ATT-A->Ts-A初始化解空间Ts-A从Ts-A中去除TT-A结果集TT+Ts单原子组合Ts树状组织数组打平值替换20个接口原生PSST改进算法分支覆盖57%55%用例量~30~15缺点1.难以从业务理解2.用例多一定覆盖损失,但可接受用例代码映射数据更新生命周期运转智能化实践–用例执行选择基准用例库用例库C’用例库C’’执行用例集合用例相似度精简用例生命周期管理1基于代码diff用例筛选新增用例准入23代码变更相关用例✕去除不稳定的用例✕去除覆盖重复的用例✕过滤不规范用例映射关系入库智能化实践–用例选择执行-生命周期NewStableUnstableDeath持续失败一次失败执行准入多次成功自动检测用例生命周期:准入智能化实践–用例选择执行-代码与用例关系任务控制服务ITPKirin算子被测服务覆盖率稳定性算力海川iCode(Git)exec文件1)触发收集单个用例覆盖率数据2)向被测环境发请求3)生成单个文件覆盖率中间文件4)获取与被测环境对应代码版本5)离线并行生成覆盖率文件6)上传到HDFS7)向麒麟提交计算任务8)获取覆盖文件后,提交到川平台计算去重HDFS执行时间实现中智能策略中心覆盖率文件用例与覆盖率对应关系Setup校验点请求Teardown智能化实践–用例执行选择–CI流程变化RDiCode(GIT)CI脚本Server端报告ITP计划全量用例用例/代码映射库Agile插件关联用例集合ITP计划ITP_DB变更代码commitId&主干最新commitIdcommitId客户端修改计划并触发应用生命周期获取用例集合生命周期管理用例相似度精简映射关系生成过滤筛选后集合中重复和不稳定用例引入用例智能化原有形成用例侧生态闭环与构建系统用例生态闭环用例相似度精简自动运转用例生命周期自运转用例和代码映射入库闭环,为基于代码变更筛选不断积累数据,也为精准测试不断提供基础数据可扩展性强策略与框架侧解耦,具备较强的可扩展性与构建系统无感知衔接感知衔接智能化实践–用例执行选择–收益效果稳定性从Q2初60%提升到80+%更少的时间投入,更多召回智能化实践–流程类测试优化转换为有向图用例信息深度遍历获取路径相似操作以队列形式附加保存,并记录与后置请求的对应关系可优化建议(居多)自动优化(实现中)直接优化执行顺序前置操作完全一致前置为写、后置为读操作总结与展望用例生成用例执行参数生成:依托算法,和信息补充,生成覆盖全面,具有业务意义的入参组合断言生成:空缺,是否可以基于项目历史数据,生成可能的断言数据准备:1.生成前置请求模版2.Sql逆向生成寻找稳定、高质量、无重复的用例寻找紧与本次变更相关的用例进行中:结合静态调用关系,发现Dom类语言变更与用例的关系流程类测试执行路径去重与优化
/
本文档为【API测试在智能化测试时代的探索与实践】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索