Appium 1.6.3 在Xcode 8 (真机)测试环境搭建经验总结

关于 Appium 1.6.3 在Xcode 8, 1真机上环境搭建问题更多,写此文章,供大家参考,让大家少走弯路。

在开始iOS真机测试之前,请大家务必 将 Appium 1.6.3 + xcode 8 在iOS模拟器上的环境搭建OK,请参见我的上一篇博文:Appium 1.6.3在Xcode 8, iOS 10.2(模拟器)测试环境搭建经验总结

如果iOS模拟器上的环境OK,再来真机上搭建,要不然 你还是放弃吧。

进入正题 :

首先,上边文章:Appium 1.6.3 在Xcode 8, iOS 10.2(模拟器)试环境搭建经验总结 中 第一、第二、第三步 必须结束掉,然后开始,务必!

一、安装相关依赖

(1)安装ios-deploy  

npm i -g ios-deploy

不然会执行错误会报错:

[XCUITest] Could not initialize ios-deploy make sure it is installed and works on your system

[XCUITest] Error: Could not initialize ios-deploy make sure it is installed and works on your system

at XCUITestDriver.getIDeviceObj$ (../../lib/driver.js:685:13)

(2)安装libimobiledevice

brew install libimobiledevice --HEAD

 

二、安装 appium-xcuitest-driver (先卸载在重新安装新版本2.5.3)

原因:appium 默认安装的appium-xcuitest-driver版本有点老,貌似是 2.4.0的版本,老的版本问题,运行测试的时候会提示

debug] [WebDriverAgent] Device: Mar 29 15:29:21 Cheersde-iPhone XCTRunner[2848] <Notice>: Running tests...

[debug][WebDriverAgent] Device: Mar 29 15:29:22 Cheersde-iPhone XCTRunner[2848] <Notice>: Continuing to run tests in the background with task ID 1

[debug] [XCUITest] Waiting for WebDriverAgent server to finish loading...

导致被测试的app launch不起来,一直卡在 [debug][XCUITest] Waiting for WebDriverAgent server to finish loading...  这块

而新的版本appium-xcuitest-driver 2.5.3 就解决了这个问题。

安装方法:

cd /usr/local/lib/node_modules/appium

npm uninstall appium-xcuitest-driver         先卸载

npm install appium-xcuitest-driver@2.5.3  重新安装 2.5.3

 

三、编译 WebDriverAgentRunner,并安装到 真机(我的是iPhone 5s)

说明:appium是通过手机上WebDriverAgentRunner,来运行测试的,没有这个 在真机上没有办法测试(模拟器上需要着个,不过会自动安装)

3.1用Xcode打开WebDriverAgent,并且编译(编译之前需要一些设置)

(1)进入WebDriverAgent 文件夹,可用如下方法

目录是 /usr/local/lib/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent

(2)选中WebDriverAgent.xcodeproj 文件,用xcode打开,并做如图设置。

见图

编译WebDriverAgent 点击编译按钮,见上图。 提示 Build Success 后编译结束。

3.2 在手机上安装WebDriverAgent (手机和MAC都在同一个网段下)

(1)连接手机和Mac电脑

(2)终端 进入WebDriverAgent文件夹

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

执行:

xcodebuild -project WebDriverAgent.xcodeproj -scheme WebDriverAgentRunner -destination 'id=真机的udid'test

这时候,会在手机上安装 WebDriverAgentRunner 的app。

请注意手机,如果提示是不收信任的开发者,请在设置-通用-设备管理(描述文件)信任你的apple id就可以了。

再次运行

xcodebuild -project WebDriverAgent.xcodeproj -scheme WebDriverAgentRunner -destination 'id=真机的udid'test

这样WebDriverAgentRunner在手机上就安装成功了。

 

四、启动appium

命令行执行 appium

五、编写一个简单的测试用例,Java编写(基于TESTNG):

  1. <span style="font-family:SimSun;">package com.cheers.qa;
  2. import io.appium.java_client.ios.IOSDriver;
  3. import io.appium.java_client.remote.MobileCapabilityType;
  4. import org.openqa.selenium.By;
  5. import org.openqa.selenium.WebElement;
  6. import org.openqa.selenium.remote.DesiredCapabilities;
  7. import org.testng.annotations.Test;
  8. import java.net.MalformedURLException;
  9. import java.net.URL;
  10. import java.util.concurrent.TimeUnit;
  11. public class Cheers_TC1 {
  12. private IOSDriver wd;
  13. public Cheers_TC1(){}
  14. @Test
  15. public void test1() throws InterruptedException{
  16. DesiredCapabilities capabilities = new DesiredCapabilities();
  17. capabilities.setCapability("appium-version", "1.6.3");
  18. capabilities.setCapability("platformName", "iOS");
  19. capabilities.setCapability("platformVersion", "10.2.1");
  20. capabilities.setCapability("deviceName", "iPhone 5s");
  21. capabilities.setCapability(MobileCapabilityType.AUTOMATION_NAME, "XCUITest");
  22. capabilities.setCapability(MobileCapabilityType.APP, "/Users/***/Documents/workspace/swiftlive_ios_appium/ipa_files/SwiftLive.ipa");
  23. capabilities.setCapability(MobileCapabilityType.UDID, "iPhone真机UDID");
  24. try {
  25. wd =new IOSDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
  26. } catch (MalformedURLException e) {
  27. e.printStackTrace();
  28. }
  29. wd.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);
  30. System.out.println("******************** Cheers Appium iOS 真机测试 **************************");
  31. wd.close();
  32. }
  33. }</span>

