macos搭建appium-iOS自动化测试环境
目录
准备工作
安装必需的软件
安装appium
安装XCode
下载WDA工程
配置WDA工程
搭建appium+wda自动化环境
第一步:启动通过xcodebuild命令启动wda服务
分享一下如何在mac电脑上搭建一个完整的appium自动化测试环境
准备工作
前期需要准备的设备和账号:
- mac电脑一台
- iphone一台
- 苹果开发者账号一个 (需要你具备一点基础的iOS开发相关的常识)
安装必需的软件
安装appium
appium的安装没有什么可多说的,按照官方 https://appium.io/# 的指导安装就好了
Appium · GitHub
$ brew install node # get node.js$ npm install -g appium # get appium$ npm install wd # get appium client
安装完成之后检查一下是否安装成功。后续在使用的过程中直接使用appium的命令行工具,桌面版也可以用但是没有命令行用着简介,而且桌面版还消耗电脑内存,mac电脑本身内存就比较珍贵
$ appium --version
1.22.0
安装XCode
mac电脑一般都自带xcode工具,没有的可以去appstore里面安装一个最新版本即可
下载WDA工程
什么是WDA?
借用官网的一段解释:WebDriverAgent is a WebDriver server implementation for iOS that can be used to remote control iOS devices. It allows you to launch & kill applications, tap & scroll views or confirm view presence on a screen. This makes it a perfect tool for application end-to-end testing or general purpose device automation.
WDA其实就是代理iphone开放一些可用的能力和接口给外界提供自动化的这么一个工具

GitHub - appium/WebDriverAgent: A WebDriver server for iOS and tvOS
查找自己所需的WDA的版本,选择下载源码工程(WDA和appium和xcode的版本的对应关系后再补充,一般都选择最新版本基本就可以匹配)

下载后的源码先保存到一个固定的位置,然后解压进入到工程文件夹呢,双击xcodeproj这个文件即可启动xcode工程

配置WDA工程
前面章节的图里已经提到了我们使用appium做iOS的自动化,需要在手机上面运行wda这个工程(确切的说是个服务)
所谓的配置wda工程,其实主要的目的就是为了让wda这个工程可以在我们的目标测试机上运行起,下面的流程和ios开发人员配置一个测试包在自己的测试机上跑起来是一个道理,这里只介绍流程详细原理可以参考ios的开发流程
wda是个ios工程,它有自己的BundleId, com.facebook.WebDriverAgentRunner, 我们也可以自己给它重新申请个新的BundleId, 所以前面的前期准备工作我们提到了我们需要一个苹果开发者账号,我们可以把wda的BundleId注册到当前的开发者Team账号上,然后测试用的iPhone手机也需要加到当前开发者账号的内测名单里面,这样wda工程就可以跑在我们的iPhone测试机上了
下面是具体的工程配置流程





此时手机上我们应该能看到安装了一个webdriveragent的APP

