appium自动化原理:

需要服务端(appium启动),手机端(adb连接设备),脚本端(pycharm)就可以进行

自己总结下:

手机和脚本连接:1.adb连接,2靠脚本导入驱动。

脚本和服务端连接:1靠pythonsetting中设置安装appiumpyhon客户端 2,靠脚本中webdriver.Remote的方法传入地址和参数

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

安装就绪后,第一次执行脚本时遇到问题1,(搭建后还需要导入客户端,负责无法实现三段连接)

pycharm上面执行了第一个用例

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

#导入driver对象.驱动对象会帮助我们完成手机和脚本之间交互.
from appium import webdriver
#先定义个字典变量,给下面调用
desired_caps = {}
desired_caps['platformName'] = 'Android' #平台的名称:iOS, Android, or FirefoxOS
desired_caps['platformVersion'] = '4.4.4' #设备系统版本号
desired_caps['deviceName'] = 'KMO3EHB90R' #设备号 IOS:instruments -s devices,Android: adb devices
desired_caps['appPackage'] = 'com.avatar.settings'#启动的Activity
desired_caps['appActivity'] = '.Settings' #启动的包
desired_caps['unicodeKeyboard'] = True #unicode设置(允许中文输入)
desired_caps['resetKeyboard'] = True #键盘设置(允许中文输入)
#脚本和服务端关联,使用webdriver.Remote的方法,并传2个参数,服务端的地址和服务端需要的启动参数
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub',desired_caps)
driver.close_app() # 关闭当前操作的app,不会关闭驱动对象driver
driver.start_activity("com.avatarmind.robot.grabsmile",".GrabSmileActivity")#脚本内启动其他app
driver.quit()#关闭驱动对象,同时关闭所有关联的app
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

提示“no module named appium”错误,安装后还需要再pycharm中配置导入模块客户端

加完后如下:

再次执行python,已经能连接上并且能打开设置,此时aapuim上面已经有日志,记住保持机器人唤醒状态保证ADB成功连接

2.1.主流的移动端自动化工具

  • Robotium
    1.支持语言:Java

    2.仅支持Android系统

    3.不支持跨应用
  • Macaca
    1.支持语言:Java,Python,Node.js

    2.支持Android和iOS系统

    3.支持跨应用
  • Appium
    1.支持语言:Java,C#,Python,php,perl,ruby,Node.js

    2.支持Android和iOS系统

    3.支持跨应用
  • 自动化工具选择的关注点
    1.是否支持native,webview

    2.是否支持获取toast

    3.是否支持跨应用

2.2.Appium环境搭建

  • 2.2.1 Appium客户端安装(闲话:下面讲述安装包和命令行2种方式,2个选一个即可)

    • 2.2.1.1 Appium背景介绍

        1.官网:www.appium.io,由SauceLab公司开发
      
        2.Appium是由nodejs的express框架写的Http Server,Appium使用WebDriver的json wire协议,
      来驱动Apple系统的UIAutomation库、Android系统的UIAutomator框架
    • 2.2.1.2 Appium桌面客户端安装方式

        1. 运行appium-desktop-Setup-1.2.7.exe,默认安装即可
      2. 启动客户端,按图片步骤 1 -> 2 -> 3 -> 4 设置

        3. 启动成功展示如下图

    • 2.2.1.3 Appium命令行安装方式

        1. 安装Node.js ->Win:官网下载可执行包安装(Linux: yum install; Macos: brew install)
      2. 安装完成后 命令行运行npm或node -v 来查看是否安装成功

        敲黑板: npm国内一般被墙,所以选择淘宝镜像安装,官网:http://npm.taobao.org
      
        3. 安装cnpm: npm install -g cnpm --registry=https://registry.npm.taobao.org

        4. 安装appium: cnpm install -g appium

        4. 启动appium服务命令: appium &,如下图即正确安装
      
           敲黑板: Windows安装会提示os的模块错误,这个需要mac系统支持,不影响windows操作使用

  • 2.2.2 Appium-python库安装

    • 命令行安装(需要联网)

        pip install Appium-Python-Client
    • (举例:实际上使用pip3 install Appium-Python-Client --user 最终安装成功)
    • 安装包安装
    •   前提:python已安装setuptools包
      安装setuptools:
      1.解压setuptools-38.2.4.zip
      2.进入解压后文件夹执行命令: python setup.py install
      3.等待安装完成,无错误信息即可 安装Appium-Python-Client:
      1.解压Appium-Python-Client-0.25.tar.gz
      2.进入解压后文件夹执行命令: python setup.py install
      3.等待安装完成,无错误信息即

