Mac自动化环境搭建

  • 工具原料
    • Homebrew
    • Java(1.8.0 及以上)
    • Xcode(8.0 及以上版本)
    • IDE(Eclipse, Intellij 或其他 Java IDE)
    • Appium - Desktop(1.1.0 及以上版本, 可选)
    • iPhone(iPhone 6 及以上机型, 10.0 及以上系统 )
  • 基础工作
    • 运行java -version查看 java 版本是否满足最低要求, 自行升级
    • 运行xcode-select --install安装 Xcode Command Line Tool(已安装则跳过)
    • 下载脚本 bootstrap.sh(运行脚本需要升级 brew, 可根据脚本提示选择是否手动升级; bash bootstrap.sh -h可获取脚本详细信息, 包括参数说明、所需安装依赖工具等其他注意事项)
  • 注意事项
    • 自动化环境分为两种版本(针对日常的的自动化需求只需构建 GUI 版本即可)
      1. GUI(图形界面)版本, 集成了图形化的工具, 便于编写用例及调试(推荐版本)
      2. CLI(命令行界面)版本, 使用命令行启动服务, 便于集成自定义脚本
    • 运行脚本安装依赖环境和配置 WebDriverAgent 均须联接网络
    • Inspect 是查看App界面的辅助工具, 用于日常调试时的元素捕获定位, 文档中关于调试 Inspector 的步骤除帮助熟悉配置并使用这个工具外, 对于自动化环境的构建, 能成功运行 Inspector 查看界面元素也是环境构建完成的最终标志
    • Java IDE 需集成单元测试工具 JUnit(Eclipse默认集成, Intellij一般也默认集成,在编写用例过程中如无单元测试按钮自行安装插件)
  • 配置依赖环境
    • GUI推荐
    • CLI
  • 编写测试用例
  • FAQ

GUI

  • 运行脚本 bash bootstrap.sh -d安装 GUI 依赖环境
  • 运行appium-doctor --ios检查环境是否安装正确
  • 安装 Appium
  • 配置 WebDriverAgent
    1. 进入 WebDriverAgent 根目录 (cd /Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent, 根据 Appium.app 安装路径调整命令)
    2. 配置 WebDriverAgent
  • 调试 Appium Inspector

WebDriverAgent

  1. 使用 Xcode 打开WebDriverAgent.xcodeproj, 选择编译目标机器, 修改 WebDriverAgentLib -> Bundle Identifier : com.facebook.WebDriverAgentLibcom.xxx.WebDriverAgentLib 其他ID, 勾选 Automatically manage singing 使用个人账号 team, 保证此处不产生编译错误
    ![图1]
    Mac自动化环境搭建_第1张图片
    autotest_process5.png
  2. 先修改 WebDriverAgentRunner -> Build Setting -> Product Bundle Identifier : com.facebook.WebDriverAgentLib 与上步相同, 之后勾选 Automatically manage signing 使用个人账号 team, 保证此处不产生编译错误
    Mac自动化环境搭建_第2张图片
    图2

    Mac自动化环境搭建_第3张图片
    图3

