Android&IOS自动化测试框架整合升级方案

一.Android与IOS自动化的相同点与异同点

1.相同点

1.1 框架相同Appium+selenium;

1.2 使用JAVA语言;

2.异同点

2.1 Driver不一样;

2.2 平台不一样;

2.3 启动App的方法也不一样;

2.4 android用的是uiautomatorviewer定位元素,IOS用得Appium inspector

二. 框架模式

1.Android与IOS除设备配置,Driver不一样,object操作,Case,场景执行都相同。

2.框架采用的是Object Map+Keyword模式,将设备配置,Driver,调用driver方法,Object,Case,场景分离,

公共方法封装,通过实例化对像的方法调用对像,这样提高了测试框架的复用性和可维护性。

三. 框架合并方案

Android只能在Windows环境+真机执行脚本,IOS只能在Mac环境+真机执行脚本。

1.方案一一套代码Android与IOS分开执行

1.1 设备配置分开:难点IOS与Android调用设备异同;

1.2 Driver可以放一起,在方法与命名上区分开;

1.3  Android与IOS操作方法分开,各自调用各自的定位,其它方法;

1.4 CASE,场景,用例集,ant.xml配置Android与IOS分开;

1.5 object定位对像(Name,id,xpath,...),object操作(click,sendKey,getText,...)方法,object对像库数据分开;

1.6 与数据库交互SQL以属性方式存放到指定文件读取;

1.7 截图,滑屏,等公共方法合并为同一个方法,ios与Android分开实现;

2.方案二一套代码同时兼容Android与IOS

2.1 设备配置分开:难点IOS与Android调用设备异同;

2.2  Driver可以放一起,在方法与命名上区分开;

2.3  Android与IOS操作放在同一个方法,将driver标识参数放到配置文件,在方法中调用配置文件;

2.4 CASE,场景,用例集,ant.xml配置Android与IOS合并执行;

2.5 object定位对像(Name,id,xpath,...),object操作(click,sendKey,getText,...)方法,object对像库数据分开;

2.6 与数据库交互SQL以属性方式存放到指定文件读取;

2.7 截图,滑屏,等公共方法合并为同一个方法,IOS与Android部份方法合并实现;

四. 框架升级方案

1.object定位方法完善封装,ios与Android合并;

2.操作Object事件方法封装,注:Object定位公共方法+操作事件可能会考虑合并;

3.按照PageObject方式封装对像;

4.文本输入参数,SQL参数,Driver标识参数,版本标识参数放在同文件;。

5.类,方法,属性命名区分android与ios;

6.截图,报告将android与ios分开;

7.case,场景,用例集,构建配置按最终方案调整;

8.两个app功能交互;

五. 框架待解决问题

1.不同环境Driver处理,在那个环境就按那个环境方法写

2.两个app功能交互

1)windows环境同时跑两个app,实现交互;

2)分平台执行app1在windows上执行,app2在mac上执行;

3)若1)与2)解决不了只好分开执行,从数据库初始与销毁数据了;

3.版本控制

1)大版本重新创建工程;

2)小版本同时兼容上下两个版本;

3)版本改动小时,在判断时尽量使用兼容性较友好的方法;

注:有想法把版本换成数字型格式(例:265),方变比较;

4)在元素操作中修改,若同一功能多版本重复修改,只保留当前最新的两个版本。

4.平台+版本兼容

判断太多时可能会影响代码执行效率

5.进入某页面,提交,返回这三项需要判断1)是否成功进入指定页面,网络异常处理;

2)提交页面后是否跳转指定页面,若未成功跳转需做补救处理;

3)返回到指定页,或者报错需要退出到指定页,需要添加返回步数及成功判断;

6.IOSName元素定位失败问题

1)先将appium版本,降低一个版本再测试。

2)IOS貌似除了Name就是xpath,若页面变更,维护xpath地址可会较频繁。

7.完善公共方法,android层级定位方法;

你可能感兴趣的:(Android&IOS自动化测试框架整合升级方案)