当前位置: 首页 > news >正文

appium ios真机自动化环境搭建运行(送源码)

appium ios真机自动化环境搭建&运行(送源码)

目录:导读

(1)安装JDK,并配置环境变量,方法如下:

(2)安装Xcode、Xcode commandline tools和iOS模拟器

(3)安装Homebrew

(4)安装indeviceinstaller

(5)安装Appium服务端Node.js

(6)安装Appium客户端

(7)用npm安装wd

(8)安装SourceTree、Git 或SVN,然后取开发的App源代码

(9)申请开发者调试证书

(10)安装Eclipse

(11)安装Ant,并设置环境变量

(12)Appium客户端界面的配置

iOS自动化测试运行

 iOS的App自动化测试demo演示视频


Appium测试环境的搭建相对比较烦琐,不少初学者在此走过不少弯路

首先是熟悉Mac的使用习惯:命令行是Linux风格,界面则类似于Windows风格。

(1)安装JDK,并配置环境变量,方法如下:

sudo vi /etc/profile 在最后行加入如下内容:

JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/"

 CLASS_PATH="$JAVA_HOME/lib"

 PATH=".:$PATH:$JAVA_HOME/bin"

保存退出后,执行生效,输入命令Source ~/.bash_profile

输入命令java –version, 环境安装后成功显示如下所示:

(2)安装Xcode、Xcode commandline tools和iOS模拟器

在App Store中下载 xcode.dmg并安装 。注意,要0与 Mac的 OS X版本对应。由于App源代码是在Xcode开发环境中开发出来的,因此我们需要在Xcode里调试源码成功运行,并启动所要测试的App,源码的导入和调试可以找iOS开发负责人帮忙搞定,模拟器安装如图3.1所示。

▲图3.1

(3)安装Homebrew

curl -LsSf http://github.com/mxcl/homebrew/tarball/master | sudo tar xvz -C/usr/local--strip  1

brew –v 显示如下所示:

(4)安装indeviceinstaller

brew install  indeviceinstaller

ideviceinstaller –h 显示如下所示:

(5)安装Appium服务端Node.js

brew install node

node –v 显示如下所示:

(6)安装Appium客户端

将双击安装包appium.dmg,或将它拖动到Applications文件夹即完成安装。设置Appium环境变量,将appium.js和appium-doctor.js文件所在路径配置到PATH环境变量设置参考,如图3.2所示。

▲图3.2

打开Appium客户端,如图3.3所示。

▲图3.3 

(7)用npm安装wd

 npm install wd

(8)安装SourceTree、Git 或SVN,然后取开发的App源代码

 clonessh://zouhui@XXX.XXXXX.com:30020/mnt/repo/app

 git 用户名密码 :zouhui/3ihU88uy***    版本管理取源码,输入用户名密码

 ssh://zouh@dbs.e.com:30020/mnt/repo/ev**_  App  版本管理取源码路径

(9)申请开发者调试证书

因为开发者证书苹果是要收费的,所以需要给iOS团队开发的负责人在后端平台工具申请自动化测试需要开发的源码和调试权限,大家可向公司的iOS开发负责人提出申请,提供手机UDID:3c22f4c14660eda7d3051636ae659b6b998af8db;

然后iOS开发负责人会提供:iOS的App源代码、调试证书、开通手机UDID调试权限。

建议让iOS开发负责人直接安装好调试证书,因为证书安装比较麻烦,有时很容易出错,所以请开发人员安装可以很快解决。

也可以先在模拟器上运行,但是一般真实测试过程中都是在真机上运行。

(10)安装Eclipse

(11)安装Ant,并设置环境变量

 sudo

 chmod +w /etc/bashrc

 export ANT_HOME=/usr/local/apache-ant-1.9.3

 export PATH=${PATH}:${ANT_HOME}/bin

(12)Appium客户端界面的配置