Appium Inspector

  1. 启动 Appium 服务端


    Mac自动化环境搭建_第4张图片
    图4
  2. 建立 Session


    Mac自动化环境搭建_第5张图片
    图5
  3. 选中Automatic Sercer配置并开启 Session(左侧为真机配置, 右侧为模拟器配置。需要注意的是模拟器配置需要给定具体的机型和对应的版本号, 可运行instruments -s查看
    Mac自动化环境搭建_第6张图片
    图6

    Mac自动化环境搭建_第7张图片
    图7

CLI

  • 运行脚本 bash bootstrap.sh -d安装 CLI 依赖环境
  • 运行appium-doctor --ios检查环境是否安装正确
  • 配置 WebDriverAgent
    • 进入 WebDriverAgent 根目录 (cd /usr/local/lib/node_modules/appium/node_modules/[email protected]@appium-xcuitest-driver/WebDriverAgent, 根据安装路径调整命令)
    • 配置 WebDriverAgent
  • 配置 app-inspector
    • 进入 app_inspector 根目录(cd /usr/local/lib/node_modules/app-inspector/node_modules/xctestwd/XCTestWD, 根据安装路径调整命令)
    • 配置 app-inspector
  • 启动服务
    • 运行appium -p 4723

app-inspector

  1. 使用 Xcode 打开XCTestWD.xcodeproj, 选择编译目标机器, 修改 XCTestWD -> Bundle Identifier : XCTestWD.XCTestWDxxx.XCTestWD 其他ID, 勾选 Automatically manage singing 使用个人账号 team, 保证此处不产生编译错误
    Mac自动化环境搭建_第8张图片
    图8
  2. 修改 XCTestWDUITests -> Build Setting -> Product Bundle Identifier : XCTestWD.XCTestWD 与上步相同, 勾选 Automatically manage signing 使用个人账号 team, 保证此处不产生编译错误
    Mac自动化环境搭建_第9张图片
    图9
  3. 运行app-inspector -u 真机UDID(CLI环境构建完成)
    Mac自动化环境搭建_第10张图片
    图10

编写测试用例

  • 用 IDE 打开工程


    Mac自动化环境搭建_第11张图片
    图11
  • 修改Auto_iOS/config/config.properties文件配置, 一般只需修改 deviceCode, 即真机 UDID

    Mac自动化环境搭建_第12张图片
    图12

  • 如需模拟器运行,则注释 deviceCode, 填写相应 .app 文件路径


    Mac自动化环境搭建_第13张图片
    图13
  • 编写测试用例进行调试


    Mac自动化环境搭建_第14张图片
    图14

FAQ

  • Q : 启动 Appium Server 后进行 Inspectior 调试的候日志显示xcodebuild exited with code '65' and signal 'null'
    • A : 此类问题原因很多, 但是度可以归结为 WebDriverAgent 的编译问题。例如工程证书签名报错或者没有在真机上信任证书。解决方法:
      • 保证网络联接正常
      • 进入 WebDriverAgent 根目录, 并在当前目录下执行xcodebuild -project WebDriverAgent.xcodeproj -scheme WebDriverAgentRunner -destination 'id=真机UDID' clean test(替换 id 为相应参数)(或者用 Xcode 打开WebDriverAgent.xcodeproj选择真机执行command + U操作)在真机上 Test。根据日志信息进行修复直到成功为止,关闭进程。
      • 如果日志提示证书验证失败, 在手机上进入设置 -> 通用 -> 描述设备与设备管理选择相应的证书进行认证(手机保持联网状态)并再次进行同样的 Test 操作
        Mac自动化环境搭建_第15张图片
        图15
  • Q : 运行 app-inspectort 报错,浏览器显示 Internal Server Error
    • A : 此类问题一般为 app-inspectort 编译问题, 解决方法:
      • 进入 app-inspector 根目录, 并在当前目录下执行xcodebuild -project XCTestWD.xcodeproj -scheme XCTestWDUITests -destination 'id=真机UDID' XCTESTWD_PORT=8001 clean test(替换 id 为相应参数)(或者用 Xcode 打开XCTestWD.xcodeproj选择真机执行command + U操作)在真机上 Test。根据日志信息进行修复直到成功为止,关闭进程。
        Mac自动化环境搭建_第16张图片
        图16
  • Q : 打开自动化代码工程后代码大面积报错, 编译器提示 Project SDK is not defined, 进行单元测试出现下图警告
    Mac自动化环境搭建_第17张图片
    图17
    • A : 此类问题一般为工程的 Java SDK 路径错误, 解决方法:
      1. 选择 File -> Project Structure
        Mac自动化环境搭建_第18张图片
        图18
      2. 选择 Java SDK, 如果选项中没有 SDK, 则原因是没有设置 Java Home 路径, 选择 New, 添加 Java SDK, 路径为/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home, 路径会因为版本而稍有不同
        Mac自动化环境搭建_第19张图片
        图19
      3. 保存设置再次运行
  • Q : 已经安装了最新的 Java 版本, 运行java -version却依然显示旧版本号
    • A : 假设 Java 版本为 1.6, 操作如下:

      sudo mv /usr/bin/java /usr/bin/java-1.6
      
      sudo ln -s '/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java' /usr/bin/java    
      

      如上步遭遇 Operation not permitted 错误, 重启电脑, 开机时按command + R组合快捷键, 进入恢复模式, 打开Terminal输入命令后重启, 重复上步

      csrutil disable
      
      

      可用同样的方式 enable csrutil

    ```
    csrutil disable

    ```

你可能感兴趣的:(Mac自动化环境搭建)