iOS自动化真机测试验证环境过程中常见问题解析

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS自动化真机测试验证环境过程中常见问题解析相关的知识,希望对你有一定的参考价值。

参考技术A > 本文节选自霍格沃兹测试学院内部教材

本章节主要讲解 ios 自动化真机配置以及在 iOS 真机执行自动化时常见问题与解决方法。

真机使用的Capability  

与模拟器不同,真机测试需要如下的 Capability

方式一:设置 App 路径,启动 App(自动安装 App)

  *   *   *   *   *   *   *   * 

      "app": "/Users/seveniruby/Library/Developer/Xcode/DerivedData/UICatalog-ftyzdbgapjmxxobezrnrxsshpdqh/Build/Products/Debug-iphoneos/UICatalog.app",  "automationName": "XCUITest",  "platformName": "ios",  "xcodeOrgId": "xxxxxx",  "xcodeSigningId": "iPhone Developer",  "udid": "9df22446af15919c494c85b4c1c8b00eaa3a5bd0"

方式二:根据 App 包名启动 App

  *   *   *   *   *   *   *   *   * 

      "platformName": "ios",  "bundleId": "com.example.apple-samplecode.UICatalog",  "automationName": "XCUITest",  "deviceName": "iPhone",  "udid": "auto",  "xcodeOrgId": "xxxxx",  "xcodeSigningId": "iPhone Developer"

  * app: Xcode 选择真机编译后的 app 位置

  * bundleId: 每个 App 的标识,相当于 android App 的 appPackage

  * xcodeOrgId: Team ID,获取方法详见`https://ceshiren.com/t/topic/11539`

  * udid:auto 会根据 deviceName 返回的参数自动获取 udid

 **注意:编译成功后需要在手机里信任证书**

使用Appium Desktop验证环境  

以上步骤完成后,出现下图表示真机环境配置成功

常见问题  

 **问题一   **

> Failed to register bundle identifier

  * 原因:bundle identifier 有重复

  * 解决方法:修改为唯一的即可

 **问题二   **

> 执行 instruments -s devices 命令报错:Hogwarts $ instruments -s devices xcode-

> select: error: tool 'instruments' requires Xcode, but active developer

> directory '/Library/Developer/CommandLineTools' is a command line tools

> instance

  * 原因:安装了 Xcode,但是不在系统默认的目录下。

  * 解决方法:需要把 Xcode 的路径修改为你安装的位置,可以在终端里面用命令修改,执行命令 sudo xcode-select --switch /Applications/Xcode.app

 **问题三   **

> 运行脚本过程中,手动停止脚本时,偶尔会报错 Showing All Messages WebDriverAgentRunner-Runner.app

> (3413) encountered an error (Early unexpected exit, operation never finished

> bootstrapping - no restart will be attempted. (Underlying error: The test

> runner exited with code 74 before checking in.))

  * 解决方法:重启手机或者拔掉 IOS 数据线,重新连接电脑

 **问题四   **

  *   *   *   *   *   * 

    note: Using new build systemnote: Building targets in parallelnote: Planning buildnote: Constructing build descriptionerror: No signing certificate "iOS Development" found: No "iOS Development" signing certificate matching team ID "L62JHCGMQW" with a private key was found. (in target 'WebDriverAgentLib' from project 'WebDriverAgent')error: No profiles for 'com.facebook.WebDriverAgentRunner.xctrunner' were found: Xcode couldn't find any iOS App Development provisioning profiles matching 'com.facebook.WebDriverAgentRunner.xctrunner'. Automatic signing is disabled and unable to generate a profile. To enable automatic signing, pass -allowProvisioningUpdates to xcodebuild. (in target 'WebDriverAgentRunner' from project 'WebDriverAgent')

  * 原因:更换手机后,未重新 build;

  * 解决方法:更换手机后重新 build WDA,然后点击 test 安装 wda

 **问题五   **

  *   *   *   *   * 

    Assertions: System: Early unexpected exit, operation never finished bootstrapping - no restart will beattempted. (Underlying Error: The test runner exited with code 74 before checking in. If you believe thiserror represents a bug, please attach the result bundle at/Users/dzkair/Library/Developer/Xcode/DerivedData/WebDriverAgent-alwvnomvwrdtzoaxbbkniqrpcdpp/Logs/Test/Test-WebDriverAgentRunner-2020.11.26_10-47-38-+0800.xcresult)

  * 解决方法:重新插拔手机即可

常见问题给大家总结了这些,如果大家有遇到其他的问题也可以在下方留言哦~  

 ** _ 

来霍格沃兹测试开发学社,学习更多软件测试与测试开发的进阶技术,知识点涵盖web自动化测试 app自动化测试、接口自动化测试、测试框架、性能测试、安全测试、持续集成/持续交付/DevOps,测试左移、测试右移、精准测试、测试平台开发、测试管理等内容,课程技术涵盖bash、pytest、junit、selenium、appium、postman、requests、httprunner、jmeter、jenkins、docker、k8s、elk、sonarqube、jacoco、jvm-sandbox等相关技术,全面提升测试开发工程师的技术实力

QQ交流群:484590337

公众号 TestingStudio

视频资料领取:https://qrcode.testing-studio.com/f?from=jianshu&url=https://ceshiren.com/t/topic/15844

点击查看更多信息

使用Appium进行iOS的真机自动化测试

参考技术A 在终端输入

验证所有依赖是否安装成功,都是打钩状态就证明环境正常,如图

3.执行

4.直接用Xcode打开 WebDriverAgent.xcodeproj 文件
5.配置 WebDriverAgentLib 和 WebDriverAgentRunner 的证书

一切正常的话,手机/模拟器上会出现一个无图标的 WebDriverAgent 应用,启动之后,马上又返回到桌面。

此时控制台界面可以看到设备的 IP 地址:

通过上面给出的 IP地址 和端口,加上/status合成一个url地址。例如 [ http://192.168.3.26:8100/status] ,然后浏览器打开。如果出现一串 JSON 输出,说明 WDA 安装成功了。

如果连接的是真机,则有可能会打不开。我们需要做一下端口转发。

此时在浏览器中打开链接 http://localhost:8100/status 查看,显示:

我已经在手机上装好了被测应用,若还未安装,需通过appName指定安装包路径。点击右下角Start Session,

1.报错

解决:
WebDriverAgent -> Build Settings -> Build Options -> Validate Workspace = Yes.

1.执行./Scripts/bootstrap.sh后报错

原因不详,已解决

2.xcode运行报错

解决

以上是关于iOS自动化真机测试验证环境过程中常见问题解析的主要内容,如果未能解决你的问题,请参考以下文章

使用Appium进行iOS的真机自动化测试

Mac + Appium + Java1.8学习之IOS自动化环境安装配置以及简单测试用例编写(模拟器真机)

基于Appium+WDA+Python搭建IOS自动化测试全纪录(三):真机demo运行

Appium自动化测试之IOS模拟器与真机

Appium自动化测试之IOS模拟器与真机

Appium+Python3+iOS真机环境搭建