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. 互联网协议(Internet Protocol Suite)

    互联网实现分层:有的7层有的4层:阮一峰认为分五层(个人喜欢): 最底下的一层叫做"实体层"(Physical Layer),最上面的一层叫做"应用层"(App ...

  2. Cacti监控一台Webserver上多个Tomcatport的实现

    由于一台web应用server上面安装了多台tomcat,有多个port.比方默认的8080,还有兴许追加的9100,9300,9500等等.一个cacti_host_template_tomcat_ ...

  3. 腾讯qq等级计算公式面试题

    就三道题大概是: 1. 推算出等级相应的天数 这个还比較简单,公式是:(b=2a+3)   a是等级, b是相应的天数 2. 推算出等级总共的天数 先看下规律 等级a 相应天数b 总天数s 1 5 5 ...

  4. HLJU 1223: 寻找区间和 (交替推进法)

    1223: 寻找区间和 Time Limit: 3 Sec  Memory Limit: 128 MB Submit: 13  Solved: 4 [Submit][Status][pid=1223& ...

  5. 前端笔记----类型转换display

    display属性用来在行内元素,块元素,行内块元素之间进行转化. 常用的属性有: 1.none :元素隐藏且不占位置,相当于不存在,一般用在动态展示效果:2.block :元素以块元素显示,有些行内 ...

  6. MyBatis_多查询条件问题

    一.多查询条件无法整体接收问题的解决 在实际工作中,表单中所给出的查询条件有时是无法将其封装成一个对象,即查询方法只能携带多个参数,而不能携带将这多个参数进行封装的一个对象.对于这个问题,有两种解决方 ...

  7. 搭建 Keepalived + Nginx + Tomcat 的高可用负载均衡架构

    1 概述 初期的互联网企业由于业务量较小,所以一般单机部署,实现单点访问即可满足业务的需求,这也是最简单的部署方式,但是随着业务的不断扩大,系统的访问量逐渐的上升,单机部署的模式已无法承载现有的业务量 ...

  8. springboot 热部署的两种方式

    问题的提出: 在编写代码的时候,你会发现我们只是简单把打印信息改变了,就需要重新部署,如果是这样的编码方式,那么我们估计一天下来就真的是打几个Hello World就下班了.那么如何解决热部署的问题呢 ...

  9. iOS 多线程 之 GCD(大中枢派发)(一)

    导语: 本文个人原创,转载请注明出处(http://www.cnblogs.com/pretty-guy/p/8126981.html) 在iOS开发中多线程操作通常是一下3种,本文着重介绍Dispa ...

  10. Sum of odd and even elements

    Given an integer N, you have to print the sum of odd numbers and even numbers form 1 to N Input:Firs ...