基于iOS真机的Appium自动化测试

必要条件

XCode >= 6.0, 7.1.1(注意Appium并不一定支持最新版本的Xcode)
Mac OS X 10.10 or 更高, 建议使用10.11.1

Xcode 安装
APP Store安装
注意事项: Xcode 安装包很大(5G左右),Xcode移动到应用程序(10G左右)所以一定要有足够的空间来安装,Xcode安装完启动,有时候会卡在"正在检验Xcode"其实不是卡,是本生需要很长时间,耐心等待就可以,大概3-5分钟。

Appium安装

第一种安装方式:使用brew和node安装
查看brew,node是否安装

$brew -v
Homebrew 0.9.5 (git revision 9107; last commit 2016-01-19)
$ node -v
v5.3.0
$ npm install -g appium #安装appium
$ appium  #启动appium
$ npm install -g appium-doctor # 安装appium-doctor

检查appium-doctor是否安装成功

$ appium-doctor

这种安装经常出现下面的问题

  • 使用非root权限,安装会出现下面问题

    1. $ npm install -g appium

    2. npm ERR! Error: EACCES, mkdir '/usr/local/lib/node_modules/appium'

    3. npm ERR! { [Error: EACCES, mkdir '/usr/local/lib/node_modules/appium']

    4. npm ERR! errno: 3,

    5. npm ERR! code: 'EACCES',

    6. npm ERR! path: '/usr/local/lib/node_modules/appium',

    7. npm ERR! fstream_type: 'Directory',

    8. npm ERR! fstream_path: '/usr/local/lib/node_modules/appium',

    9. npm ERR! fstream_class: 'DirWriter',

    10. npm ERR! fstream_stack:

    11. npm ERR! [ '/usr/local/lib/node_modules/npm/node_modules/fstream/lib/dir-writer.js:36:23',

    12. npm ERR! '/usr/local/lib/node_modules/npm/node_modules/mkdirp/index.js:46:53',

    13. npm ERR! 'Object.oncomplete (fs.js:107:15)' ] }

    14. npm ERR!

    15. npm ERR! Please try running this command again as root/Administrator.

    16. npm ERR! System Darwin 13.4.0

    17. npm ERR! command "node" "/usr/local/bin/npm" "install" "-g" "appium"

    18. npm ERR! cwd /Users/test2/temp

    19. npm ERR! node -v v0.10.32

    20. npm ERR! npm -v 1.4.28

    21. npm ERR! path /usr/local/lib/node_modules/appium

    22. npm ERR! fstream_path /usr/local/lib/node_modules/appium

    23. npm ERR! fstream_type Directory

    24. npm ERR! fstream_class DirWriter

    25. npm ERR! code EACCES

    26. npm ERR! errno 3

    27. npm ERR! stack Error: EACCES, mkdir '/usr/local/lib/node_modules/appium'

    28. npm ERR! fstream_stack /usr/local/lib/node_modules/npm/node_modules/fstream/lib/dir-writer.js:36:23

    29. npm ERR! fstream_stack /usr/local/lib/node_modules/npm/node_modules/mkdirp/index.js:46:53

    30. npm ERR! fstream_stack Object.oncomplete (fs.js:107:15)

    31. npm ERR!

    32. npm ERR! Additional logging details can be found in:

    33. npm ERR! /Users/test2/temp/npm-debug.log

    34. npm ERR! not ok code 0

 出现上面问题以后使用sudo权限安装appium, appium启动会出现下列问题

  1. $ appium

  2. error: Appium will not work if used or installed with sudo. Please

  3. rerun/install as a non-root user. If you had to install Appium using

  4. sudo npm install -g appium, the solution is to reinstall Node using a

  5. method (Homebrew, for example) that doesn't require sudo to install

  6. global npm packages.

  7. localhost:temp test2$ sudo appium

  8. error: Appium will not work if used or installed with sudo. Please

  9. rerun/install as a non-root user. If you had to install Appium using

  10. sudo npm install -g appium, the solution is to reinstall Node using a

  11. method (Homebrew, for example) that doesn't require sudo to install

  12. global npm packages.

