写点什么

无人驾驶平台,让 IT 没有难做的测试

用户头像
鲸品堂
关注
发布于: 2021 年 04 月 01 日
无人驾驶平台,让IT没有难做的测试


域,追求高准确性、高一致性、高覆盖率、高效率、高可复用性、可持续测试等方面,自动化测试相对于人工测试有绝对的优势。不管是“测试左移”还是“测试右移”的过程中,都赋予了自动化测试很多的应用场景。在测试实践中发展出了非常多优秀的自动化测试工具,很多公司都在真实的测试场景中尝试引入自动化测试工具和方案,自动化测试为提高软件质量贡献了非常大的力量。


有三个场景


场景一:测试主管大明向初入测试行业的 A 同学分配了一项任务:“你去做一下某某项目的自动化测试!”对于不懂自动化测试的 A 同学此时就会思考:“需要选择什么测试工具?学习什么语言?脚本准备的周期会多长……”,一系列的疑问就会出现。可能他会选择 python+selenium、robotframework、uft 等等,但是看到砖头厚的学习书本,他会发现学习成本很高,要达到立即做自动化测试显然做不到。自动化测试面临着学习成本高的问题。


场景二:测试主管大明向从事多年测试的 B 同学分配了一项任务:“你去做一下某某项目的自动化测试!”。对于做过自动化测试的 B 同学,此时就会制定计划、熟悉业务、设计案例、开发案例、执行。一切有条不紊,但是当 B 同学比较忙或不在时,测试主管安排 D 同学接手维护 B 同学的脚本,D 同学就犯难了,他需要投入大量精力去熟悉 B 同学的脚本。自动化测试面临着维护成本高的问题。


场景三:测试主管大明质问做自动化测试的 C 同学:“你的自动化测试脚本运行效率怎么这么慢?”C 同学解释道:“我的脚本没有问题,只因为运行脚本的机器太少了,现在是串行的,不能做到并行执行”。测试主管于是给了他 5 台机器,然后他又把脚本拆成了 5 个,最后做到了并行执行,当然也就是仅仅 5 个并发。自动化测试面临着执行成本高的问题。


在分析测试人员能力时,我们发现大部分测试人员对业务非常熟悉,SQL 能力也很强,但是编程能力很弱,加之一些外部因素(如没有人引导方向、工作很忙没精力等),这会导致他们很容易放弃对自动化测试工具和方法的学习。同时,我们预研了 katalon、selenium、robotframework 等一系列行业自动化测试工具,它们各有优势,但综合起来都存在共性问题:需要掌握至少一门编程语言如 Python,都是单机本地化的工具集,或需要多个工具组合使用,学习成本高。这些都是我们需要解决的最主要难题,我们需要建设让测试人员易掌握的自动化测试工具。



无人驾驶自动化测试平台简介


针对于以上问题,我们思考需要从几个方面着手:去掉编写代码降低使用门槛、清晰易读的用例列表、可维护性高的脚本列表、可并发多人编写脚本、测试执行需要可组合、测试结果实时反馈等。我们融合了各种工具的长处,使用了 katalon recorder(可选,作者:Katalon 公司)、selenium3(作者:Selenium 团队)、ChromeDriver(作者:Google 公司)、GeckoDriver(作者:Mozilla 公司)等开源内容,打造了无人驾驶自动化测试平台(以下简称无人驾驶平台),具备了 WEB/H5 的自动化测试能力,做到了快速掌握易上手、列表清晰易维护、任务并行高效化、远程执行 SaaS 化。


快速掌握易上手


我们参考了 katalon 的方式,使用“命令+平台自动解析”的模式,平台支持了上百种简单的命令,测试人员只需清楚命令的使用,通过命令的组合模拟人的操作,即可实现自动化测试,也兼容了 katalon recorder 插件,可以轻松录制脚本,然后转换到平台执行。同时提供了预置数据、清理数据、数据断言(支持多种数据库的增删改查及数据校验)、if/else、shell 执行等功能的命令,可以应对更多更复杂的场景。一般测试人员掌握平台的使用仅需 2 天。在实际使用过程中,我们最快只需要 2 分钟,即可完成一个登录脚本编排;一般单个脚本的编排时间在 5 分钟~20 分钟。下面举两个例子:


登录被测试系统过程


通过 6 个命令的编排,模拟人登录被测试系统的 6 个动作,实现登录过程。


数据库数据断言的过程


通过 2 个命令的编排,查询数据库获取值和对值进行校验,实现数据库数据断言过程。



列表清晰易维护


