UiAutomator 测试工程开发小结
一. 关于bundle无法导入中文参数
答: 将文件改为UTF-8格式
二. 关于对无法抓取的控件进行快速输入问题
答: 主要通过pressKeyCode方法,首先将光标锁定在输入处。
预先把String数据转化为KeyCode数组,然后再通过上述方法输入。
for(int i=0;i<id.length();i++){
char c =id.charAt(i);
if(c >=48&&c <=57){
UiDevice.getInstance().pressKeyCode(c-41);
}else if(c >=97&&c <=122){
UiDevice.getInstance().pressKeyCode(c-68);
}else if(c >=65&&c <=90){
UiDevice.getInstance().pressKeyCode(59);
sleep(20);
UiDevice.getInstance().pressKeyCode(c-36);
}else if(c ==32){
UiDevice.getInstance().pressKeyCode(62);
}else{}}
三. 关于UiWatcher使用问题
答: 第一点:其触发在对某控件对象操作,却发现其对象不存在的情况下。
第二点:其触发会执行注册的UiWatcher对象的checkForCondition方法。
第三点:其需要先注册,才会有作用;如果没有需要,应尽早删除注册。
四. 关于点操作的严谨性问题
答: 尽可能勿用具体数值作为点操作坐标。
应根据长宽所占具体比例,以适应屏幕大小的变化。
五. 关于控件抓取条件的设置问题
答: 控件的抓取应主要以不变的属性为主,比如classname;同时还要兼顾其与同一界面的其它控件主要区别特性。
以能唯一的确定其控件,也尽可能的使其在维护时更轻便。
六. 关于测试方法的大小问题
答: 不要将很多操作放在同一个方法中,缺少了复用性。
根据测试逻辑,合理设置方法大小,分割复杂测试方法。
七. 关于测试信息的问题
答: 测试过程的中间信息,应尽可能简洁切详尽。
以方便精确定位脚本或Device问题所在。
八. 关于多系统uiautomator测试工程架构问题
答: 根据Java面向对象特性,采用三层架构,最底层为多系统复用方法;第二层为具体系统专属方法;最上层基本不动为测试方法管理层。
九. 关于uiautomator工程打包问题
答: 首先建立build.xml:
For Example command: android create uitest-project -n Test -t android-22 -p .
Ant打包
十. 关于Exception问题
答: 在Exception发生后,应该去截图当前屏幕。
UiAutomator 测试工程开发小结的更多相关文章
- AC6102 DDR2测试工程
AC6102 DDR2测试工程 本文档介绍AC6102上DDR2存储器基于Verilog代码的测试过程.AC6102上使用了2片16bit的DDR2存储器组成了32bit的硬件总线.虽然是32bit硬 ...
- robotium 测试APK<一> 建立测试工程
1.准备Android开发环境 2.准备签名工具http://www.troido.de/re-sign.jar 1.建立测试工程 打开Eclipse,点击File->New一个Android ...
- pdfjs viewer 开发小结
此文已由作者吴家联授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 1. pdfjs库简介 PDF.js 是由Mozilla 主导推出的可以将PDF文件转换为H5页面进行展示的 ...
- Git工程开发实践(四)——Git分支管理策略
A successful Git branching model https://nvie.com/posts/a-successful-git-branching-model/ Git工程开发实践( ...
- 学习版pytest内核测试平台开发万字长文入门篇
前言 2021年,测试平台如雨后春笋般冒了出来,我就是其中一员,写了一款pytest内核测试平台,在公司落地.分享出来后,有同学觉得挺不错,希望能开源,本着"公司代码不要传到网上去,以免引起 ...
- APP敏捷测试,测试和开发并行!
测试和开发具有同等重要的作用,从一开始,测试和开发就是相向而行的.测试是开发团队的一支独立的.重要的支柱力量. 测试要具备独立性,独立分析业务需求,独立配置测试环境,独立编写测试脚本,独立开发测试工具 ...
- Android中使用自身携带的Junit新建一个测试工程
1.新建立一个Android工程 package com.shellway.junit; public class Service { public int divide(int a,int b){ ...
- Scrum敏捷软件开发之技术实践——测试驱动开发TDD
重复无聊的定义 测试驱动开发,英文全称Test-Driven Development,简称TDD,是一种不同于传统软件开发流程的新型的开发方法.它要求在编写某个功能的代码之前先编写测试代码,然后只编写 ...
- ActiveX添加测试工程, 出现的问题[非选择性参数][找不到成员]
ActiveX 添加测试工程 1.新建工程MFC application, 2.添加完毕,在main Dialog中, 右键[Insert Activex Control],选择你的ActiveX控件 ...
随机推荐
- C/C++语法知识:typedef struct 用法详解
第一篇:typedef struct与struct的区别 1. 基本解释 typedef为C语言的关键字,作用是为一种数据类型定义一个新名字.这里的数据类型包括内部数据类型(int,char等)和自定 ...
- python如何获取某模块的版本信息
1)module.__version__ 2)用dir(module)查看有没有版本信息 3)help(module)
- MyBatis3: There is no getter for property named 'code' in 'class java.lang.String'
mybatis3 : mysql文如下,传入参数为string类型时‘preCode’,运行报错为:There is no getter for property named 'preCode' i ...
- Windows下尝试PHP7提示丢失VCRUNTIME140.DLL的问题解决
前天PHP7.0.0正式版发布了,有一些比较好的改进,官方也说速度比php5.6快了两倍,性能上有了很大提升,并且也发布了从php5.x向php7迁移的问题,所以今后php网站迁移后能够大幅度的提升网 ...
- 基于Delphi的三层数据库系统的实现方法
基于Delphi的三层数据库系统的实现方法 1 引言 当前的数据库应用系统中,按其结构划分为两类,一类是两层结构的数据库应系统,另一类是多层结构的数据库应用系统. 两层结构的数据库应用系统包括客 ...
- 【python-mysql】在ubuntu下安装python-mysql环境
1.先安装mysql sudo apt-get install mysql-server apt-get isntall mysql-client sudo apt-get install libmy ...
- HDU 1452 Happy 2004 (逆元+快速幂+积性函数)
G - Happy 2004 Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Subm ...
- 【读书笔记】读《JavaScript设计模式》之工厂模式
一个类或对象中往往会包含别的对象.在创建这种成员对象时,你可能习惯于使用常规方式,也即用new关键字和类构造函数.问题在于这回导致相关的两个类之间产生依赖性. 工厂模式用于消除这两个类之间的依赖性,它 ...
- ssh ip "WARING:REMOTE HOST IDENTIFICATION HAS CHANGED!"
[root@ok network-scripts]# ssh 192.168.1.10 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ...
- Linux时间子系统之六:高精度定时器(HRTIMER)的原理和实现
转自:http://blog.csdn.net/droidphone/article/details/8074892 上一篇文章,我介绍了传统的低分辨率定时器的实现原理.而随着内核的不断演进,大牛们已 ...