真机测试时需要设置以下4个必填项:

  1)BundleID:待测试App的package名称, 如com.test.buy。

  2)Force Device:iPhone手机设备, 如iPhone 6。

  3)Platform Version:iOS版本号, 如9.3。

  4)UDID:手机设备唯一ID,如3c22f4c14660eda7d3051636ae659b6b998af7dc。

如图3.4所示。

▲图3.4

Appium中Xcode默认Path设置如图3.5所示。

Appium中的环境配置检查Doctor,打勾表示正常,如图3.6所示。

▲图3.6

Appium中的Inspector工具,可以帮助我们快速定位元素,通常也是通过name和XPath等方式。

Appium中,Launch用来启动停止操作,启动成功时如图3.8所示。

▲图3.8

单击图标,弹出Inspector,进行控件元素的获取,查找元素的XPath、name等,如图3.9所示。

▲图3.9 

iOS自动化测试运行

(1)   iPhone手机开启运行自动化 ,单击设置—>开发者—>EnableUI Automation —>yes。

将手机连接到电脑上,并且使Xcode能识别到该手机。 

(2)   单击Launch按钮,启动 Appium,无错误日志。

(3)   在Eclipse中运行已经写好的测试代码(详细请看第4章),可看到在Appium客户端中有自动化数据和日志详细信息输出,手机上可以看到看到App自动化测试用例已开始在运行。

(4)   查看测试结果。

 iOS的App自动化测试demo演示视频

    登录账号:7980068@qq.com

    登录密码:*******

http://www.iqiyi.com/w_19rsoh2gip.html#vfrm=2-3-0-1

http://v.youku.com/v_show/id_XMTY2MzU4OTk5Ng==.html  

App 自动化测试框架 demo 源码链接:https://pan.baidu.com/s/1bEwMh4 密码:g7pk 

写在最后

如果你觉得文章还不错,请大家 点赞、分享、留言 下,因为这将是我持续输出更多优质文章的最强动力!

看到这篇文章的人有觉得我的理解有误的地方,也欢迎评论和探讨~

你也可以加入下方的的群聊去和同行大神交流切磋

 

相关文章:

appium ios真机自动化环境搭建运行(送源码)

appium ios真机自动化环境搭建&运行(送源码) 目录:导读 (1)安装JDK,并配置环境变量,方法如下: (2)安装Xcode、Xcode commandline tools和iOS模拟器 &…...

米尔基于ARM嵌入式核心板的电池管理系统(BMS)

BMS全称是Battery Management System,电池管理系统。它是配合监控储能电池状态的设备,主要就是为了智能化管理及维护各个电池单元,防止电池出现过充电和过放电,延长电池的使用寿命,监控电池的状态。 图片摘自网络 电池…...

Java后端项目IDEA配置代码规范检查,使用checkStyle实现

最近的Java后端项目想实现代码的规范检查,调研了一圈,终于找到了简单的方式实现:以下是常见的几种方案: 1、在客户端做 git hook,主要是用 pre-commit 这个钩子。前端项目中常见的 husky 就是基于此实现的。但缺点也很…...

Nginx_4

Nginx负载均衡 负载均衡概述 早期的网站流量和业务功能都比较简单,单台服务器足以满足基本的需求,但是随着互联网的发展,业务流量越来越大并且业务逻辑也跟着越来越复杂,单台服务器的性能及单点故障问题就凸显出来了&#xff0c…...

linux Ubuntu KUbuntu 系统安装相关

