ATX ui自动化ios实战(一)

前一段时间了解到有那么一个自动化测试框架,名叫ATX,是由网易大佬@codeskyblue的团队研发的。

经过一段时间的学习,在此我总结一下ATX的优缺点。

优点:

1.环境搭建简单

2.运行速度比Appium略快

3.易上手,如果学习过其它自动化框架就能在很短的时间内学会ATX,即便是第一次学习这类框架也会感受到世界是如此美好

缺点:

1.暂时还没感受到明显的缺点

欢迎加入ATX qq群499563266


本文不对ATX安装做赘述,如果需要安装教程请另行搜索,本文更专注于ATX在工作中的实际应用。

事前准备:

mac一台(由于ios系统的封闭性,所以想做ios自动化必备mac电脑)

ios手机一台

python3+环境

ATX环境


App选择:

由于是网易的框架,所以在这里我选择网易的app“网易云课堂”做演示(当然其它公司的app也是可以用的),不要问我为什么不选择网易云音乐。


本系列文章预计分成三篇

第一篇:登录网易云课堂

第二篇:更改学习兴趣,搜索课程并标记为想学,观看课程

第三篇:套用单元测试框架,生成测试报告


ok,闲扯了这么多,现在正式开始第一篇,登录网易云课堂,首先在你的手机上安装好app,其次给它打个评价(以防跑脚本的时候冷不丁跳出来求好评,那就凉凉了),再然后确定wda的代理已经运行在你的手机上,最后把手机端口映射到电脑上。(以上这些是安装ATX会涉及的内容,所以本文一句话带过了)

本篇内容主要分为两部分

1.打开app

2.登录帐号


1.打开app

我们先来看一个demo,看一下打开一个app最简单的方法

import wda

client= wda.Client('http://localhost:8100')

client.healthcheck()

session= client.session('包名')

代码非常简单,仅需短短四行就可以实现打开app,每一个app都有包名,那么我们该怎么获得包名呢?

在命令行输入命令:ideviceinstaller -l

可以获得当前手机上所有已安装的app的包名,是不是很简单

我们可以快速得到网易云课堂的包名为:com.netease.study901iphone

然后把上面的demo的session= client.session('包名')替换为

session= client.session('com.netease.study901iphone')就行了

运行文件,看看是不是成功打开了app,由于后面没有加延迟,所以打开后会立马关闭,不要感到诧异,这是正常的!!!


2.登录帐号

接着我们要进入登录界面(目前在首页),那就是先点击"账号"页面,然后点击"登录/注册"(或者你想点击"我的学习",然后点击"登录",也是一样的),本来打算把进入app的广告页面(就是右上角是"跳过"按钮的那个页面)直接跳过的,不过广告页面显示挺短的,一两秒就过了,就不专门做处理了,如果你有兴趣的话可以写一下。

根据wda自带的inspector我们可以获取到元素的属性,如图

WebDriverAgent Inspector

我们要做的就是点击"帐号"一下,然后点击"登录/注册"一下

我们可以看到"帐号"这个元素的name为帐号,同理可得"登录/注册"元素的name为元素/注册,但是在这里提醒一下大家,不要想当然以为name就是元素的名字,尽量用inspector确认一下元素的属性再使用

直接上代码

session(name='帐号').tap()

session(name='登录/注册').tap()

粘贴到前面已经成功打开app的代码后面

运行一下试试~

不出意外报错了,没有发现"登录/注册"这一元素,再看一下app当前所在的页面,你会发现还停留在首页,那可以推断出帐号这个点击操作没有成功执行,为什么呢?

忽然想到,打开app后的广告页,会不会内页已经加载完成(但被广告页遮挡),帐号的点击操作实际点击到了广告页面上了呢?

有一个想法了,那怎么让点击操作不落在广告页面上,visible属性了解一下

session(name='帐号',visible=True).tap()

这句比上面多了visible=True,实际作用就是当name为帐号的元素可见时再点击

ok,那我们再试试~

是不是成功进入了登录界面!

然后我们选择手机号登录的方法,然后还要输入帐号,密码,最后点击登录

理想的话应该就是四个操作,如下

session(name='手机号登录').tap()

# 输入帐号

session(className='TextField').set_text('你的帐号')

# 输入密码

session(className='SecureTextField').set_text('你的密码')

# session(value='请输入手机号').set_text('你的帐号')

# session(value='请输入6-16密码').set_text('你的密码')

# 点击登录

session(name='登 录').tap()

登录页面inspector

由于帐号输入框和密码输入框没有name,所以这里我没有采用name的定位方式,而是className的定位方式,另外还多写了一种用value定位的方式(已注释的两行),有兴趣的同学可以试试。

我们把上面这段代码拷到之前的代码后面,并将你的帐号和密码填充上去,运行一下,

艹,又报错了!

"Keyboard is not present"

键盘不存在,其实就是键盘没有调出来

真不是我故意搞你,我一开始也是这么想的,但是不知道为啥,键盘没有调出来(这里还希望知道的大佬们能说一下原因)

既然不存在,那就把它搞出来,set_text方法不行,那我就用tap方法,我点击帐号输入框,总会调出键盘的,所以在"手机号登录"那一句后面再加一句

session(className='TextField').tap()

我们再试着运行一下,这次百分之一百成功了!

我们成功登录到了帐号页面有木有~

由于本人没用git,所以完整代码保存到百度云上了,感兴趣的同学请到下面的链接下载,会有更详细的注释。

链接: https://pan.baidu.com/s/11F_Ab6t7SnOzXCo4JbHlzQ 密码: 2uu5

那我们下一篇再见吧,bye~


感谢阅读,欢迎转载。

如有错误请及时指出,谢谢!

如有问题请留言,我懂的必然会回复!

共勉。

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

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 172,085评论 25 707
  • 点击查看原文 Web SDK 开发手册 SDK 概述 网易云信 SDK 为 Web 应用提供一个完善的 IM 系统...
    layjoy阅读 13,758评论 0 15
  • 如果说我会怀念一个地方,可能常常是因为那里有着很好吃的食物,就是在这个世界的许许多多的角落里,会怀念几个小小的市镇...
    苍羽纱阅读 270评论 0 1
  • 2018年6月20日 星期三 晴 前几天女儿有些懒床,总是在我的催促下起床,于是我就很不耐烦的警告了她,请...
    知足常乐朵儿阅读 162评论 0 0