导语
腾讯WeTest平台在项目测试过程中,为企业及开发者提供了很多便利,帮助研发团队快速发现产品潜在问题。接下来,本文将分享一些使用WeTest进行测试提效的小经验,希望能帮到大家。本文作者是腾讯IEG增长协同部测试开发工程师连凌淦,拥有多年系统测试经验,在自动化、全链路压测等专项测试领域都有一定的经验。
01
自动化兼容测试
UI自动化是提高测试效率的一个重要手段,像poco、appium都是常用自动化框架,相关资料都很多,这里就先不展开讲,主要分享一些实操过程可能会遇到的问题。
每次自动化兼容测试结束后,WeTest平台会返回一份对应的测试报告,涵盖测试过程中的详细信息,如设备日志、截图、性能数据等,用户可以做进一步的结果分析。概览数据涵盖本次设备维度的测试结果,包括通过的设备数量、未通过的设备数量等。
设备维度未通过的定义为发生兼容性问题,如Crash、ANR等。有时在测试过程中,脚本可能未执行完毕,最终也会判定为通过,属于假通过的情况,影响最终的统计结果。
每次提交兼容性测试的机型都是几十上百台,对所有通过的机型再一个个打开校验,时间成本太高,那么有什么方案能帮助我们快速找出来未真正执行脚本的设备呢?
基于一个不太严谨的前提假设,同一个UI自动化脚本执行,理论上全流程时间在不同机型上相近的(如果有wait_until_something_appear这样的操作,操作时长就会因机型产生差别),而WeTest截屏的时间间隔基本固定,大致可以认为每个机型完整执行过程产生的截图数量波动较小,我们只需要对偏离较大的测试通过用例进行检查。
使用poco进行自动化测试过程中,有时候会发现airtest可以定位到的节点,执行过程却报了node not found的错误,这是由于poco的ui树未及时刷新导致的,建议适当增加sleep间隔,等待ui节点树刷新。
部分机型弹窗也可能会导致一部分假通过问题,所以提交特定机型测试,并且测试app有权限申请的,要关注下是否会有权限弹窗。由于弹窗没有id可以快速定位,这里采用了轮询节点的方式,在启动测试用例之前,通过轮询ui节点以及关键字匹配“允许”或者“拒绝”,找到对应的元素并点击。
02
日志测试自动化
日志上报是产品数据分析的基石,产品运行过程会在非常多的节点上报信息,每次逐条检查确认是个费时费力的过程,无论是从上报链路检查还是从落库数据检查,手工操作、查验结果都是一个繁复的工作,且容易产生遗漏。因此,我们将UI自动化功能测试与日志测试相结合,基于蓝盾流水线和WeTest,搭建了一个日志自动化测试模块。
因为打点日志上报的量较大,我们需要精准地抓取本次操作产生的日志,并作为关键字到db进行搜索。这里我们采用打本地文件的方式,保存执行过程的状态以及用于定位本次搜索的关键字,用于后续的操作校验以及搜索。
如何把自动化执行过程的数据传递给校验模块,考虑过以下几种方案:
1,通过mq(redis、kafka等),实现数据传输到查询校验模块;
2,另起服务接收数据,通过接口调用传递数据;
3,将校验模块耦合到日志测试脚本;
4,本地日志记录,通过log文件传递信息。
基于不同功能模块解耦维护,以及开发成本上的考虑,最终我们选择了最原始的文件存储形式,这种方式也便于问题查证的时候,能从WeTest找到关键信息。WeTest兼容性测试支持把文件复制到开发机,在endTest.sh 文件中加上:
cp XXX.log $UPLOADDIR/
即可配合流水线操作。
03
数据驱动提高覆盖率
全量提交测试会导致任务周期久,并且公有云设备不可避免会存在等待时间,每次全量提交也可能给产品带来额外的测试成本。
我们需要思考,每增加一个测试机型,能给我们的流量带来多大的覆盖?哪些机型的占比更高,更加重要?现有的WeTest测试机型库,是否满足我们自己产品的机型覆盖呢?
那么,我们能否通过现网的用户分布,叠加一些机型、系统分布条件,来进行更加精准的兼容性测试呢?
首先,腾讯WeTest平台上的兼容性机型覆盖了市场的主流top机型,但Android系统的机型长尾效应特别大,产品面对的用户收入,决定了其所使用的机型,为此,通过打点上报数据,获得了我们产品的用户机型流量分布图,与现有的外网top500的benchmark 机型进行了比较。
利用上述数据,我们跟WeTest的机型按照产品流量top50、100、300、500做了一个交集,得到下面的占比图。
有了上述的机型数据,测试过程中可以进行更加精细的测试验证:
1,兼容性测试补齐产品流量中WeTest现有机型,提高兼容性测试覆盖率。
2,不同的测试场景,选用不同测试机型组,缩小测试范围,更快获得结果。
3,可针对性购买机型,补齐少数WeTest平台所没有的机型,提高测试过程的用户机型覆盖。
以上,是在产品测试中使用WeTest提高测试效率、覆盖率的小小实践,欢迎大家在评论区留言探讨。
如果您有业务需求,欢迎前来咨询
客服电话:0755-86013388-22126
客服QQ:2746728701
工作时间(周一至周五9:30-18:30)
关于腾讯WeTest
腾讯WeTest是由腾讯官方推出的一站式品质开放平台。十余年品质管理经验,致力于质量标准建设、产品质量提升。腾讯WeTest为移动开发者提供兼容性测试、云真机、性能测试、安全防护等优秀研发工具,为百余行业提供解决方案,覆盖产品在研发、运营各阶段的测试需求,历经千款产品磨砺。金牌专家团队,通过5大维度,41项指标,360度保障您的产品质量。