0

研效优化实践:WeTest提效测试

 3 months ago
source link: https://segmentfault.com/a/1190000041302126
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is damaged, please click the button below to view the snapshot at that time.

研效优化实践:WeTest提效测试

腾讯WeTest平台在项目测试过程中,为企业及开发者提供了很多便利,帮助发现产品潜在问题。接下来,本文将分享一些使用WeTest进行测试提效的小经验,希望能帮到大家。本文作者是腾讯IEG增长协同部测试开发工程师连凌淦,拥有多年系统测试经验,在自动化、全链路压测等专项测试领域有一定的经验。

1.自动化兼容测试

UI自动化是提高测试效率的一个重要手段,像poco、appium都是常用自动化框架,相关资料都很多,这里就先不展开讲,主要分享一些实操过程可能会遇到的问题。
1.1真通过与假通过
每次自动化兼容测试结束后,WeTest平台会返回一份对应的测试报告,涵盖测试过程中的详细信息,如设备日志、截图、性能数据等,可以做进一步的结果分析。概览数据涵盖本次设备维度的测试结果,包括通过的设备数量、未通过的设备数量等。
设备维度未通过的定义为发生兼容性问题,如Crash、ANR等。有时在测试过程中,脚本可能未执行完毕,最终也会判定为通过,属于假通过的情况,影响最终的统计结果。

每次提交兼容性测试的机型都是几十上百台,对所有通过的机型再一个个打开校验,时间成本太高,那么有什么方案能帮助我们快速找出来未真正执行脚本的设备呢?
基于一个不太严谨的前提假设,同一个UI自动化脚本执行,理论上全流程时间在不同机型上相近的(如果有wait_until_something_appear这样的操作,操作时长就会因机型产生差别),而WeTest截屏的时间间隔基本固定,大致可以认为每个机型完整执行过程产生的截图数量波动较小,我们只需要对偏离较大的测试通过用例进行检查。

1.2.airtest可以访问到节点,脚本执行报poco未检测ui控件节点
使用poco进行自动化测试过程中,有时候会发现airtest可以定位到的节点,执行过程却报了node not found的错误,这是由于poco的ui树未及时刷新导致的,建议适当增加sleep间隔,等待ui节点树刷新。
1.3.部分机型有权限弹窗问题
部分机型弹窗也可能会导致一部分假通过问题,所以提交特定机型测试,并且测试app有权限申请的,要关注下是否会有权限弹窗。由于弹窗没有id可以快速定位,这里采用了轮询节点的方式,在启动测试用例之前,通过轮询ui节点以及关键字匹配“允许”或者“拒绝”,找到对应的元素并点击。

2、日志测试自动化

日志上报是产品数据分析的基石,产品运行过程会在非常多的节点上报信息,每次逐条检查确认是个费时费力的过程,无论是从上报链路检查还是从落库数据检查,手工操作、查验结果都是一个繁复的工作,且容易产生遗漏。因此,我们将UI自动化功能测试与日志测试相结合,基于蓝盾流水线和WeTest,搭建了一个日志自动化测试模块。

因为打点日志上报的量较大,我们需要精准地抓取本次操作产生的日志,并作为关键字到db进行搜索。这里我们采用打本地文件的方式,保存执行过程的状态以及用于定位本次搜索的关键字,用于后续的操作校验以及搜索。
如何把自动化执行过程的数据传递给校验模块,考虑过下面几种方案:
1、 通过mq(redis、kafka等),实现数据传输到查询校验模块;
2、 另起服务接收数据,通过接口调用传递数据;
3、 将校验模块耦合到日志测试脚本;
4、 本地日志记录,通过log文件传递信息。
基于不同功能模块解耦维护,以及开发成本上的考虑,最终我们选择了最原始的文件存储形式,这种方式也便于问题查证的时候,能从WeTest找到关键信息。WeTest兼容性测试支持把文件复制到开发机,在endTest.sh 文件中加上:
cp XXX.log $UPLOADDIR/
即可配合流水线操作。

3、数据驱动提高覆盖率

全量提交测试会导致任务周期久,并且公有云设备不可避免会存在等待时间,每次全量提交也可能给产品带来额外的测试成本。
我们需要思考,每增加一个测试机型,能给我们的流量带来多大的覆盖?哪些机型的占比更高,更加重要?现有的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度保障您的产品质量。

关注腾讯WeTest,了解更多热门测试产品:
WeTest腾讯质量开放平台-您的质量守护专家


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK