开启iOS appium自动化测试之门

Appium介绍

Appium是一个开源、跨平台的测试框架,可以用来测试原生及混合的移动端应用。Appium支持iOS、Android及FirefoxOS平台。Appium使用WebDriver的json wire协议,来驱动Apple系统的UIAutomation库、Android系统的UIAutomator框架。Appium对iOS系统的支持得益于Dan Cuellar’s对于iOS自动化的研究。Appium也集成了Selendroid,来支持老android版本。

Appium进行自动化测试的两个好处

(1) Appium在不同平台中使用了标准的自动化APIs,所以在跨平台时,不需要重新编译或者修改自己的应用。这里,跨平台的意思是指可以在不同的系统上用相同的方式编写测试脚本,而不是指用于Android系统的测试脚本可以完全不用修改的应用于iOS系统上。事实上,Android和IOS应用几乎需要独立的进行编写。

(2)Appium支持Selenium WebDriver支持的所有语言,如java、Object-C、JavaScript、PHP、Python、Ruby、C#、Clojure,或者Perl语言,更可以使用Selenium WebDriver的Api。Appium支持任何一种测试框架。如果只使用Apple的UIAutomation,我们只能用javascript来编写测试用例,而且只能用Instruction来运行测试用例。同样,如果只使用Google的UIAutomation,我们就只能用java来编写测试用例。

Appium的系统需求

Android自动化测试可以在Windows、Mac、Linux上进行,需要安装Android SDK、Node等工具。而iOS的自动化由于需要Xcode的支持,只能在Mac上运行,需要安装Xcode、Node等工具。此外,由于appium ios自动化的底层使用的是UI Automation,因此在使用appium之前必须搭建iOS开发环境。

一、搭建appium环境

目前Appium测试iOS设备,要求Mac操作系统的最低版本是mac OS 版本10.7,本机使用的开发环境是Xcode 9.4.1, Mac x 10.13.3。由于时间有限下文截图可能不太清晰,请谅解。

1. 安装brew

在终端输入命令 /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

2. 安装libimobiledevice

brew install libimobiledevice --HEAD

3. 安装carthage

brew install carthage

4. 安装node.js ,https://nodejs.org/en/download/, 下载.pkg文件安装
5. 安装cnpm https://npm.taobao.org/

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

6. 安装ios-deploy

sudo cnpm install -g ios –deploy

7. 安装xcpretty 

gem install xcpretty

安装的版本为xcpretty-0.3.0

8. 安装appium1.10.0

sudo cnpm install -g appium@1.6.3

9. 安装appium-xcuitest-driver依赖 

9.1 安装WebDriverAgent

首先要搭建WebDriverAgent编译环境,首先需要安装如下的软件:

• Homebrew
• carthage
• python
• node.js
• Xcode8.0+(IOS9.3,Xcode8.0+才能正常编译)

安装Homebrew

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

安装WebDriverAgent

使用git clone命令将WebDriverAgent项目克隆到本地

git clonehttps://github.com/facebook/WebDriverAgent

9.2 安装appium-xcuitest-driver依赖,进入WebDriverAgent安装目录,运行bootstrap

cd/usr/local/lib/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent

mkdir -p Resources/WebDriverAgent.bundle//执行脚本
sh ./Scripts/bootstrap.sh

如果出现报错,则关闭终端再打开,执行

10. 下载WebDriverAgent-master
10.1 Xcode打开WebDriverAgent.xcodeproj,修改配置:

选择菜单files->open,路径/usr/local/lib/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent

10.2 双击WebDriverAgentLib,设置后进行编译

按如下进行修改

Bundle ID改为com.ming.wda.WebDriverAgentLib

修改配置WebDriverAgentRunner后编译

11. 真机的udid通过iTunes——摘要,点击序列号,出现UDID,右键拷贝即可。

安装appium-python-client

二、运行与测试

12. Xcode菜单栏选择目标设备,Scheme选择WebDriverAgentRunner,最后运行 Product -> Test。一切正常的话,手机上会出现一个无图标的WebDriverAgent应用,启动之后,马上又返回到桌面。这是正常的。

此时控制台界面可以看到设备的IP。如果看不到的话,使用这种方法打开view-debug area-activate console

出现上图,表示成功了

13. 安装appium-doctor

确定所有依赖是否安装成功,可通过appium-doctor验证,首先安装appium-doctor(sudo npm install -g appium-doctor),然后在终端运行appium-doctor,如下图,都是打勾状态就证明环境正常

14. brew install –HEAD libimobiledevice

15. 运行appium

终端执行 appium –p 4723

三、启动APP

第一步,Xcode打开WebDriverAgentRunner,scheme选择它,菜单Project->Test,build成功后在手机里装上WebDriverAgent;第二步,手机连接Mac电脑;第三步,启动Appium desk,start desired session;

就可以自动测试App了。

转载于:https://www.cnblogs.com/fengye151/p/11518415.html

开启iOS自动化测试之门相关推荐

  1. iOS自动化测试之基于模拟器的自动化测试

    本文来自霍格沃兹测试开发学社 本文节选自霍格沃兹测试学院内部教材 本章节主要讲解 WebDriverAgent 环境搭建以及如何通过 iOS模拟器完成自动化. WebDriverAgent简介 Web ...

  2. iOS自动化测试之Appium的安装和使用

    一.前言 因为需要配合测试同学处理自动化测试方面的东西,所以记录下来自己关于Appium的安装和使用,但是主要是关于安装的,因为安装真是遇到了很多坑,另外,我只是关注iOS App的测试,所以这里没有 ...

  3. IOS在Windows自动化测试之tidevice

    前提安装了一下工具: 1.Windows上配置了Python环境:Python 3.6+ 2.Windows上安装了iTunes IOS在Windows自动化测试之tidevice tidevice地 ...

  4. Appium+Python安卓自动化测试之启动APP和配置获取

    Appium+Python安卓自动化测试之启动APP和配置获取 本文章未讲述appium+python环境部署,环境部署会新开文章 一.手机连接电脑 1.USB连接电脑和手机,手机上点确认连接(最好用 ...

  5. xcode 选择configuraftions 打包_分利宝IOS自动化打包

    前言 在iOS开发中,我们常用的打包上传方式就是用Xcode的archive方式打包.到了测试阶段,需要频繁的打包提交到测试平台,整个流程包括:编译-打包-上传,整个过程需要我们去坚守每一步操作,提交 ...

  6. iOS自动化打包发布之fastlane 实现 发布AppStore 蒲公英

    iOS自动化打包发布之fastlane 实现 fastlane官方文档 前提插件配置 首先要安装xcode-select 然后安装fastlane sudo gem install fastlane ...

  7. [免费视频教程]UI自动化测试之Jenkins配置教程

    [免费视频教程]UI自动化测试之Jenkins配置教程 image 前一段时间帮助团队搭建了UI自动化环境,这里将Jenkins环境的一些配置分享给大家. 背景: 团队下半年的目标之一是实现自动化测试 ...

  8. 自动化测试之获取mysql中的数据

    各位小伙伴们,大家好,今天给大家带来的是关自动化测试之获取mysql数据库中的数据方面的干货,技术含金量超高,有测开方面发展的小伙伴可以好好看看. 实施自动化获取mysql数据库中的数据的前提知识有: ...

  9. 拓展--mac系统ios自动化--环境配置

    下载python3 https://www.python.org/downloads/mac-osx/ 修改环境变量 修改用户根目录下的~/.bash_profile文件,在终端输入: vi ~/.b ...

最新文章

  1. RIPv2 路由手工汇总
  2. mybaits五:主键的自增
  3. Java实现将list数据取出并加入分隔符拼接,转换成String
  4. 【转】C++ vector的reserve和resize详解
  5. 冒泡、选择、插入排序算法
  6. P1457 城堡 The Castle 位运算+BFS+思维(难题,好题)
  7. 标准模板库STL学习总结
  8. C#LeetCode刷题-回溯算法
  9. dnn模型 list index out of range_通过MalConv模型实现恶意软件的分类
  10. Halcon教程九:把Halcon程序放到C#程序里
  11. 数学建模之Python-支持向量回归(SVM)
  12. 浅谈霍尔电流传感器的原理及应用
  13. ArcGIS实验四 不同坡度植被覆盖率分析
  14. Rhythmbox中mp3中文乱码问题
  15. Kotlin的协程:挂起函数
  16. Unity3D_Util_Editor_显示RectTransform的世界坐标和相对坐标
  17. Unity在Canvas上画线(Draw Line)实现
  18. ##CSAPP读书日记-第九章-虚拟内存
  19. 区块链溯源是什么?一文带您读懂! 1
  20. Pygame 官方文档 - pygame.key

热门文章

  1. BugkuCTF–flag在index里
  2. 理解CSS3 transform中的Matrix(矩阵)
  3. Chrome 技术篇-常用web调试技巧清除缓存并硬性重新加载
  4. Python 技术篇-3行代码实现语音朗读,pywin32库实现语音朗读
  5. CTFshow php特性 web134
  6. scipy模块计算导数方法(central_diff_weights)
  7. 用python tkinter显示Mandelbrot图
  8. cf552 G Minimum Possible LCMn个数,求最小得一对lcm
  9. [YTU]_2424 C语言习题 字符串比较
  10. Django学习之数据库与ORM