2018-02-07Appium1.3.2-IOS11-Xcode9.2+Mac10.12.6+Python环境搭建过程

第一次搭建IOS APPIUM自动化环境,仅供参考

appium android 通信分析


image.png

appium ios 通信分析


image.png

安卓手机系统设置,高能预警一定要记住,

以小米手机为例

  1. 打开开发者选项
  2. 开启USB调试
  3. 开启永不锁屏
  4. 开启USB安装权限
  5. 开启USB调试(安全设置)尤其是这一个,需要sim卡激活才能打开

IOS手机系统设置,高能预警一定要记住

  1. 打开开发者选项
  2. 通用-描述性文件与设备管理 :安装webdriveragent的时候需要证书认证开发者账号
  3. 开启永不锁屏
  4. 关于本机页面-》证书信任设置

环境准备

  1. 修改镜像源 npm install -g cnpm --registry=https://registry.npm.taobao.org
    appium下载较快。
  2. 安装appium :npm install -g appium 版本:服务版本1.6.2
  3. 下载客户端 appim.dmg: https://github.com/appium/appium-desktop/releases/tag/v1.3.2
    服务的版本号:Appium v1.7.2
    注意:网上下载 appium服务客户端最新版本1.3.2 appium.dmg ,如果下载pkg 会有问题导致找不到xcode版本
image.png
  1. Xcode 9.2 :升级到最新问题会少很多,编译安装WebDriverAgent,运行并安装WebDriverAgent服务,后边介绍如何安装运行
  2. 真机iPhone 6 Plus 系统 IOS 11.1版本,10系统可以不越狱
  3. 安装依赖包:
  • npm i -g ios-deploy 是一款调试工具
    支持环境: iOS 10以上系统、需要开发者证书
    ios-deploy是一个使用命令行安装ios app到设备的工具
  • brew install libimobiledevice --HEAD 是一款调试工具
    参考博客:https://segmentfault.com/a/1190000010205616
brew install --HEAD libimobiledevice   
brew install ideviceinstaller 
  • brew install carthage 编译webdriveragent 工程时候需要,Carthage 管理依赖
    与CocoaPods 作用类似,类比maven 仅支持IOS 8以上系统
image.png
  • IOS 10以下使用UIAutomation
  • IOS 10以上使用的是XCUITest
  1. 安装 imobiledevice :brew install imobiledevice做端口转发使用
    使用iproxy --help 可以查到更具体的用法。 ipproxy 8100 8100时通过访问http://localhost:8100/status确认WDA是否运行成功。
    而inspector的地址是http://localhost:8100/inspector, inspector是用来查看UI的图层,方便写测试脚本用的

  2. 安装node: brew install node

  3. Xcode 命令行工具 :终端输入xcode-select --install
    使用它在命令安装webdriveragent ,在mac Yosemite os10.10.X,可以单独安装命令行工具

xcodebuild -project WebDriverAgent.xcodeproj -scheme WebDriverAgentRunner -destination "id=$UDID" test
  1. 安装Appium-Python-Client: pip install Appium-Python-Client,否则报错import appium error
  2. appium client : npm install wd
  3. 设置ANDROID_HOME
  4. 设置JAVA_HOME
  5. appium-doctor检查必须全部通过


    image.png
  6. appium-doctor --ios 检查ios 环境必须通过


    image.png

配置 XCODE WebDriverAgent

  • git clone 到本地:https://github.com/facebook/WebDriverAgent.git

  • 鼠标点击WebDriverAgent/WebDriverAgent.xcodeproj 文件右键XCODE打开

  • 配置证书


    image.png
  • 其中Bundle Identifier 是全网唯一,否则会导致AgentRunner的Singning Certificate失败


    image.png
  • Product-》Test 即可运行到真机上


    image.png
  • Scheme 设置运行WebDriverAgentRunner

  • Destination 设置运行的设备真机

  • 运行成功:


    image.png
  • 浏览器输入:http://10.66.6.70:8100/status 正常是可以看到返回的json

  • 我的不行 需要设置端口映射:iproxy 8100 8100
    http://localhost:8100/status 查看当前手机的参数
    http://localhost:8100/inspector 查看手机UI层级

    image.png

  • 运行过过程中需要在真机操作,通用——》描述文件——》信任证书

  • 对于 iOS10 以上的测试,有时候需要更新WebDriverAgent,我更新了但是没有用到,我用appium 客户端比较新 Welcome to Appium v1.7.2,如果appium比较老版本 需要更新WebDriverAgent
    更新命令:

cd  /usr/local/lib/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent
ln -s WebDriverAgent WebDriverAgent

获取测试APP

git clone 测试app:https://github.com/zhshijie/appiumSimpleDemo
cd appiumSimpleDemo
命令:xcodebuild -sdk iphoneos -target appiumSimpleDemo -configuration Release

启动服务

image.png

测试用例

# -*- coding: utf-8 -*-

import sys,os
from appium import webdriver
sys.path.append('../../')
import unittest
from common.driver.android_driver import myDriver

class TrainTest(unittest.TestCase):

    def setUp(self):
        app=os.path.abspath('/Users/user/Documents/linan.wang/appiumSimpleDemo/build/Release-iphoneos/appiumSimpleDemo.app')
        self.driver =webdriver.Remote(
            command_executor='http://0.0.0.0:4327/wd/hub',
            desired_capabilities ={
                # 'app':app,
                'automationName':'XCUITest',
                'platformName':'ios',
                'platformVersion':'11.1',
                'deviceName':'iPhone 6 Plus',
                'bundleId':'com.cvte.appiumSimpleDemo.elonglinan',
                'udid':'d9b5803504e8873e8824cb98e1f1fb3e2a83a1ab'

            }
        )
    def test_push_view(self):
        next_view_button=self.driver.find_element_by_accessibility_id('entry next view')
        next_view_button.click()



if __name__ == '__main__':
    # suite=unittest.TestLoader().loadTestsFromTestCase('TrainTest')
    # unittest.TextTestRunner().run(suite)
    unittest.main()

常见报错:

  1. 报错:WebDriverException: Message: A new session could not be created. Details: Appium's IosDriver does not support xcode version 9.2. Apple has deprecated UIAutomation. Use the "XCUITest" automationName capability instead.
  • 解决方案:启动脚本setup中desired_capabilities 加入'automationName':'XCUITest',
  1. 报错:WebDriverException: Message: An unknown server-side error occurred while processing the command. Original error: Sdk '10.3' was not in list of simctl sdks
  • 解决办法:升级虚拟机系统版本,xcode——》Preference->Components,挺大的按G计算
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,732评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,496评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,264评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,807评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,806评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,675评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,029评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,683评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,704评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,666评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,773评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,413评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,016评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,204评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,083评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,503评论 2 343

推荐阅读更多精彩内容