草庐IT

iOS+Appium最简单的环境搭建,快速实现真机自动化测试

liuage_ 2024-03-18 原文

前言

整理不易耗时两星期配置成功,查看一两年前的教程文章走了太多弯路到处都是坑和报错

需配置环境:Homebrew、node、cnpm、Carthage、ios-deploy、libimobiledevice&ideviceinstaller,Xcode,appium&WebDriverAgent,appium Inspector

一、环境配置

1. Homebrew安装

Homebrew简称brew,是Mac上的软件管理工具(卸载和安装),和python里的pip差不多

● 官网:https://brew.sh/
● 安装:

终端输入,中途有报错就重复安装
/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"

● 安装完成后终端输入 brew -v 检测,显示版本号即安装成功;

2. node和cnpm 安装

Appium需使用npm来安装,所以需要下载node解释器;

● 安装node:终端输入:brew install node
● 查看版本:node -v

● 安装cnpm:npm install -g cnpm --registry=https://registry.npm.taobao.org

3. Carthage安装

Carthage是一个类CocoaPods的第三方类管理工具

● 安装:brew install carthage
● 安装完成后终端输入:carthage version 显示版本表示成功:

4. ios-deploy安装

ios-deploy是一个终端安装和调试iPhone应用的第三方开源库

● 安装:cnpm install -g ios-deploy
● 输入:ios-deploy -V 出版本号即安装成功

5. libimobiledevice,ideviceinstaller安装

跟安卓的adb差不多用来查看连接设备信息

● 安装 libimobiledevice:brew install --HEAD libimobiledevice
● 安装 ideviceinstaller:brew install ideviceinstaller
● 常用命令

# 终端输入
idevice_id -l #查看连接设备的[udid]
ideviceinfo # 查看连接设备信息
ideviceinstaller -l # 查看连接设备安装包

6. Xcode安装

Xcode 是运行在操作系统Mac OS X上的集成开发工具(IDE),由Apple Inc开发。Xcode是开发 macOS 和 iOS 应用程序的最快捷的方式。Xcode 具有统一的用户界面设计,编码、测试、调试都在一个简单的窗口内完成。

● 安装:打开mac上面的【App Store】搜索Xcode进行安装即可
 

二、appium安装和WebDriverAgent环境搭建

Appium是一个开源的,适用于原生或混合移动应用( hybrid mobile apps )的自动化测试工具,Appium应用WebDriver: JSON wire protocol驱动安卓和iOS移动应用

安装appium
● 安装:sudo cnpm install -g appium
● 查看版本:appium -v
● 启动服务:appium

安装appium-doctor,用来检测appium环境
● 安装:cnpm install -g appium-doctor
● 查看:cappium-doctor --ios
配置WebDriverAgent环境
● 查看appium安装路径

# 终端输入
ls -l /usr/local/bin/appium
# 显示路径:
lrwxr-xr-x  1 root  wheel  44  4 28 15:32 /usr/local/bin/appium -> 
../lib/node_modules/appium/build/lib/main.js
# ../lib = /usr/local/lib

● 进入目录/usr/local/lib/node_modules/appium,给node_modules目录递归给最高权限,有写权限的可以跳过这一步

# 终端输入
cd /usr/local/lib/node_modules/appium -进入appium目录
sudo chmod -R 777 node_modules -给当前用户最高权限

● 进入node_modules目录下appium-webdriveragent,并打开【WebDriverAgent.xcodeproj】项目

# 终端输入
cd node_modules/appium-webdriveragent -进入目录
open . -以窗口形式打开目录
双击【WebDriverAgent.xcodeproj】,会用Xcode打开项目


● 通过Xcode配置WebDriverAgent,并安装到连接手机上面
   (1) 设置【WebDriverAgentLib】、【WebDriverAgentRunner】、【IntegrationApp】的Team,选择自己登录的Apple ID,登录Apple ID:(左上角Xcode-》Preferrence-》点击下面的进行增删)

  (2)设置【WebDriverAgentRunner】、【IntegrationApp】Build Settings下Packaging目录下Product Bundle Identifier的id,把其中facebook改掉就行,自己随意改
  (3) 设置【Product】→【Scheme】选择【WebDriverAgentRunner】

  (4) 选中自己连接的设备,command + u 运行即可
  (5) 第一次运行需要在真机设置里面给证书设置信任【设置】→【通用】→【VPN与设备管理】选择开发者APP下面刚安装的WebDriverAgent信任即可,在次command+u即可正常运行,启动成功后Xcode下面会出一串URL
  (6) 然后关闭Xcode服务 ,Xcode也可以关闭了,WebDriverAgent配置完成
 

三、appium Inspector安装

1、 进入下载地址:https://github.com/appium/appium-inspector
2、点击Installation下的【Release】
3、选择最新的版本即可,我目前是2022.4.1
4、点击dmg包下载并安装即可

 

四、使用Inspector启动app

1、终端启动appium服务,终端输入:appium

2、打开appium Inspector
3、输入启动参数,大致和Android差不多,看下面截图(连接设备必须安装有此app)
  app - app的包名
  udid - 连接设备id,终端输入:idevice_id -l 可查连接设备的udid
4、点击Start Session启动app即可,成功