至此已经完成了wda的配置和运行,然后停掉Test工程,或者关闭xcode即可。因为我们后面使用wda做自动化不建议直接用xcode桌面版来启动wda.(哦,前面忘记提了,如果使用appium+wda做iOS的自动化,这两个工程是需要一直启动着的)
搭建appium+wda自动化环境
根据上面的解释,如果appium想和iPhone进行交互,需要借助wda这个工具,前提是我们必须得用xcode在本机mac开一个代理端口作为appium和wda交互的通信端口,上面提到的8100端口就是这个通信端口。我们刚刚也说了我们不希望在自动化的时候一直开着xcode桌面版本,好在xcode还提供了命令行工具xcodebuild (xcodebuild工具的安装和配置可自行baidu或者google)
第一步:启动通过xcodebuild命令启动wda服务
$ xcodebuild -project /Users/apple/Documents/WebDriverAgent-4.13.2/WebDriverAgent.xcodeproj -scheme WebDriverAgentRunner -destination 'id=00008030-001245810ED0802E' USE_PORT=8104 test
参数说明:
-project # 我们上线下载并在xcode配置好的wda工程的工程启动文件WebDriverAgent.xcodeproj
-scheme WebDriverAgentRunner
-destination 'id=00008030-001245810ED0802E' # 目标iPhone,前提是已经通过usb链接到本地mac
USE_PORT=8104 test # 本机mac开放的appium和wda通信的端口,默认是8100,我们也可以自行指定
目录
准备工作
安装必需的软件
安装appium
安装XCode
下载WDA工程
配置WDA工程
搭建appium+wda自动化环境
第一步:启动通过xcodebuild命令启动wda服务
第二步:启动appium服务
$ appium -p 8904 --webdriveragent-port=8104
参数说明:
-p 8904 # appium开放给测试脚本使用的端口
--webdriveragent-port=8104 # 上面xcodebuild开放给appium和wda通信的端口
至此整个环境就配置完了,下面就可以通过本机的8904端口进行appium的UI自动化了
未尽事宜会在其它文章中继续补充
相关文章:
macos搭建appium-iOS自动化测试环境
目录 准备工作 安装必需的软件 安装appium 安装XCode 下载WDA工程 配置WDA工程 搭建appiumwda自动化环境 第一步:启动通过xcodebuild命令启动wda服务 分享一下如何在mac电脑上搭建一个完整的appium自动化测试环境 准备工作 前期需要准备的设备和账号&…...
日常工具 之 一些 / 方便好用 / 免费 / 在线 / 工具整理
日常工具 之 一些 / 方便好用 / 免费 / 在线 / 工具整理 目录 日常工具 之 一些 / 方便好用 / 免费 / 在线 / 工具整理 1、在线Json ,可以在线进行json 格式验证,解析转义等操作 2、Gif动图分解,在线把 gif 图分解成一张张单图 3、在线P…...
AWS 中文入门开发教学 50- S3 - 网关终端节点 - 私有网络访问S3的捷径
知识点 通过设置网关终端节点,使私有网段中的EC2也可以访问到S3服务官网 https://docs.aws.amazon.com/zh_cn/codeartifact/latest/ug/create-s3-gateway-endpoint.html 实战演习 通过网关访问S3 看图说话"> 实战步骤 创建一个可以访问S3的角色 KomaRoleS3FullAcc…...
windows使用/服务(13)戴尔电脑怎么设置通电自动开机
戴尔pc机器通电自启动 1、将主机显示器键盘鼠标连接好后,按主机电源键开机 2、在开机过程中按键盘"F12",进入如下界面,选择“BIOS SETUP” 3、选择“Power Management” 4、选择“AC Recovery”,点选“Power On”,点击“…...
Leetcode每日一题:1289. 下降路径最小和 II(2023.8.10 C++)
目录 1289. 下降路径最小和 II 题目描述: 实现代码与解析: 动态规划 原理思路: 1289. 下降路径最小和 II 题目描述: 给你一个 n x n 整数矩阵 grid ,请你返回 非零偏移下降路径 数字和的最小值。 非零偏移下降路…...
Node.js |(一)Node.js简介及计算机基础 | 尚硅谷2023版Node.js零基础视频教程
学习视频:尚硅谷2023版Node.js零基础视频教程,nodejs新手到高手 文章目录 📚关于Node.js🐇为什么要学Node.js🐇Node.js是什么🐇Node.js的作用🐇Node.js下载安装🐇命令行工具…...
Canal+Kafka实现Mysql数据同步
Canal介绍 canal [kənl],译意为水道/管道/沟渠,主要用途是基于 MySQL 数据库增量日志解析,提供增量数据订阅和消费 canal可以用来监控数据库数据的变化,从而获得新增数据,或者修改的数据。 canal是应阿里巴巴存在杭…...
K8s部署
K8s部署 一、实验架构 二进制搭建 Kubernetes v1.20 -单master节点部署k8s集群master01:192.168.111.10 kube-apiserver kube-controller-manager kube-scheduler etcd k8s集群master02:192.168.111.20k8s集群node01:192.168.111.20 kubele…...
MongoDB 分片集群
在了解分片集群之前,务必要先了解复制集技术! 1.1 MongoDB复制集简介 一组Mongodb复制集,就是一组mongod进程,这些进程维护同一个数据集合。复制集提供了数据冗余和高等级的可靠性,这是生产部署的基础。 1.1.1 复制集…...
CSDN 编程竞赛六十九期题解
竞赛总览 CSDN 编程竞赛六十九期:比赛详情 (csdn.net) 竞赛题解 题目1、S数 如果一个正整数自身是回文数,而且它也是一个回文数的平方,那么我们称这个数为S数。现在,给定两个正整数L、R,返回包含在范围 [L, R] 中S…...
vue3组合式api单文件组件写法
一,模板部分 <template><div class"device container"><breadcrumb :list"[首页, 应急处置]" /><div class"search_box"><div class"left"><span style"margin-right: 15px"…...
Unity游戏源码分享-多角色fps射击游戏
Unity游戏源码分享-多角色fps射击游戏 项目地址:https://download.csdn.net/download/Highning0007/88204023...
在Cesium中给管道添加水流效果
添加效果前后对比: 关键代码: /*** 水流粒子,目前支持向上或者向下的效果* param {Number} x* param {Number} y* param {Number} z* param {Number} options* example* options {* color: Cesium.Color.AZURE,* emissionRate: 5, …...
测试平台——项目模块模型类设计
这里写目录标题 一、项目应用1、项目包含接口:2、创建子应用3、项目模块设计a、模型类设计b、序列化器类设计c、视图类设计d、项目的增删改查操作4、接口模块设计a、模型类设计b、序列化器类设计c、视图类设计d、接口的增删改查查操作5、环境模块设计a、模型类设计b、序列化器…...
【Android】MVC,MVP,MVVM三种架构模式的区别
MVC 传统的代码架构模式,仅仅是对代码进行了分层,其中的C代表Controller,控制的意思 将代码划分为数据层,视图层,控制层,三层之间可以任意交互 MVP MVP是在MVC基础上改进而来的一种架构,其中的…...
代码质量检查工具SonarQube
Devops流水线之SonarQube 文章目录 Devops流水线之SonarQube1. 软件功能介绍及用途2. 软件环境搭建与使用2.1 使用方法2.2 SonarQube相关属性说明2.3 Sonar配置文件内容说明 3. 使用环节4. 检查方法 1. 软件功能介绍及用途 SonarQube是一个用于代码质量管理的开源平台…...
开发命名规范
1项目命名规范 1、工程项目名,尽量想一些有意义、有传播价值的名称;比如星球、游戏、名人、名地名等;取名就跟给孩子取名一样,独特、有价值、有意义、好传播 2、所有的类都必须添加创建者和创建日期 3、所有代码:包括…...
12. Redis分布式高可用集群搭建
文章目录 Redis分布式高可用集群搭建一、redis集群有三种方式:1. 主从模式2. 哨兵3. 集群(master-cluster) 二、基于centos7操作系统操做1. 关闭防火墙,三台机器都执行2. hostname修改,三台机器都执行,这一步是为了在内…...
【微信小程序篇】-请求封装
最近自己在尝试使用AIGC写一个小程序,页面、样式、包括交互函数AIGC都能够帮我完成(不过这里有一点问题AIGC的上下文关联性还是有限制,会经常出现对于需求理解跑偏情况,需要不断的重复强调,并纠正错误,才能得到你想要的…...
区块链-Web3.0-什么是Web3.0?
一、什么是Web 3.0 Web 3.0,也被称为“去中心化Web”或“智能Web”,是互联网的下一代,它使用了分布式系统技术、区块链技术和智能合约等新型技术,旨在构建一个更加去中心化、安全、透明和智能的互联网。Web 3.0 可以带来更广泛的…...
Python爬虫实战:研究feedparser库相关技术
1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的信息资源。RSS(Really Simple Syndication)作为一种标准化的信息聚合技术,被广泛用于网站内容的发布和订阅。通过 RSS,用户可以方便地获取网站更新的内容,而无需频繁访问各个网站。 然而,互联网…...
React19源码系列之 事件插件系统
事件类别 事件类型 定义 文档 Event Event 接口表示在 EventTarget 上出现的事件。 Event - Web API | MDN UIEvent UIEvent 接口表示简单的用户界面事件。 UIEvent - Web API | MDN KeyboardEvent KeyboardEvent 对象描述了用户与键盘的交互。 KeyboardEvent - Web…...
GitFlow 工作模式(详解)
今天再学项目的过程中遇到使用gitflow模式管理代码,因此进行学习并且发布关于gitflow的一些思考 Git与GitFlow模式 我们在写代码的时候通常会进行网上保存,无论是github还是gittee,都是一种基于git去保存代码的形式,这样保存代码…...
elementUI点击浏览table所选行数据查看文档
项目场景: table按照要求特定的数据变成按钮可以点击 解决方案: <el-table-columnprop"mlname"label"名称"align"center"width"180"><template slot-scope"scope"><el-buttonv-if&qu…...
写一个shell脚本,把局域网内,把能ping通的IP和不能ping通的IP分类,并保存到两个文本文件里
写一个shell脚本,把局域网内,把能ping通的IP和不能ping通的IP分类,并保存到两个文本文件里 脚本1 #!/bin/bash #定义变量 ip10.1.1 #循环去ping主机的IP for ((i1;i<10;i)) doping -c1 $ip.$i &>/dev/null[ $? -eq 0 ] &&am…...
raid存储技术
1. 存储技术概念 数据存储架构是对数据存储方式、存储设备及相关组件的组织和规划,涵盖存储系统的布局、数据存储策略等,它明确数据如何存储、管理与访问,为数据的安全、高效使用提供支撑。 由计算机中一组存储设备、控制部件和管理信息调度的…...
shell脚本质数判断
shell脚本质数判断 shell输入一个正整数,判断是否为质数(素数)shell求1-100内的质数shell求给定数组输出其中的质数 shell输入一个正整数,判断是否为质数(素数) 思路: 1:1 2:1 2 3:1 2 3 4:1 2 3 4 5:1 2 3 4 5-------> 3:2 4:2 3 5:2 3…...
AWS vs 阿里云:功能、服务与性能对比指南
在云计算领域,Amazon Web Services (AWS) 和阿里云 (Alibaba Cloud) 是全球领先的提供商,各自在功能范围、服务生态系统、性能表现和适用场景上具有独特优势。基于提供的引用[1]-[5],我将从功能、服务和性能三个方面进行结构化对比分析&#…...
LTR-381RGB-01RGB+环境光检测应用场景及客户类型主要有哪些?
RGB环境光检测 功能,在应用场景及客户类型: 1. 可应用的儿童玩具类型 (1) 智能互动玩具 功能:通过检测环境光或物体颜色触发互动(如颜色识别积木、光感音乐盒)。 客户参考: LEGO(乐高&#x…...
Springboot多数据源配置实践
Springboot多数据源配置实践 基本配置文件数据库配置Mapper包Model包Service包中业务代码Mapper XML文件在某些复杂的业务场景中,我们可能需要使用多个数据库来存储和管理不同类型的数据,而不是仅仅依赖于单一数据库。本技术文档将详细介绍如何在 Spring Boot 项目中进行多数…...