系统安装 本来想快到中午的时候调试一下服务器上的http请求接收代码。我的电脑上装的是kali的U盘系统,然后我的U盘居然找不到了(然后之前安装的系统不知道是否是写入软件的原因,没办法解析DNS,我都用的转发的,这让我体验非常差。kali的系统工具很多&…...

个人信息保护认证

个人信息保护认证是证明个人信息处理者在认证范围内开展的个人信息收集、存储、使用、加工、传输、提供、公开、删除以及跨境等处理活动符合认证依据标准要求。适用范围 本规则依据《中华人民共和国认证认可条例》制定,规定了对个人信息处理者开展个人信息收集、存储…...

Negative Prompt in Stable Diffusion

必读链接:https://www.reddit.com/r/StableDiffusion/comments/z7salo/with_the_right_prompt_stable_diffusion_20_can_do/ A lot of people have noticed that Negative Prompt works wonders in 2.0, and works even better in 2.1. Negative hints are the op…...

MLX90316KGO-BDG-100-RE传感器 旋转位置 角度测量

介绍MLX90316是Tria⊗is旋转位置传感器,提供在设备表面旋转的小偶极磁铁(轴端磁铁)的绝对角位置。得益于其表面的集成磁集中器(IMC),单片设备以非接触式方式感知应用磁通量密度的水平分量。这种独特的传感原理应用于旋转位置传感器,可在机械(…...

Reflections反射包在springboot jar环境下扫描不到class排查过程

需求: 要实现指定pkg(如com.qiqitrue.test.pojo)扫描包下所有class类信息:使用代码如下 使用的版本:0.10.2(截至目前是最新版)发现只能在idea编译期间可以获取得到(也就是在开发阶段…...

黑马】后台项目171集

将近一个月没有练习了,找到之后果然打不开出了问题【问题】运行代码打开网页后,发现不能正常登录,一开始还以为是密码记错了,后来发现是数据库没有正常启动,phpstudy中的数据库一直是启动状态,关闭不了。【…...

Qt 5 架构和特点

Qt 5 模块构架: 模块:功能:Qt CoreQt 5 的核心类库,每个模块都建立在Core上Qt GUI图形用户界面开发的最基础的类库Qt Widgets提供c用户界面部件(是对Qt GUI的拓展)Qt SQL对数据库进行操作Qt Multimedia、…...

转换符说明使用方法(在printf函数中)

目录 一些常见的转换说明及打印结果: printf()的转换说明修饰符 printf()函数打印数据指令时要与代打印数据的类型相匹配才行。 如%d %c %ld......这些符号叫做转换说明。代表着数据转化成显示的形式。 一些常见的…...

针灸-基本任脉督脉

这里写自定义目录标题 丈量 同身丈下针深浅一般入穴的方法成人 幼儿 不同入穴方式现代常用针概念十二经 纳天干**天干**地支表里关系筋络任脉中脘穴:梅花灸巨阙穴廉泉穴督脉长强腰俞命门阳关悬枢脊中筋缩眼诊 癫痫至阳消渴...

信息系统与信息化

1.1 信息系统与信息化 1.1.1 信息的基本概念 信息质量属性(掌握)信息传输模型 1.1.2 信息系统的基本概念1.1.3 信息化的基本概念 信息化的五个层次信息化基本内涵信息化的基本概念(了解)六要素关系图(掌握) 1.1.4 信息系统生命周…...

解决axios异步请求问题(异步变为同步)

遇到的问题 在目前一个需求中,我需要等待axios请求完成后,判断请求是否出现异常,然后来判断是否关闭弹窗 修改后大概代码如下: async submitForm() {let flag false//表单验证,默认通过let formValidation truethis…...

【Django】云笔记项目

一、介绍 用户可在系统中记录自己的笔记,用户的数据被存储在云笔记平台;用户和用户之间的数据为隔离存储(登陆后才能使用相关笔记功能,且只能查阅自己的笔记) 二、功能拆解 1、用户模块 注册:成为平台…...

LeetCode——1797. 设计一个验证系统

一、题目 你需要设计一个包含验证码的验证系统。每一次验证中,用户会收到一个新的验证码,这个验证码在 currentTime 时刻之后 timeToLive 秒过期。如果验证码被更新了,那么它会在 currentTime (可能与之前的 currentTime 不同&am…...

java Resource

参看本文前 你要先了解 spring中的 Autowired和Qualifier 注解 如果之前没有接触过 可以查看我的文章 java spring 根据注解方式按(类型/名称)注入Bean 然后 创建一个java项目 引入spring注解方式 所需要的包 然后 在src下创建包 我们这里直接叫 Bean 在Bean下创建包 叫UserD…...

ArkTS语法(声明式UI)

页面级变量的状态管理 装饰器装饰内容说明State基本数据类型,类,数组修饰的状态数据被修改时会触发组件的build方法进行UI界面更新。Prop基本数据类型修改后的状态数据用于在父组件和子组件之间建立单向数据依赖关系。修改父组件关联数据时,…...

自动化测试实战篇(7)jmeter连接mysql数据库,实现单表、多表、三表查询,并对表中数据进行修改,删除,新增操作

Jmeter也可以连接mysql数据库,通过JDBC去调用数据库内的参数到HTTP请求中进行接口测试,可以说是相当方便 自动化测试实战篇(7)jmeter连接mysql数据库,实现单表、多表、三表查询,并对表中数据进行修改&#…...

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…...

网络六边形受到攻击

大家读完觉得有帮助记得关注和点赞!!! 抽象 现代智能交通系统 (ITS) 的一个关键要求是能够以安全、可靠和匿名的方式从互联车辆和移动设备收集地理参考数据。Nexagon 协议建立在 IETF 定位器/ID 分离协议 (…...

【Python】 -- 趣味代码 - 小恐龙游戏

文章目录 文章目录 00 小恐龙游戏程序设计框架代码结构和功能游戏流程总结01 小恐龙游戏程序设计02 百度网盘地址00 小恐龙游戏程序设计框架 这段代码是一个基于 Pygame 的简易跑酷游戏的完整实现,玩家控制一个角色(龙)躲避障碍物(仙人掌和乌鸦)。以下是代码的详细介绍:…...

2025年能源电力系统与流体力学国际会议 (EPSFD 2025)

2025年能源电力系统与流体力学国际会议(EPSFD 2025)将于本年度在美丽的杭州盛大召开。作为全球能源、电力系统以及流体力学领域的顶级盛会,EPSFD 2025旨在为来自世界各地的科学家、工程师和研究人员提供一个展示最新研究成果、分享实践经验及…...

前端倒计时误差!

提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...

屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!

5月28日,中天合创屋面分布式光伏发电项目顺利并网发电,该项目位于内蒙古自治区鄂尔多斯市乌审旗,项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站,总装机容量为9.96MWp。 项目投运后,每年可节约标煤3670…...

论文浅尝 | 基于判别指令微调生成式大语言模型的知识图谱补全方法(ISWC2024)

笔记整理:刘治强,浙江大学硕士生,研究方向为知识图谱表示学习,大语言模型 论文链接:http://arxiv.org/abs/2407.16127 发表会议:ISWC 2024 1. 动机 传统的知识图谱补全(KGC)模型通过…...

OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别

OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别 直接训练提示词嵌入向量的核心区别 您提到的代码: prompt_embedding = initial_embedding.clone().requires_grad_(True) optimizer = torch.optim.Adam([prompt_embedding...

根据万维钢·精英日课6的内容,使用AI(2025)可以参考以下方法:

根据万维钢精英日课6的内容,使用AI(2025)可以参考以下方法: 四个洞见 模型已经比人聪明:以ChatGPT o3为代表的AI非常强大,能运用高级理论解释道理、引用最新学术论文,生成对顶尖科学家都有用的…...

3-11单元格区域边界定位(End属性)学习笔记

返回一个Range 对象,只读。该对象代表包含源区域的区域上端下端左端右端的最后一个单元格。等同于按键 End 向上键(End(xlUp))、End向下键(End(xlDown))、End向左键(End(xlToLeft)End向右键(End(xlToRight)) 注意:它移动的位置必须是相连的有内容的单元格…...