京东APP流水线测试领域探索与最佳实践

作者:京东物流 范文君

1 背景

APP端UI自动化因其特殊性(需连接测试机)一般都在本地执行,这种执行方式的局限性有以下弊端:

  1. 时效性低:研发每次打包后都需要通知测试,测试再去打包平台取包,存在时间差
  2. 研发自测或产品验收无法使用自动化脚本:研发自测及产品验收时如果想用自动化脚本需要搭建相应的运行环境并准备测试机,繁琐的步骤导致研发/产品放弃使用自动化。而手工验证的过程中经常需要测试协助下单、改数据,效率低
  3. 本地执行的结果没有持久化存储,不利于进行结果度量

2 方案分析

为解决以上问题需要搭建流水线,CI/CD领域常用的流水线平台非Jenkins莫属,Jenkins功能强大、可二次开发,但执行APP自动化需要windows执行机、模拟器/真机,这些要求无疑增加了测试成本。与之相比,Bamboo平台是基于Jenkins开发的流水线平台,不仅继承了Jenkins的众多功能,且支持图形化配置,并对接了赛博平台等其他平台。

从下图对比中可以看出,复用现有的Bamboo平台成本更低,同时需要做以下改变:一、自动化框架需要改为airtest框架;二、需要对测试报告进行处理以符合预期。

3 方案实施

架构图:

流程图:

执行结果:

4 执行过程中遇到的问题及解决方案

1.bamboo打debug包成,release包不成功

解决:证书管理中上传 sign.properties 文件,该文件中去掉绝对路径信息,使用相对路径

2.赛博平台无法输入汉字

解决:用poco().set_text()替代text()方法

3.跑脚本失败提示 RuntimeError: unable to launch AndroidUiautomationPoco

解决:赛博的机器有ATX,会影响poco初始化。poco初始化前加代码:

# 停止ATX
try:
shell("am force-stop com.github.uiautomator")
shell("/data/local/tmp/atx-agent server --stop")
except Exception as e:
print("兼容非赛博机器")

5 待解决问题

  1. 接入coding平台,只支持airtest框架
    影响:需要对原框架进行改动,成本较高。与赛博平台负责产品沟通过,赛博平台后期会开发对接其他框架的功能。
  2. 手动配置的数据比较多:模块、用例、用例集
    影响:除了测试脚本外还需单独配置模块、用例、用例集,人工成本较高。后需可考虑coding平台代码合并后触发定时任务自动生成对应的模块、用例、用例集。
  3. 无法指定机型
    影响:无法指定机型进行兼容性测试,与赛博平台分则产品沟通过,暂未有计划修改此项。
  4. 京管家未接入线上打包平台
    影响:测试过程中需要本地保留apk包,占本地内存且容易混淆;无法进行版本管理,需要复现问题时不能及时提供历史版本;UED走查或产品验收时只能京ME联系研发取包,时效性差;无法接入流水线。

6 预期收益

流水线不仅解决了环境配置及测试机不足的问题还有以下优势:

  1. 学习成本低,操作简单,预计可节省三分之二的工时
  2. 执行结果可以做持久化存储,后期可与自动化度量平台相结合进行数据分析
  3. 流水线中可加入Sunglasses原子,UI自动化测试过程中监控Flutter异常
  4. 线上版本可做日常化监控,及时发现问题

行业讯息视频

【行业现状】全球就业率下行时,软件测试岗位需求占几成?怎么体现出你的优秀?

【Python自动化测试学习路线】作为一名软件测试工程师需要具备哪些技能?

【软件测试最全学习宝典】从技术盘点→如何学习?→面试中如何应对这些问题?→如何应用到工作中、企业中……

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 手机应用(App)测试和网站(Web)测试有许多区别。其中一个最明显的区别是,App测试通常涉及测试手机应用在手机或平板电脑上的行为,而Web测试则涉及测试网站在浏览器上的行为。 此外,App测试还涉及测试设备的硬件和操作系统,而Web测试只需要关注浏览器的版本和设置。在App测试中,测试人员还需要考虑设备的屏幕大小、分辨率、像素密度和其他硬件特征,而Web测试则不需要考虑这些因素。 另一个区别是,App测试通常需要使用模拟器或真机来测试,而Web测试则可以使用多种浏览器进行测试,如Google Chrome、Mozilla Firefox、Safari等。 总的来说,App测试涉及的因素要多于Web测试,因为App要兼顾设备和操作系统的多样性,而Web测试则只需要关注浏览器的版本和设置。 ### 回答2: APP测试和WEB测试是两种不同的测试类型,主要区别体现在以下几个方面。 首先,APP测试和WEB测试测试对象不同。APP测试是对手机应用程序的功能和性能进行测试,而WEB测试是对网页应用程序的功能和性能进行测试。因此,APP测试需要关注手机操作系统特性和手机硬件性能,而WEB测试需要关注网页浏览器特性和网页加载速度。 其次,APP测试和WEB测试测试环境不同。APP测试需要在手机设备上进行,需要考虑不同的手机操作系统版本和不同的手机型号,测试过程相对复杂。WEB测试可以在各种网页浏览器上进行,可以通过模拟器或虚拟机来模拟不同的测试环境。 再次,APP测试和WEB测试测试方法和工具不同。APP测试可以使用具备自动化测试能力的工具来进行测试,如Appium、Monkey等。WEB测试可以使用浏览器调试工具进行测试,如Chrome开发者工具、Firebug等。同时,由于APP对用户界面的操作更为复杂,APP测试可能需要更多的手工测试。 最后,APP测试和WEB测试测试重点有所不同。APP测试更加注重用户体验,需要测试应用在不同手机上的操作流畅性、页面布局、响应时间等方面。WEB测试更加关注页面的兼容性、页面加载速度、响应式设计等方面。 总的来说,APP测试和WEB测试有着明显的区别,包括测试对象、测试环境、测试方法和工具以及测试重点等方面。测试人员在进行这两种测试时,需要有不同的技术和理解。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值