Appium-Python 移动端自动化环境搭建

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的工作原理

http://www.cnblogs.com/yulei126/p/6804216.html

二、测试环境搭建:

1、安装Pycharm;----Python开发调试工具。下载地址:https://www.jetbrains.com/zh/pycharm/specials/pycharm/pycharm.html?utm_source=baidu&utm_medium=cpc&utm_campaign=cn-bai-br-pycharm-ex-pc&utm_content=pycharm-pure&utm_term=pycharm   PS:python 调试工具,可根据自身情况选择不下载;

2、安装python;官网下载;默认安装

3、验证python  PS:python3验证  python3 -v

4、下载Java;   官网下载;

5、配置环境变量。 JAVA_HOME    JAVA_HOME-BIN;PS:win和Mac不同,请自行查阅如何配置环境变量

6、验证Java -version

7、下载SDK

8、配置SDK环境变量。    ANDROID_HOME      ANDROID_HOME-TOOLS     ANDROID_HOME-PLATFORM-TOOLS;

9、adb验证 Android—SDK;PS:adb 安卓远程调试桥,为调试安置设备,推送代码。必须安装;

10、安装node.js中文网地址:http://nodejs.cn/node.js; 下载安装包,一键安装;

11、验证node  node -v   npm -v.    PS :appium底层是node开发,需安装

12、安装Appium.  下载地址:https://github.com/appium/appium-desktop/releases/tag/v1.2.4;下载安装包,安装并配置环境变量

13、安装appium-doctor    PS :Mac端   sudo npm install appium-doctor -g

14、验证  appium-doctor

15、安装appium客户端库;  PS :选择对应的开发语言的客户端库,下载地址http://appium.io/downloads.html;

环境变量如下:

至此以上android端搞定;

iOS的会需要安装一些依赖;

1、安装Xcode;App Store下载;

2、安装carthage

安装命令是
brew install carthage

这里面会遇到权限问题 直接执行提示中的提权命令

sudo chown -R $(whoami) /usr/local/var/homebrew

然后再次安装就 OK 了

3、安装webpack

安装命令是
npm i -g webpack
在这一步遇到的坑 基本大部分都是权限问题 
如果看到 Permission 神马神马滴报错 你就 777 或者 sudo 明白吧 
反正务必要执行成功 不能有 error 啊 warn 神马滴
因为这个东西与 WebDriverAgent 相关 如果搞不定这个的话 
后面会被 WebDriverException 搞死
 
4、安装WebDRiverAgent相关依赖
 appium 从 1.6.x 版本开始 在控件定位策略上有了一个大的变化
就是它放弃了 uiautomation 同时启用了 xcuitest 机制 因此在安装的时候要多一个依赖
进入下面这个路径
cd /usr/local/lib/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent/
创建一个路径
mkdir -p Resources/WebDriverAgent.bundle
执行一条命令
sudo ./Scripts/bootstrap.sh -d

所有安装完成后终端执行apium-doctor 全部对勾就OK了。如下图:


