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发生后,应该去截图当前屏幕。


原文地址:https://www.cnblogs.com/udld/p/5746378.html