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层级定位方法;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,001评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,210评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,874评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,001评论 1 291
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,022评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,005评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,929评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,742评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,193评论 1 309
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,427评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,583评论 1 346
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,305评论 5 342
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,911评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,564评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,731评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,581评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,478评论 2 352

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 172,050评论 25 707
  • afinalAfinal是一个android的ioc,orm框架 https://github.com/yangf...
    passiontim阅读 15,425评论 2 45
  • 人容易划分,也容易被别人划分。一个比数字的时代,一个容易划分并圈养的时代。 ---- -...
    落桑Chen阅读 587评论 0 1
  • 还要从去年发生的云盘关闭事件说起,当时我在用某为的云盘保存了部分资料,结果某为宣布,关闭服务,当即我就备份了所有资...
    三风mickjoust阅读 2,662评论 10 29
  • 291976-陈国艳《2017-9-23》 [连续第224天总结] A目标完成情况。 1.演讲30分钟,完成0% ...
    科研女神经阅读 133评论 0 0