3.移动端自动化测试-appium环境搭建(原理)的更多相关文章

  1. 移动端自动化测试Appium环境搭建(part1-2-3)

    Appium移动端自动化测试相信大家都不陌生,appium的铁哥们是selenium,不管是selenium还是appium,都是调用webdriver来做自动化测试.今天关于appium的介绍我们不 ...

  2. 关于移动端自动化测试-Appium的搭建

    web端我们常用的开源自动化用的是selenium,而移动端我们选择的是Appium,当然也可以使用monkey或者阿里的macaca,他们在理论上都使用了webdriver: 关于Appium环境的 ...

  3. 移动端自动化测试-Windows-Android-Appium环境搭建

    1.安装JDK,并且配置好[JAVA_HOME]和[path]两个环境变量 1.1.JAVA_HOME:指向JDK的安装路径(如:C:\Program Files (x86)\Java\jdk1.7. ...

  4. 移动端自动化测试-Mac-IOS-Appium环境搭建

    第一步 安装JDK,本机如果带有1.7及以上版本的,则可忽略此安装步骤. 百度下载JDK,并配置环境变量 vim ~/.bash_profile 检查是否安装成功 java -version 第二步 ...

  5. RF+Appium框架自动化测试系列一之(Mac下Appium环境搭建)万事开头难

    消失了3个月,有一段时间没来园子更新博客了,各位看官见谅哈哈,消失是因为刚换了工作环境没外网,好多笔记没能及时的记录分享,以后有时间慢慢补上吧,这段时间主要接触了移动端app的自动化测试,公司为了快速 ...

  6. Python+Appium自动化测试(1)-appium环境搭建

    用python+appium做appUI自动化测试,系统为Windows.首先是JDK与Android SDK的安装与环境变量的设置. 一,安装JDK,配置JDK环境变量 1,下载jdk jdk8官网 ...

  7. Appium python自动化测试系列之appium环境搭建(二)

    ​2.1 基础环境搭建 当我们学习新的一项技术开始基本都是从环境搭建开始,本书除了第一章节也是的,如果你连最基础的环境都没有那么我们也没必要去说太多,大概介绍一下: 1.因为appium是支持andr ...

  8. 基于Python的Appium环境搭建合集

    自动化一直是测试圈中的热聊,也是大家追求的技术方向.在测试中,往往回归测试也是测试人员的“痛点”.对于迭代慢.变更少的功能,就能用上自动化来替代人工回归,减轻工作量. 问题 在分享环境搭建之前,先抛出 ...

  9. 移动端自动化测试Appium 从入门到项目实战Python版☝☝☝

    移动端自动化测试Appium 从入门到项目实战Python版 (一个人学习或许会很枯燥,但是寻找更多志同道合的朋友一起,学习将会变得更加有意义✌✌)  说到APP自动化测试,Appium可是说是非常流 ...

随机推荐

  1. Mysql Errors

    Mysql Errors Table of Contents 1. ERROR 1044 1.1. 42000 2. ERROR 1045 2.1. 28000 2.1.1. 无登录权限 2.1.2. ...

  2. python3速查参考- python基础 4 -> 元组 + 字典 + 字符串 的学习

    元组 元组:特点就是内容不可变,算只读的列表,可以被查询,不能被修改 a = 2, print(a) print(type(a)) b = ('a','b','c') print(b[1]) 运行结果 ...

  3. kubeadm安装集群系列-2.Master高可用

    Master高可用安装 VIP负载均衡可以使用haproxy+keepalive实现,云上用户可以使用对应的ULB实现 准备kubeadm-init.yaml文件 apiVersion: kubead ...

  4. CSS实现网页背景图片自适应全屏,自适应背景图片

    一张清晰漂亮的背景图片能给网页加分不少,设计师也经常会给页面的背景使用大图,我们既不想图片因为不同分辨率图片变形,也不希望当在大屏的情况下,背景有一块露白,简而言之,就是实现能自适应屏幕大小又不会变形 ...

  5. 第六周课程总结&java实验报告四

    第六周课程总结: 一.instanceof关键字 1.作用:在Java中可以使用instanceof关键字判断一个对象到底是哪个类的实例. 2.格式:对象 instanceof 类 -> 返回b ...

  6. SpringMvc的基础配置<一>

    SpringMVC学习 1.此篇博文是学习以下博文,并通过亲测得来:   1.1.网址:http://www.cnblogs.com/bigdataZJ/p/springmvc1.html 2.所用软 ...

  7. [目标检测] 从 R-CNN 到 Faster R-CNN

    R-CNN 创新点 经典的目标检测算法使用滑动窗法依次判断所有可能的区域,提取人工设定的特征(HOG,SIFT).本文则预先提取一系列较可能是物体的候选区域,之后仅在这些候选区域上用深度网络提取特征, ...

  8. 重载(overload)和重写(override)的区别

    方法的重载和重写都是实现多态的方式,区别在于前者实现的是编译时的多态性,而后者实现的是运行时的多态性. 重载发生在一个类中,同名的方法如果有不同的参数列表(参数类型不同.参数个数不同或者二者都不同)则 ...

  9. NIKKEI Programming Contest 2019-2 Task D. Shortest Path on a Line

    Observations ① 从 $1$ 到 $N$ 的最短路一定是不走回头路的.所谓走回头路是指从序号大的点走到序号小的点. 证明:首先,任意从 $1$ 到 $N$ 的路径的最后一步一定不是回头路. ...

  10. 有关java5以后的线程

    创建线程的方式 方式一 继承于Thread类 /** * 多线程的创建,方式一:继承于Thread类 * 1. 创建一个继承于Thread类的子类 * 2. 重写Thread类的run() --> ...