所以安装Appium还是按照普通用户来安装,不要使用sudo/root权限安装,出现上面的权限问题,可以给目录加个权限,就可以安装成功

$ sudo chmod -R 777 /usr/local/lib

第二种安装方式:下载appium.dmg安装
安装以后显示如下

图片

IOS 设置

1、使用官方提供的TestAPP执行第一个测试
下载地址:https://github.com/appium/sample-code

$git clone git@github.com:appium/sample-code.git

2、使用官方提供 的TestApp设定Appium_IOS
地址:sample-code/sample-code/apps/TestApp/build/release-iphonesimulator/TestApp.app 

iOS模拟器/真机信息配置
正常情况下apple的包是.ipa文件,那里因为所有的ios设备使用的都的ARM处理器,但是我们现在配置的是模拟器的设备,而模拟器是基于Intel处理器,处理架构不一样,所以在编辑生成包的时候请选择.app文件。

请看下图的配置参数

图片

App path就是apple包的路径:

设置为:sample-code/sample-code/apps/TestApp/build/release-iphonesimulator/TestApp.app

  • BunleID就是苹果开发的bundle identifier,仅在真机测试时勾上并填写
  • UDID苹果设备的唯一ID,仅在真机测试时勾上并填写
  • Force Device 要测试的iphone设备
  • Platform Version 要测试的iphone的版本好(设备和版本号一定要匹配)

以上配置好后,点击launch按钮,启动appium服务,启动成功后,可看到如下信息

图片

接下来点击那个类似搜索的按钮来启动client端

如果启动的时候报如下错误你的设备和版本不对的原因,仔细看下log就发现了, 修改一下设备和版本信息重新启动

图片

错误Log

图片

修改设备信息

图片

设置好重新启动,启动成功如下显示
 

图片

 图片

感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

 

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/438104.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2024年腾讯云学生服务器优惠活动「云+校园」政策解读

2024年腾讯云学生服务器优惠活动「云校园」,学生服务器优惠价格:轻量应用服务器2核2G学生价30元3个月、58元6个月、112元一年,轻量应用服务器4核8G配置191.1元3个月、352.8元6个月、646.8元一年,CVM云服务器2核4G配置842.4元一年&…

linux命令行或桌面 显卡压力测试

windows下的压力测试非常简单,有很多图形化的测试工具 在github上找到一个项目:github链接 1.下载工具 cd /usr/localgit clone https://github.com/wilicc/gpu-burn如果没有安装git,则先安装 apt-get install git2.安装 cd /usr/local/…

Linux/Validation

Enumeration nmap 第一次扫描发现系统对外开放了22,80,4566和8080端口,端口详细信息如下 系统对外开放了4个端口,从nmap的结果来看,8080无法访问,手动尝试后4566也无法访问,只能从80端口开始 …

晶圆上特性表征

测试仪器: 半导体器件表征系统(DC&CV):Keysight B1500A 半导体器件分析仪(B1500A)测量能力: 1.IV、CV、脉冲/动态IV范围为0.1 fA-1 A/0.5 uV-200 V 2.器件、材料、半导体、有源/无源元件的…

华为数通方向HCIP-DataCom H12-821题库(多选题:41-60)

第41题 BGP OPEN消息中携带如下哪些信息? A、路由属性 B、BGP Router ID C、Hold time D、本地自治系统(AS)号 【参考答案】BCD 【答案解析】 B. BGP Router ID:OPEN消息中包含发送方BGP路由器的Router ID,用于唯一标识BGP路由器。C.Hold time:OPEN消息中包含发送方BGP路由…

Java多线程——如何保证原子性

目录 引出原子性保障原子性CAS 创建线程有几种方式?方式1:继承Thread创建线程方式2:通过Runnable方式3:通过Callable创建线程方式4:通过线程池概述ThreadPoolExecutor API代码实现源码分析工作原理:线程池的…

牛客每日一题之 前缀和

目录 题目介绍: 算法原理: 前缀和: 代码实现: 题目介绍: 题目链接:【模板】前缀和_牛客题霸_牛客网 算法原理: 先讲讲暴力解法每次求出数组下标r之前元素的和,再减去数组下标l-…

pycuda安装失败问题

