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. 防止fixed元素遮挡其他元素的方法

    有多个页面,有的有固定的头部(设置了postion:fixed的元素),有的没有固定的头部,这时就有个问题,有固定头部的页面,头部会遮挡下面的内容,那怎么解决呢? <!DOCTYPE html& ...

  2. 201521123107 《Java程序设计》第12周学习总结

    第12周-流与文件 1.本周学习总结 2.书面作业 将Student对象(属性:int id, String name,int age,double grade)写入文件student.data.从文 ...

  3. Beta阶段冲刺日志集合贴

    [Beta]Daily Scrum Meeting--Day1:http://www.cnblogs.com/RunningGuys/p/6890738.html [Beta]Daily Scrum ...

  4. 201521123026 《Java程序设计》第一周学习总结

    1. 本章学习总结 1.简要了解JAVA的发展史以及其特点(面向对象.跨平台性,健壮性,安全性,可移植性,多线程性,动态性等) 2.认识JAVA三大平台(Java SE,Java EE,JavaME) ...

  5. We Talk -- 团队博客

    WeTalk --在线群聊程序 团队博客 服务器一直在运行,使用客户端可直接登入使用.(做得很粗糙...) 客户端下载(java环境下直接运行) 0.项目介绍 现在我们网上交流离不开微信和QQ,当然在 ...

  6. 201521123014 《Java程序设计》第14周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多数据库相关内容. 数据库是为了实现一定目的按某种规则组织起来的"数据"的"集合".常见的数 ...

  7. Mybatis第一篇【介绍、快速入门、工作流程】

    什么是MyBatis MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为 ...

  8. OJ题

    题目:在字符串中找出连续最长的数字串 #include <stdlib.h> #include <string.h> #include <iostream> #in ...

  9. Javascript跳转页面和打开新窗口等方法

    1.在原来的窗体中直接跳转用onClick="window.location.href='你所要跳转的页面';" 2.在新窗体中打开页面用:onclick="window ...

  10. [python学习笔记] python程序打包成exe文件

    安装 pyinstaller pip3 install pyinstaller 命令 pyinstaller -F -w -i ../ui/icon.ico --clean ../Login.py 参 ...