美文网首页自动化测试实践笔记自动化测试软件测试相关
Android&IOS自动化测试框架整合升级方案

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

作者: 奔跑的小小鱼 | 来源:发表于2017-02-28 16:17 被阅读239次

    一.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自动化测试框架整合升级方案

      本文链接:https://www.haomeiwen.com/subject/asyzwttx.html