位置: 编程技术 - 正文

Android UI自动化测试最佳实践(安卓 自动化app)

编辑:rootadmin
一. 概述

推荐整理分享Android UI自动化测试最佳实践(安卓 自动化app),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:android ui自动化的原理是什么,安卓自动化,安卓自动化,安卓ui自动化,android ui自动化测试,android ui自动化测试框架,android ui自动化SDK测试,android ui自动化的原理是什么,内容如对您有帮助,希望把文章链接给更多的朋友!

Android系统测试和Web的测试类似,有两类自动化的方式:录制回放与基于页面元素操作的手工开发。由于录制回放在长期维护与代码重用方面存在问题,这里主要的方式还是后者,这也是Web UI自动化的主流。 在Web自动化测试中有一个比较好的实践是采用PageFactory的方式(参考文章: case;能够在不同的test case中重用页面对象。

Android应用程序的测试也极其类似,每一个Activity可以看成是一个Page Object,可以将Activity中的控件以及操作封装在Page Object之中。为了能够表述清楚测试的分层和测试方法,先展现一个实例,然后讨论对Robotium的改写与封装。

二. 实例Android UI自动化测试最佳实践(安卓 自动化app)

以移动凤巢的登陆页面为例,LoginActivity中有三个控件:用户名EditText,密码EditText,以及提交按钮Button,如下图一,当登陆成功后进入MainActivity,如下图二: 对于Test Case的组织如下图,page包中每个Activity都对应一个ActivityPage,test包中的用例可以重用不同的ActivityPage: 其中LoginActivityPage的内容如下,先不用关心@FindBy这种注解,它不是Robotium自带的,主要作用是能够在运行时将控件注入到ActivityPage之中,类中主要包括需要操作的Android控件以及动作: 对于Test case的形式如下,实际内容为对不同ActivityPage的操作,这样当页面的控件变化时只需要改动ActivityPage而不用动测试逻辑了,而且可读性更强。

三. Robotium框架改写与封装

通过以上示例可以看到为了更好地支持这种测试模式需要对Robotium进行一些封装和改动,现阶段Robotium存在以下问题:

Api不是面向对象的,用起来比较变扭,比如当你获得了一个EditText的对象,不能editText.putText(“abc”)而必须solo. enterText(editText,”abc”)不能很好地支持PageFactory模式,使用时需要写额外的代码由于UI测试存在偶尔的不稳定因素,需要有失败重试和截图机制

为了改良以上问题,需要对Robotium进行扩展和封装,业界一个比较好的实践是借用WebDriver的整套规范,对于web元素和android元素他们存在较多的共用操作: 对于Matching列是我们需要改造实现的,对于大部分Android控件,比如EditText、Button等都可以实现以上操作,如果不存在或不支持的方法则抛出UnsupportedOperationException代替。

PageFactory的实现可以参照org.openqa.selenium.support.PageFactory,主要通过反射获取Test Case中的Page元素,然后将Activity中的控件延迟注入到Page中(延迟注入的目的是为了防止在页面还未跳转的时候找不到控件,比如只有登录成功后跳转到主页才能找到“首页”按键,一开始执行的时候是没有“首页”按键的)。对于Android控件的定位可以引入如下@FindBy注解从三方面定位:控件的id、控件中出现的某段文本、控件的索引(要先指定控件的种类,比如第三个EditText控件) 接下来是重试和截图机制,可以通过改造ActivityInstrumentationTestCase2中的runTest()方法来实现,简略的实现如下: 这样只要Test Case方法上打上@Failover(times = 3,screenshot = true)注解则表明只有连续三次执行失败才认为是失败的,同时会给失败场景截图。 最后,为了减轻ActivityPage的代码编写工作我们可以通过解析Android源工程layout中的xml来自动生成代码,这样一旦UI页面变更我们只需要重新执行生成代码的程序就OK了。

Android开发问题 .上传文件的时候获得文件的MIMEcontent-type1.得到文件的MIMEcontent-type类型mime-util-2.1.3.jarslf4j-api-1.7.5.jarslf4j-nop-1.7.5.jare.g.Filef=newFile(d:\new_ailise.png);MimeUtil.r

Android UI自动化测试最佳实践 一、概述Android系统测试和Web的测试类似,有两类自动化的方式:录制回放与手动开发自动化case。由于录制回放在长期维护与代码重用方面存在问题,这

android studio 清除无用资源,缩减apk大小! 直接上图编辑配置文件,直接打包即可,已亲测,Apk7.M已减肥至5.M,减肥成功!!!buildTypes{release{minifyEnabledtrueshrinkResourcestrue}}

标签: 安卓 自动化app

本文链接地址:https://www.jiuchutong.com/biancheng/387533.html 转载请保留说明!

上一篇:Android:网络通信框架Volley简介(Google IO 2013)(Android网络通讯哪个最简单)

下一篇:Android开发问题(安卓开发常见问题)

  • 土地增值税的计算方法公式
  • 税务师考试考几门几年考完
  • 汇兑损益一般是多少
  • 票据承兑和贴现市场上最主要的交易对象是( )
  • 所有应收账款是否均已记录
  • 咨询服务费预收率怎么算
  • 劳务报酬增值税和个人所得税都要交吗
  • 用进项税冲抵当月增值税的会计分录
  • 增值税专用发票抵扣期限
  • 企业的银行存款
  • 税收实体法要素中的基础性要素
  • 跨区经营怎么交税
  • 汽车保险费可以抵扣吗
  • 工资薪金所得适用的税率是
  • 小规模纳税人可以开3%的专票吗
  • 公司年末补缴企业所得税需要提供什么资料?
  • 金税三期个人客户端在哪下载
  • 关于小规模纳税人的说法错误的有
  • 金三系统客户端插件在哪下载以及安装流程是怎样的?
  • 附加税减半征收政策是哪个文件
  • 工会基金是扣个人还是扣企业的
  • 持有至到期投资在资产负债表怎么填
  • 收回应收账款资产为什么不变
  • 机动车检测工作
  • 小规模纳税人的认定标准是什么
  • 资产负债率如何评价
  • 模具维修费做什么费用
  • windows怎么复制
  • php中通过什么属性可以获取数组中元素的个数
  • excel js宏
  • 坏账准备的相关账务处理
  • Laravel中七个非常有用但很少人知道的Carbon方法
  • 人工智能aima
  • 个人独资企业建筑类怎么注册
  • 计提下月工资怎么算
  • 企业内部转账通知单
  • [error] Error: Fail to open IDE 问题解决
  • 协会收到的政府奖励会计处理
  • 前端大佬都有谁
  • vue请求后端接口
  • ai运行环境
  • 固定资产清理的会计科目处理
  • 旅行社差额征税政策
  • 以前年度收入少计如何做帐
  • python框架的作用
  • ubuntu下使用SQLite3的基本命令
  • 科技公司技术服务费税率
  • 一般纳税人提供财政部和国家税务总局规定的
  • 应收账款资金占用费怎么算
  • 教育费附加和地方教育费附加都要交吗
  • 如何调整以前年度库存
  • 付国外客户佣金怎么代扣代缴增值税
  • 营业税金及附加怎么计算
  • 个人所得税计算方法2023计算器
  • 信用卡什么情况下会被冻结
  • 进项发票已入账进项税,但是未抵扣怎么办
  • 职工福利费扣除税率
  • 进口车购置税多少个点
  • 备查账一般采用什么账簿
  • samba开启
  • reg.exec
  • win8怎么调整显示器亮度
  • 微软新品什么时候上市
  • win7系统有自带的杀毒软件吗
  • win8的计算器在哪里
  • win10任务界面
  • win10更新需要重启怎么办
  • jquery 拖拽布局
  • js中的apply方法
  • python中的字典与列表属于什么类型
  • python基础教程 入门教程
  • javascript开发app教程
  • javascript 基础篇1 什么是js 建立第一个js程序
  • ECLIPSE编辑器
  • unity改vs版本
  • 深入理解新发展理念
  • 福建省电子税务局官网登录入口
  • 房产契税退税在哪里办理
  • 土地增值税可否免税
  • 北京市地方税务局2015第10号文件
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设