移动端自动化自动化(Android&iOS)——Appium的更多相关文章

  1. Appium自动化—浅谈iOS自动化测试环境搭建

    在日常的测试工作中,我们会发现有些测试工作重复率极高,测试人员需要花费大量的时间进行这些重复性的测试,浪费了大量的人力与时间.若能够将常用的测试场景进行自动化,那必定能节省许多的人力与时间.作为一个初 ...

  2. Appium+python自动化20-查看iOS上app元素属性

    前言 学UI自动化首先就是定位页面元素,玩过android版的appium小伙伴应该都知道,appium的windows版自带的Inspector可以定位app上的元素 Mac版的appium1.6的 ...

  3. Appium+python自动化20-查看iOS上app元素属性【转载】

    前言 学UI自动化首先就是定位页面元素,玩过android版的appium小伙伴应该都知道,appium的windows版自带的Inspector可以定位app上的元素Mac版的appium1.6的版 ...

  4. Appium+python自动化19-iOS模拟器(iOS Simulator)安装自家APP

    前言 做过iOS上app测试的小伙伴应该都知道,普通用户安装app都是从appstore下载安装,安装测试版本的app,一般就是开发给的二维码扫码安装, 或者开发给个.ipa的安装包文件,通过itoo ...

  5. Appium+python自动化19-iOS模拟器(iOS Simulator)安装自家APP【转载】

    前言 做过iOS上app测试的小伙伴应该都知道,普通用户安装app都是从appstore下载安装,安装测试版本的app,一般就是开发给的二维码扫码安装, 或者开发给个.ipa的安装包文件,通过itoo ...

  6. “快的打车”创始人陈伟星的新项目招人啦,高薪急招Java服务端/Android/Ios 客户端研发工程师/ mysql DBA/ app市场推广专家,欢迎大家加入我们的团队! - V2EX

    "快的打车"创始人陈伟星的新项目招人啦,高薪急招Java服务端/Android/Ios 客户端研发工程师/ mysql DBA/ app市场推广专家,欢迎大家加入我们的团队! - ...

  7. 零成本实现Android/iOS自动化测试:基于Appium和Test Perfect

    https://item.taobao.com/item.htm?spm=a230r.1.14.14.42KJ3L&id=527677900735&ns=1&abbucket= ...

  8. NTP时间同步 服务端 客户端 自动化安装配置

    NTP时间同步 服务端 客户端 自动化安装配置 原创内容 http://www.cnblogs.com/elvi/p/7657994.html #!/bin/sh #运行环境 centos6.cent ...

  9. 移动端自动化测试(一)appium环境搭建

    自动化测试有主要有两个分类,接口自动化和ui自动化,ui自动化呢又分移动端的和web端的,当然还有c/s架构的,这种桌面程序应用的自动化,使用QTP,只不过现在没人做了. web自动化呢,现在基本上都 ...

随机推荐

  1. Node.js中Async详解:流程控制

    安装 npm install async --save 地址 https://github.com/caolan/async Async的内容主要分为三部分 流程控制: 简化九种常见的流程的处理 集合 ...

  2. 201521123080《Java程序设计》第6周学习总结

    1. 本周学习总结 1.1 面向对象学习暂告一段落,请使用思维导图,以封装.继承.多态为核心概念画一张思维导图,对面向对象思想进行一个总结. 注1:关键词与内容不求多,但概念之间的联系要清晰,内容覆盖 ...

  3. 201521123051 《Java程序设计》第3周学习总结

    1. 本周学习总结 初学面向对象,会学习到很多碎片化的概念与知识.尝试学会使用思维导图将这些碎片化的概念.知识组织起来.请使用纸笔或者下面的工具画出本周学习到的知识点.截图或者拍照上传. 使用工具:百 ...

  4. Java FX入门

    本文主要借用JavaFX 8 教程来引导同学完成Java FX的学习. 虽然java在GUI方面并无优势,但感兴趣的同学使用Java还是可以做出一些跨平台的小工具.底下是使用Java FX做出的一个界 ...

  5. Git与码云(Git@OSC)入门-如何在实验室和宿舍同步你的代码(2)

    4. 处理冲突 4.1 向远程仓库push时无法提交成功,提示在push前应该先pull 如图所示: 有可能是因为远程仓库的版本与本地仓库的版本不一致,所以应先git pull将远程仓库的内容合并到本 ...

  6. 201521123007《Java程序设计》第12周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多流与文件相关内容. 2. 书面作业 将Student对象(属性:int id, String name,int age,doubl ...

  7. 201521123009 《Java程序设计》第1周学习总结

    1. 本周学习总结 对Java进行了了解与简单的学习.第一次接触Java觉得比较难理解. 希望之后的深入学习可以解决目前的一些问题. 2. 书面作业 为什么java程序可以跨平台运行?执行java程序 ...

  8. SVN不出现绿色对勾的情况

    就目前而言,我出现了两种情况. Num1:电脑云盘可能不兼容,导致无法出现svn提示小icon:----->删除云盘重新启动. Num2:被设置覆盖.----->鼠标右键-->Tor ...

  9. Java多线程高并发学习笔记(三)——深入理解线程池

    线程池最核心的一个类:ThreadPoolExecutor. 看一下该类的构造器: public ThreadPoolExecutor(int paramInt1, int paramInt2, lo ...

  10. lintcode.245 子树

    子树   描述 笔记 数据 评测 有两个不同大小的二进制树: T1 有上百万的节点: T2 有好几百的节点.请设计一种算法,判定 T2 是否为 T1的子树. 注意事项 若 T1 中存在从节点 n 开始 ...