无人驾驶平台通过树状列表管理用例,通过表单方式管理脚本步骤,极大地降低了阅读要求和维护门槛,换人接手几乎没有门槛。通过这种模式,也满足了多人在线并行编排脚本,提高了脚本编排效率和协同性。同时提供了脚本重试、脚本放慢、参数化、公共脚本、公共参数等相关配套功能,提高可维护性。在实际使用过程中,一般是几个人一起编排一个项目的脚本;或者由专人负责整个项目脚本编排,然后转交给业务团队维护。


下图是某系统的用例列表和脚本查看示例。



任务并行高效化


无人驾驶平台采用“自主用例组合队列+分布式执行测试”模式,自由组合需要执行的用例为队列,队列采用分布式执行测试,只要被测试系统性能没有瓶颈,就可以自定义并发执行任意数量的用例。也可选择不同的测试执行环境,一份脚本可兼容测试/验收/生产等多套环境的自动化测试。也支持多种浏览器类型、定时任务执行测试。


下图是创建队列和队列列表。



远程执行 SaaS 化


无人驾驶平台是一款提供 SaaS 服务的工具应用,可以接入大量项目,做到一个平台完成所有接入项目的自动化测试,可随时执行,记录日志、截图,自动通知测试结果。


下图是接入的部分项目列表和实时通知。



无人驾驶自动化测试平台实战


无人驾驶平台的低门槛,使得我们全员都能参与到自动化测试,当前已经接入多个项目,每个项目都沉淀了几十或上百个案例,在每日定时回归测试、版本交付回归测试、生产回归测试等发挥着重要的作用,及时发现系统的数据变动、接口变动、页面变动、功能异常、数据入库异常等问题。


湖南采购平台,面向百万级的局方用户群体,率先接入无人驾驶平台,完成了自动化测试建设,覆盖 300+功能点,每日测试环境执行,每次执行在 10 分钟内,提前发现系统 BUG,降低测试成本。



电信集团新销售平台,面向的是全网用户,完成了自动化测试建设,每日执行验收环境回归测试、按版本要求执行灰度和生产的回归测试,覆盖了包括商家门户 WEB(10 个场景 85 个脚本)、管理门户 WEB(14 个场景 97 个脚本)、前端 H5(15 个场景 58 个脚本)三部分,每次执行在 10 分钟内,为版本质量保驾护航,也提高了发布效率。



BSS3.0 账务中心,完成了自动化测试建设,版本发布前执行自动化测试,一份脚本覆盖了新疆账务中心(42 个场景 71 个脚本)、甘肃账务中心(41 个场景 69 个脚本)、重庆账务中心(44 个场景 79 个脚本)三个项目,每次执行在 10 分钟内,保障了版本质量,也明显提高了交付效率。



我们统计了无人驾驶平台与传统自动化测试的相关数据,无人驾驶平台的优势非常明显,对比情况如下:


无人驾驶自动化测试平台思考


首先,对于自动化测试的思考:


自动化测试不是单纯的懂代码就可以做好,需要做好平台的设计,需要综合考虑场景、覆盖范围、复用性、复杂度、数据来源等;


自动化测试投入与产出的比例需要最大化,不做没有目标的自动化测试,不能为了做而做,这种一般不会有结果,它必须要能解决实际问题;


自动化测试需要持续,通过日积月累,从量变到质变。


其次,对于 API 测试建设的思考:


平台已经完全支持 WEB/H5 的自动化测试,我们下一步需要全面的支持 API 的自动化测试,替代常用的 jmeter/postman 等接口测试工具;我们会更进一步支持 WEB/API 混合自动化测试,这是对 WEB 自动化测试的扩充;


平台需要兼容各种接口类型的自动化测试,且易操作、易维护;


在将来,只要将研发完的接口,由测试人员负责添加到平台,做到每日自动执行,提前发现接口问题,测试工作真正介入到编码阶段。


最后,对于无人驾驶平台建设的思考:


需要考虑简易、直接的交互,它应该是工具应用;


需要考虑大量的实际场景,而这些场景应该分解到每一个功能中;


需要考虑抛弃传统模式,更多适用于大部分人。


相信随着自动化测试工作的不断推进与深入,无人驾驶平台会覆盖更多的项目,为提高测试效率、提高版本质量贡献更多的力量。


无人驾驶平台,让 IT 没有难做的测试!

发布于: 2021 年 04 月 01 日阅读数: 97
用户头像

鲸品堂

关注

全球领先的数字化转型专家 2021.03.16 加入

鲸品堂专栏,一方面将浩鲸精品产品背后的领先技术,进行总结沉淀,内外传播,用产品和技术助力通信行业的发展;另一方面发表浩鲸专家观点,品读行业、品读市场、品读趋势,脑力激荡,用远见和创新推动通信行业变革。

评论

发布
暂无评论
无人驾驶平台,让IT没有难做的测试