Appium+iOS自动化测试环境安装

1.安装Xcode。

2.安装Homebrew,它是一个macOS上的软件包管理工具,便于下载软件包。

打开终端,运行:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

3.安装Nodejs和npm:

brew install npm

运行node -v和npm -v确保安装成功。

4.安装cnpm。由于npm源在国外,使用npm安装库时会比较慢,可以使用taobao的镜像源:

npm install -g cnpm --registry=https://registry.npm.taobao.org

5.安装Appium依赖库libimobiledevice,如果没有安装会导致Appium无法连接到iOS的设备,所以必须要安装:

brew install libimobiledevice --HEAD

6.如果要在iOS10+的系统上使用Appium,需要安装ios-deploy:

npm install -g ios-deploy 

7.对真机需要安装xcpretty:

gem install xcpretty

8./安装carthage:

brew install carthage

9.安装appium-doctor:

npm install appium-doctor -g

再进行环境检测:

appium-doctor --ios

有没装好的包就用brew install安装;直到appium-doctor --ios环境检测全部必装环境都配置好就可以安装Appium了:

10.安装Appium:

cnpm install -g appium

11.下载并编译webDriverAgent:

  • 从github上下载代码:
    git clone https://github.com/facebook/WebDriverAgent
    (官方文档参考https://github.com/appium/WebDriverAgent
  • 运行./Scripts/bootstrap.sh:该脚本会使用Carthage下载所有的依赖,使用npm打包响应的js文件执行完成后,直接双击打开WebDriverAgent.xcodeproj这个文件准备编译WebDriverAgent,编译时要进行签名,要向ios开发人员要一个开发者账号(具体操作是ios开发人员帮忙操作的),接下来的配置参考:https://www.cnblogs.com/xiyuan2016/p/7593211.htmlrun这个项目的时候要注意在手机设置-通用-描述文件与设备管理中信任WebDriverAgentRunner

 

 

Appium设备端: 

iOS 真机,手机上多一个名为WebDriverAgentRunner 的应用,这个应用的作用就是对你的目标 App 进行测试。它能根据被测试应用的BundleID 将它唤起,然后自己进入死循环保证测试用例一直不退出。此时等待服务器传来 URL 数据,然后解析 URL,分发到对应模块,各个模块根据 URL 指令执行对应的测试操作,最终再把测试结果返回

Appium 服务端

是一个Node.js 应用,这个应用跑在电脑上,用于和 WDA 进行通信。采用的是WebDriver 协议

Appium 客户端

我们的代码。

 

 

PS:在Mac电脑上连接真机iPhone,运行WebDriverAgentRunner会在Mac端启动WDA服务器,并在手机iPhone端安装一个WebDriverAgentRunner应用。通过编写脚本来与WDA服务器通信,告诉WDA服务器想要如何操作iPhone,WDA服务器与安装在手机iPhone端的WebDriverAgentRunner应用通信并通过该app发送模拟指令来实现操作iPhone手机https://www.cnblogs.com/LanTianYou/p/10205499.html

WebDriverAgent安装一次就可以了。如果被删掉是因为没有在iOS设置-通用-描述文件与设备管理中点击信任

 

 

https://github.com/google/ios-webkit-debug-proxy/blob/master/README.md

 

 

 

 

遇到的问题:

1.Not cleaning generated files. Add clearSystem Files capability if wanted.

desiredCapabilities.setCapability('clearSystemFiles',' true');

 

2.Keyboard is not present

分机型自定义键盘

  1. 点击 tap(原来的tap方法 appium升级后不适用了)
self.driver.execute_script("mobile: tap", {"x": 22, "y": 579})

# self.driver.tap([(key_position_x['a'], key_position_y['a'])])

3.sleep大于5s时会断开连接,不知道为什么??????可能是selenium的问题

4. xpath ios 定位长达14秒?????

5.

有些控件是满足条件后才给显示,比如登录后可见,所以visible的默认值false,inspector一直会取此控件或者父控件的默认值?

visible为false导致click不可用 目前只能座标缩放点击适配所有型号手机

 

都是因为h5页面获取不到,要找开发把手机udid配进配置文件里。。。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章