有关iOS+Appium最简单的环境搭建,快速实现真机自动化测试的更多相关文章

  1. ruby-on-rails - 使用 Ruby on Rails 进行自动化测试 - 最佳实践 - 2

    很好奇,就使用ruby​​onrails自动化单元测试而言,你们正在做什么?您是否创建了一个脚本来在cron中运行rake作业并将结果邮寄给您?git中的预提交Hook?只是手动调用?我完全理解测试,但想知道在错误发生之前捕获错误的最佳实践是什么。让我们理所当然地认为测试本身是完美无缺的,并且可以正常工作。下一步是什么以确保他们在正确的时间将可能有害的结果传达给您? 最佳答案 不确定您到底想听什么,但是有几个级别的自动代码库控制:在处理某项功能时,您可以使用类似autotest的内容获得关于哪些有效,哪些无效的即时反馈。要确保您的提

  2. ruby - 如何根据特征实现 FactoryGirl 的条件行为 - 2

    我有一个用户工厂。我希望默认情况下确认用户。但是鉴于unconfirmed特征,我不希望它们被确认。虽然我有一个基于实现细节而不是抽象的工作实现,但我想知道如何正确地做到这一点。factory:userdoafter(:create)do|user,evaluator|#unwantedimplementationdetailshereunlessFactoryGirl.factories[:user].defined_traits.map(&:name).include?(:unconfirmed)user.confirm!endendtrait:unconfirmeddoenden

  3. ruby - 简单获取法拉第超时 - 2

    有没有办法在这个简单的get方法中添加超时选项?我正在使用法拉第3.3。Faraday.get(url)四处寻找,我只能先发起连接后应用超时选项,然后应用超时选项。或者有什么简单的方法?这就是我现在正在做的:conn=Faraday.newresponse=conn.getdo|req|req.urlurlreq.options.timeout=2#2secondsend 最佳答案 试试这个:conn=Faraday.newdo|conn|conn.options.timeout=20endresponse=conn.get(url

  4. ruby - 如何验证 IO.copy_stream 是否成功 - 2

    这里有一个很好的答案解释了如何在Ruby中下载文件而不将其加载到内存中:https://stackoverflow.com/a/29743394/4852737require'open-uri'download=open('http://example.com/image.png')IO.copy_stream(download,'~/image.png')我如何验证下载文件的IO.copy_stream调用是否真的成功——这意味着下载的文件与我打算下载的文件完全相同,而不是下载一半的损坏文件?documentation说IO.copy_stream返回它复制的字节数,但是当我还没有下

  5. Ruby 文件 IO 定界符? - 2

    我正在尝试解析一个文本文件,该文件每行包含可变数量的单词和数字,如下所示:foo4.500bar3.001.33foobar如何读取由空格而不是换行符分隔的文件?有什么方法可以设置File("file.txt").foreach方法以使用空格而不是换行符作为分隔符? 最佳答案 接受的答案将slurp文件,这可能是大文本文件的问题。更好的解决方案是IO.foreach.它是惯用的,将按字符流式传输文件:File.foreach(filename,""){|string|putsstring}包含“thisisanexample”结果的

  6. ruby - 用 Ruby 编写一个简单的网络服务器 - 2

    我想在Ruby中创建一个用于开发目的的极其简单的Web服务器(不,不想使用现成的解决方案)。代码如下:#!/usr/bin/rubyrequire'socket'server=TCPServer.new('127.0.0.1',8080)whileconnection=server.acceptheaders=[]length=0whileline=connection.getsheaders想法是从命令行运行这个脚本,提供另一个脚本,它将在其标准输入上获取请求,并在其标准输出上返回完整的响应。到目前为止一切顺利,但事实证明这真的很脆弱,因为它在第二个请求上中断并出现错误:/usr/b

  7. ruby-on-rails - 在 Rails 开发环境中为 .ogv 文件设置 Mime 类型 - 2

    我正在玩HTML5视频并且在ERB中有以下片段:mp4视频从在我的开发环境中运行的服务器很好地流式传输到chrome。然而firefox显示带有海报图像的视频播放器,但带有一个大X。问题似乎是mongrel不确定ogv扩展的mime类型,并且只返回text/plain,如curl所示:$curl-Ihttp://0.0.0.0:3000/pr6.ogvHTTP/1.1200OKConnection:closeDate:Mon,19Apr201012:33:50GMTLast-Modified:Sun,18Apr201012:46:07GMTContent-Type:text/plain

  8. ruby-on-rails - 简单的 Ruby on Rails 问题——如何将评论附加到用户和文章? - 2

    我意识到这可能是一个非常基本的问题,但我现在已经花了几天时间回过头来解决这个问题,但出于某种原因,Google就是没有帮助我。(我认为部分问题在于我是一个初学者,我不知道该问什么......)我也看过O'Reilly的RubyCookbook和RailsAPI,但我仍然停留在这个问题上.我找到了一些关于多态关系的信息,但它似乎不是我需要的(尽管如果我错了请告诉我)。我正在尝试调整MichaelHartl'stutorial创建一个包含用户、文章和评论的博客应用程序(不使用脚手架)。我希望评论既属于用户又属于文章。我的主要问题是:我不知道如何将当前文章的ID放入评论Controller。

  9. ruby - 使用 Ruby 通过 Outlook 发送消息的最简单方法是什么? - 2

    我的工作要求我为某些测试自动生成电子邮件。我一直在四处寻找,但未能找到可以快速实现的合理解决方案。它需要在outlook而不是其他邮件服务器中,因为我们有一些奇怪的身份验证规则,我们需要保存草稿而不是仅仅发送邮件的选项。显然win32ole可以做到这一点,但我找不到任何相当简单的例子。 最佳答案 假设存储了Outlook凭据并且您设置为自动登录到Outlook,WIN32OLE可以很好地完成此操作:require'win32ole'outlook=WIN32OLE.new('Outlook.Application')message=

  10. 华为OD机试用Python实现 -【明明的随机数】 2023Q1A - 2

    华为OD机试题本篇题目:明明的随机数题目输入描述输出描述:示例1输入输出说明代码编写思路最近更新的博客华为od2023|什么是华为od,od薪资待遇,od机试题清单华为OD机试真题大全,用Python解华为机试题|机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南华为o

随机推荐