然后右键,run as testng,就可以在真机上看到效果

参考文章:
https://testerhome.com/topics/6962

【转2】Appium 1.6.3 在Xcode 8 (真机)测试环境搭建 经验总结的更多相关文章

  1. MAC电脑下Appium + python3 + robotframework ios的真机测试环境搭建

    本人的环境搭建前的准备,MAC电脑一台(macOS Mojave 10.14.0及以上),Xcode 10.0及以上   ,自己注册的一个Apple ID 账户,必须你的电脑能连接互联网,最好不要用公 ...

  2. 【转1】Appium 1.6.3 在Xcode 8, iOS 10.2(模拟器)测试环境搭建 经验总结

    Appium 1.6.3 在Xcode 8, iOS 10.2(模拟器)测试环境搭建 经验总结 关于 Appium 1.6.3 在Xcode 8, 10.2 的iOS模拟器上的问题很多,本人也差点放弃 ...

  3. appium ios真机自动化环境搭建&运行(送源码)

    appium ios真机自动化环境搭建&运行(送源码) 原创: f i n  测试开发社区  6天前 Appium测试环境的搭建相对比较烦琐,不少初学者在此走过不少弯路 首先是熟悉Mac的使用 ...

  4. appium ios真机自动化环境搭建&运行(送源码)

    appium ios真机自动化环境搭建&运行(送源码) 原创: f i n  测试开发社区  6天前 Appium测试环境的搭建相对比较烦琐,不少初学者在此走过不少弯路 首先是熟悉Mac的使用 ...

  5. iOS—Xcode 7真机测试

    Xcode 7真机测试详解 1.准备 注意:一定要让你的真机设备的系统版本和app的系统版本想对应,如果不对应就会出现一个很常见的问题:could not find developer disk im ...

  6. Xcode 7真机测试详解

    1.准备 注意:一定要让你的真机设备的系统版本和app的系统版本想对应,如果不对应就会出现一个很常见的问题:could not find developer disk image 首先,准备好下面的设 ...

  7. Xcode 9,真机测试,App installation failed

    真机测试:能够build成功,但是 报错App installation failed A valid provisioning profile for this executable was not ...

  8. Appium移动端自动化测试--搭建模拟器和真机测试环境

    详细介绍安装Android Studio及Android SDK.安装Appium Server. 文章目录如下 目录 文章目录如下 模拟器--安装Android Studio及Android SDK ...

  9. appium ios 真机自动化环境搭建

    近期由于工作需要,本小菜在弄appium+ios+iphone真机的移动自动化,在网上找寻各种资料,发现针对IOS方面的资料少之又少,公司其它部门的弄过的同事也寥寥无几,即使有,也是安卓方面的.本次书 ...

随机推荐

  1. 直接编译caffe出现的两个问题

    工控机的环境之前已经配置好ubuntu14.04+CUDA7.5+cuDNN v4,再加opencv3.1.要用ResNet做分类,需要重新编译一个caffe框架.下载BVLC/caffe,接着修改M ...

  2. Android数据存储之内部存储、外部存储

    首先来介绍下什么是内部存储? 在Android平台下,有着自己独立的数据存储规则,在windows平台下,应用程序能够自由的或者在特定的訪问权限基础上訪问或改动其它应用程序下的文件资源. 可是在And ...

  3. WARNING: Re-reading the partition table failed with error 16: Device or resource busy.

    在 mkfs.ext4 /dev/sda2 格式化硬盘空间时,可能出现这种错误. had this situation at office where I was told to re-partiti ...

  4. 初识ajax

    ajax优势:不刷新整个页面,只刷新局部(无刷新) 无刷新的好处: 只更新部分页面,有效利用宽带 提供连续的用户体验 提供类似C/S的交互效果,操作更方面 什么是ajax AJAX :代表 Async ...

  5. 王磊:AI 时代物流行业的 OCR 应用

    欢迎大家前往腾讯云技术社区,获取更多腾讯海量技术实践干货哦~ OCR 是人工智能里面非常重要的基础能力之一.腾讯云人工智能产品总监王磊,结合物流场景解读了OCR技术."OCR文本识别能够优化 ...

  6. 浏览器兼容性--IE11以及Edge等下载文件的中文名出现乱码,前后端解决方案

    项目中有用到文件下载功能,之前在处理下载时对IE浏览器下文件下载名进行过处理,测试也没有问题,但是功能上线后,业务反馈IE11文件下载文件名依然乱码.打印User-Agent字符串如下: IE11 U ...

  7. OC金额转大写

    -(NSString *)digitUppercaseWithMoney:(NSString *)money { NSMutableString *moneyStr=[[NSMutableString ...

  8. 【转】Android开发之数据库SQL

    android中的应用开发很难避免不去使用数据库,这次就和大家聊聊android中的数据库操作. 一.android内的数据库的基础知识介绍 1.用了什么数据库 android中采用的数据库是SQLi ...

  9. ArcGIS API for JavaScript 4.2学习笔记[15] 弹窗内容的格式与自定义格式

    先看结果截图吧(不看过程可以直接看总结,在文末): 随便点击了两个城市斑块,出现结果如图. 我来解读一下这结果和以前的有什么不同: 这个例子使用了PopupTemplate,数据是Layer(使用Po ...

  10. iView的使用【CDN向】

    直接粗暴地上html代码 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> ...