写点什么

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

作者:WeTest
  • 2022 年 1 月 19 日
  • 本文字数:2197 字

    阅读完需:约 7 分钟

研效优化实践: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腾讯质量开放平台-您的质量守护专家

 

用户头像

WeTest

关注

还未添加个人签名 2021.08.09 加入

还未添加个人简介

评论

发布
暂无评论
研效优化实践:WeTest提效测试