• 【转2】Appium 1.6.3 在Xcode 8 (真机)测试环境搭建 经验总结


    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):

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

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

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

  • 相关阅读:
    序列模型
    conda安装库时报错Solving environment: failed with initial frozen solve. Retrying with flexible solve.
    OverflowError: mktime argument out of range问题
    Supervised ML-1
    CKE(Collaborative Knowledge Base Embedding for Recommender Systems)笔记
    Word2vec学习
    BERT
    DeText: A Deep Text Ranking Framework with BERT论文笔记
    解决Server returns invalid timezone. Go to 'Advanced' tab and set 'serverTimezone' property manually.(IDEA连接mysql数据库)
    django-settings配置介绍
  • 原文地址:https://www.cnblogs.com/xiyuan2016/p/7479630.html
Copyright © 2020-2023  润新知