Appium自动化测试之真机实践<二>

吐槽

百度google了一轮,最大的感触是:好多教程都不适用啊!要么是Appium版本旧,要么是iOS版本旧。想找一篇详细的“从入门到放弃”的教程都没有,搭Android环境的时候,能搜到很多十分详实的教程,而iOS的就有点头疼了,然而,坑还是要入的。

Appium自动化测试优势

安装Appium客户端,有个inspector section可以运行客户端的app,运行的操作步骤可以直接生成多语言脚本,运行脚本后,可以实现自己想要的自动化测试,也可以让测试负责去写脚本,不懂代码的人也能实现牛逼的自动化测试,何乐而不为呢?举例说明看此博客的最后实例部分,亲测好用.

事实说话

  • xcode8之前的instrument是支持UIAutomation,xcode8以及以后的版本就不支持了
  • iOS 9.3 及以上:苹果的 XCUITest
  • iOS 9.3 及以下:苹果的 UIAutomation

扩展(通过命令行将iOS的APP安装到模拟器中)

扩展1

XCode6 之后提供了xctool这个工具,可以做到这些事情:
1.启动一个模拟器
2.把app安装到启动好的模拟器上面
3.从模拟器上卸载指定的app

启动运行模拟器:xcrun instruments -w 'iPhone 6 Plus'

在已经启动好的模拟器中安装应用:xcrun simctl install booted Calculator.app (这里要特别注意,是app,不是ipa, 安装时需要提供的是APP的文件路径,为了减少犯错,你桌面上建个文件夹,把.app文件放进去,先cd到这个目录下,再运行)

正常情况下,就可以看到,这里已经把Calculator这个app安装到了模拟器里面。

卸载APP的命令就比较简单了 xcrun simctl uninstall booted com.yuchang.calculator 卸载时需要写的是bundle identifier

xcrun 这个命令实际还有很多更高深的玩法,具体直接xcrun --help可以自己学习和领悟了,当然也可以把上面的几个命令组合起来写个脚本,实际提高工作效率

扩展2

使用ideviceinstaller
安装方法也很简单 brew install imobiledevice 之后安装ipa的话就直接用 ideviceinstall --udid ${UDID} --install your.ipa

再详细介绍下安装真机实践的几个工具

Appium Desktop

Appium向来有命令行版的和GUI版的——我选择后者,到官网下载安装最新的Appium Desktop 1.2.7的dmg,里面带了1.7.1的Appium(目前的最新版)
下载地址:
appium-desktop

Appium客户端库

Python、Ruby、Java、Javascript、PHP、C#等,任君选择,去官网下载。
例如我用Python,就安装Appium-Python-Client,在终端运行

安装依赖库

brew install libimobiledevice --HEAD
npm install -g ios-deploy #如果是iOS10以上的系统才需要安装

如果没有安装 libimobiledevice,会导致Appium无法连接到iOS的设备,所以必须要安装,如果要在iOS10+的系统上使用appium,则需要安装ios-deploy

appium-doctor 安装

npm install appium-doctor -g

安装后执行appium-doctor --ios指令,可以查看与iOS相关配置是否完整,下图是全部配置都成功,如果有那一项是打叉的,则进行安装就可以了。

appium-doctor --ios

appium-doctor

更新Appium中的WebDriverAgent

  • 1.到WebDriverAgent下载最新版本的WebDriverAgent

  • 2.进入下载后的WebDriverAgent文件

  • 3.执行 ./Scripts/bootstrap.sh

  • 4.直接用Xcode打开WebDriverAgent.xcodepro文件

  • 5.配置WebDriverAgentLib和WebDriverAgentRunner的证书
    如图:


    1

    2
  • 6.连接并选择自己的iOS设备,然后按Cmd+U,或是点击Product->Test

  • 7.运行成功时,在Xcode控制台应该可以打印出一个Ip地址和端口号
    如图:


    3
  • 8.在网址上输入http://(iP地址):(端口号)/status,如果网页显示了一些json格式的数
    如图:


    4
  • 9.进入到Appium中的WebDriverAgent目录,目录路径如下(/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-xcuitest-driver/)

  • 10.将自己下载并编译后的WebDriverAgent替换Appium原有的WebDriverAgent

运行Appium-Desktop

准备工作

  • 1.需要一个.app 或是一个 .ipa 安装包,这个安装包是你要进行测试的应用程序
  • 2.测试应用程序对应的bundleId
  • 3.测试设备的udid,电脑连接上手机后,可以在Xcode的Window->Deriver中查看

运行程序

  • 1.运行Appium-Desktop
  • 2.开启start server
  • 3.点击start new session
  • 4.在 Desired Capabilities 中输入相关的参数后点击Start Session
  • 5.运行成功后,会弹出一个控制界面,在该界面中可以控制手机上正在运行的程序
  • 6.点击界面上方中心的录制按钮,可以将你对手机端的操作代码化

举例: 利用Appium-Python-Client进行iOS的自动化测试

准备工作

安装python

brew install python

安装appium的python依赖库

git clone git@github.com:appium/python-client.git 
cd python-client
python setup.py install

很可能会报错,是因为权限的问题,解决:去git地址python-client上找到python-client ,手动下载下来,然后cd python-client
python setup.py install

测试文件

在git上下载测试文件 appiumSimpleDemo

  • 1.一个简单的iOS工程文件
  • 2.一个简单的python测试文件

开始自动化测试

配置iOS工程文件

  • 1.打开下载后的appiumSimpleDemo文件,打开appiumSimpleDemo.xcodepro程序,配置下TARGET的签名
  • 2.在appiumSimpleDemo的根目录执行编译指令,编译出一个app文件xcodebuild -sdk iphoneos -target appiumSimpleDemo -configuration Release,编译成功后app文件的地址会打印在命令行中
  • 5

配置python文件

打开appiumSimpleDemo中的appiumSimpleDemo.py文件,将,修改setup中的几个参数,将app的路径,设备的相关信息修改成当前连接设备的信息。

  • 6

运行Appium程序

打开之前下载安装的Appium-desktop,并开启服务。

运行python测试文件

appiumSimpleDemo.py所在的目录运行python appiumSimpleDemo.py,如果之前设置都没有出错,那么程序应该会在手机上成功运行,并自动点击了entry next view进入到了下一个界面,过了2s后会重新返回第一个界面

精髓部分

image.png

点击startsession,可以操作真机或者模拟器,可以把操作路径转化成多种语言脚本,运行脚本,就可以自动化测试了,不会写脚本的测试人员也能搞出自动化测试脚本并实现自动化测试了。具体使用参考:
Appium-desktop使用

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

推荐阅读更多精彩内容