pycuda安装失败问题 遇到一个pycuda安装失败的问题, 这里有一个合理的解释可以去尝试一下,看起来很有道理:

2024.3.7 FreeRTOS 作业

思维导图 练习题 1.使用ADC采样光敏电阻数值,如何根据这个数值调节LED灯亮度。 //打开定时器3的通道3,并且设置为PWM功能HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_3);/* USER CODE END 2 *//* Infinite loop *//* USER CODE BEGIN WHILE */while (1…

基于springboot+vue的旅游管理系统

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战,欢迎高校老师\讲师\同行交流合作 ​主要内容:毕业设计(Javaweb项目|小程序|Pyt…

国产蓝鹏测控测径仪如何?

随着国力增强,中国制造品质提升,不仅仅是国外更多人认可,国内对国产制品也接受良好,测径仪这种智能测量设备,很多国内外厂家也在用国产设备。 测径仪厂家 蓝鹏测控作为智能几何尺寸测量仪生产厂家,已有10多…

使用Kali搭建钓鱼网站教程

一、前言 使用kali工具一分钟制作出和目标网站一模一样的钓鱼网站。目标用户使用钓鱼网站登录自己的账号,账号密码将被自动劫持。 二、钓鱼网站的制作过程 1.在虚拟机VMvare中登录kali linux 2.准备一个目标网址 3.在kail中搜索使用工具 4.在弹出的选项中选择第一…

文心一言眼中的ChatGPT是什么样的

Q: 你好文心一言,请说一说你眼中的chatgpt A: 在我眼中,ChatGPT是一种非常先进和强大的自然语言处理模型,它展示了人工智能技术的显著进步。ChatGPT拥有出色的语言理解和生成能力,能够与用户进行流畅、自然的对话,并尝…

大数据背景下R语言lavaan在SEM中的高效应用

结构方程模型(SEM)是揭示系统内变量间复杂关系的强大工具。它利用图形化的方式,将多变量间的因果关系网展现得淋漓尽致,具备出色的数据分析能力和广泛的适用性。近年来,无论是在生态、进化、环境领域,还是在…

机器学习-面经(part8、贝叶斯和其他知识点)

机器学习面经其他系列 机器学习面经系列的其他部分如下所示: 机器学习-面经(part1)-初步说明 机器学习-面经(part2)-交叉验证、超参数优化、评价指标等内容 机器学习-面经(part3)-正则化、特征工程面试问题与解答合集机器学习-面经(part4)-决策树共5000字的面试问…

嵌入式驱动学习第二周——Linux休眠唤醒

前言 这篇博客来聊一聊Linux系统的休眠与唤醒。 嵌入式驱动学习专栏将详细记录博主学习驱动的详细过程,未来预计四个月将高强度更新本专栏,喜欢的可以关注本博主并订阅本专栏,一起讨论一起学习。现在关注就是老粉啦! 目录 前言1. …

爬虫实战——麻省理工学院新闻

文章目录 发现宝藏一、 目标二、 浅析三、获取所有模块四、请求处理模块、版面、文章1. 分析切换页面的参数传递2. 获取共有多少页标签并遍历版面3.解析版面并保存版面信息4. 解析文章列表和文章5. 清洗文章6. 保存文章图片 五、完整代码六、效果展示 发现宝藏 前些天发现了一…

Eclipse左边project框如何打开?

1、点击Eclipse顶端window 2、点击Show View 3、点击Project Explorer。 如下图(图片转自其他博主)。

Web自动化测试--selenium

🔥 交流讨论:欢迎加入我们一起学习! 🔥 资源分享:耗时200小时精选的「软件测试」资料包 🔥 教程推荐:火遍全网的《软件测试》教程 📢欢迎点赞 👍 收藏 ⭐留言 &#x1…

第五十二回 戴宗二取公孙胜 李逵独劈罗真人-飞桨AI框架安装和使用示例

吴用说只有公孙胜可以破法术,于是宋江请戴宗和李逵去蓟州。两人听说公孙胜的师傅罗真人在九宫县二仙山讲经,于是到了二仙山,并在山下找到了公孙胜的家。 两人请公孙胜去帮助打高唐州,公孙胜说听师傅的。罗真人说出家人不管闲事&a…