• 【转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模拟器上的问题很多,本人也差点放弃,最终成功运行,确实不容易,故此写篇文章,供大家参考,让大家少走弯路。
    一、 安装Appium
    (1) 先安装node-js,然后通过node-js命令安装 Appium

         (1.1)安装方法一:
             在https://nodejs.org/en/download/ 下载 macOS Installer (.pkg) 安装,原因是简单、省心,不用配置环境变量,点击按照向导完成即可。
              安装完后,在命令行终端 npm -v ,查看 node-js版本,目前是  3.10.10
        (1.2)安装方法二:使用命令安装:
    brew install node

    (2)安装 Appium
        命令行终端: 
    npm install -g Appium

    着个需要执行一段时间,大家需要有耐心。

    可能出现的问题:等待过程中卡着不动, 建议 终止安装 (control+c),然后重试。如果还不行,用更高的权限安装 sudo npm install -g appium 基本上可以安装成功。
    二、 安装相关的依赖
    (1)  安装 homebrew (关于homebrew介绍,见 安装 homebrew)
    Homebrew的安装非常简单,打开终端复制、粘贴以下命令,回车,搞定(请放心使用,原汁原味的官方安装方法搬运)
    ruby -e"$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

    提示如下,表示安装成功了:

    ==> Next steps:
    - Run `brew help` to get started
    - Further documentation: 
        http://docs.brew.sh

    (2)安装carthage,通过 homebrew 安装

     brew install carthage
    (3)安装 webpack
        npm i -g webpack
     着个非常重要,和WebDriverAgent相关,没有这个 会报错:Unable to create new remote session
     安装 webpack 报错:
    npm ERR! Darwin 16.4.0
    npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "i" "-g" "webpack"
    npm ERR! node v6.10.1
    npm ERR! npm  v3.10.10
    npm ERR! path /usr/local/lib/node_modules
    npm ERR! code EACCES
    npm ERR! errno -13
    npm ERR! syscall access

    npm ERR! Error: EACCES: permission denied, access '/usr/local/lib/node_modules'
    npm ERR!     at Error (native)
    npm ERR!  { Error: EACCES: permission denied, access '/usr/local/lib/node_modules'
    npm ERR!     at Error (native)
    npm ERR!   errno: -13,
    npm ERR!   code: 'EACCES',
    npm ERR!   syscall: 'access',
    npm ERR!   path: '/usr/local/lib/node_modules' }
    npm ERR! 
    npm ERR! Please try running this command again as root/Administrator.
    npm ERR! Darwin 16.4.0
    npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "i" "-g" "webpack"
    npm ERR! node v6.10.1
    npm ERR! npm  v3.10.10
    npm ERR! path npm-debug.log.2786948488
    npm ERR! code EACCES
    npm ERR! errno -13
    npm ERR! syscall open

    npm ERR! Error: EACCES: permission denied, open 'npm-debug.log.2786948488'
    npm ERR!     at Error (native)
    npm ERR!  { Error: EACCES: permission denied, open 'npm-debug.log.2786948488'
    npm ERR!     at Error (native)
    npm ERR!   errno: -13,
    npm ERR!  code: 'EACCES',
    npm ERR!   syscall: 'open',
    npm ERR!   path: 'npm-debug.log.2786948488' }
    npm ERR!
    npm ERR!Please try running this command again as root/Administrator.

    npm ERR! Please include the following file with any support request:
    npm ERR!     /usr/local/lib/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent/npm-debug.log

    错误意思是 /usr/local/lib/node_modules 目录权限被拒绝

    解决方法:进入/usr/local/lib/node_modules 执行: sudo chmod -R a+rwx .  (给这个目录下所有文件,文件夹读写可执行权限)

    (4)安装 WebDriverAgent相关依赖

       进入目录:cd /usr/local/lib/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent/

    创建目录:mkdir -p Resources/WebDriverAgent.bundle

       执行: ./Scripts/bootstrap.sh -d
    至此mac端的相关依赖安装结束。
    三、iOS 10.2 模拟器

              需要安装iOS 10.2 的 iPhone 7 模拟器(本文就是针对10.2 iOS模拟器测试,Xcode是 8.2.1)。
    四、Appium 测试开始,基于Java。
    (1)需要下载最新的 selenium-server-standalone-3.3.1.jar;java-client-5.0.0-BETA6.jar,并加入eclise项目中引用中去。

    (2)新建一个Unit测试,如:

    1. package com.conversant.cheersApptest;  
    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.remote.DesiredCapabilities;  
    6. import java.net.MalformedURLException;  
    7. import java.net.URL;  
    8. import java.util.concurrent.TimeUnit;  
    9. import junit.framework.TestCase;  
    10. public class appCheersTest1 extends TestCase{  
    11. private IOSDriver wd;  
    12. public appCheersTest1(){  
    13.     }  
    14. public void test1() throws InterruptedException{  
    15.         DesiredCapabilities capabilities = new DesiredCapabilities();  
    16.         capabilities.setCapability("appium-version", "1.6");  
    17.         capabilities.setCapability("platformName", "iOS");  
    18.         capabilities.setCapability("platformVersion", "10.2");  
    19.         capabilities.setCapability("deviceName", "iPhone 7");  
    20.         capabilities.setCapability("newCommandTimeout",60000);  
    21.         capabilities.setCapability("launchTimeout",60000);  
    22.         capabilities.setCapability(MobileCapabilityType.AUTOMATION_NAME, "XCUITest");  
    23.         capabilities.setCapability("app", "/Users/***/Desktop/cheers_appium/cheersApp.app");  
    24. try {  
    25.             wd =new IOSDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);  
    26.         } catch (MalformedURLException e) {  
    27. // TODO Auto-generated catch block  
    28.             e.printStackTrace();  
    29.         }  
    30.         wd.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);  
    31.         System.out.println("**********************Cheers Li Appium Testing ******************************");      
    32.         wd.close();  
    33.     }  
    34. }  
    (3)启动Appium server。命令终端: appium

    如:

    [Appium] Welcome to Appium v1.6.3
    [Appium] Appium REST http interface listener started on 0.0.0.0:4723

    (4) 运行测试,就可在模拟器中看到效果。
    五、总结

    最终发现很多问题,都是权限和依赖包的问题,这些问题解决了,自然Appium 1.6.3 在Mac Xcode8.2.1和iOS 10.2的模拟器中就能顺利运行起来。

    过程中遇到问题基本有:(1)在eclipse执行测试,模拟器不断的重启 (2)模拟器启动起来,提示 连接不到模拟器 (3)模拟器中 APP不能启动

    大家如果按照我这篇文章的操作,一般情况下,应该没有什么问题。

    最后说明下: Xcode8以上,UI automation 被移除掉了,Xcode 8以后,从Appium1.6.0的应用的测试 是基于 facebook的 WebDriver 协议的XCUITest。

    这篇文章对我帮助很大,大家也可参考:

    org.openqa.selenium.SessionNotCreatedException: Unable to create new remote session [SOLVED] 

     
     
  • 相关阅读:
    Java扫描二维码进行会议签到思路
    Cognos11中通过URL传参访问动态Report
    MySQL数据复制到其他主机时报错
    ESXI部署OVF模板提示用户已取消操作处理方法
    Esxi 6.0虚拟机迁移Linux遇到网络配置错误
    数据库迁移工具Navicat Premium之OracleToMysql
    Cognos11中Dashboard和HTML页面的简单集成
    Cognos11只需简单几步创建你的Dashboard
    云服务器 ECS Linux Ubuntu 主机修改主机名
    gitlab webhook报500
  • 原文地址:https://www.cnblogs.com/xiyuan2016/p/7479621.html
Copyright © 2020-2023  润新知