当前位置: 首页 > news >正文

3.appium环境搭建(原理)

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.等待安装完成,无错误信息即

 

转载于:https://www.cnblogs.com/yinlili/p/11170619.html

相关文章:

  • 69期-Java SE-025-动态代理
  • JavaScript数值处理 + 小花样
  • SQLMap使用总结
  • Redis 学习笔记(篇五):对象(RedisObject)
  • Codevs 3981 动态最大子段和
  • A 小石的签到题
  • 又是问题~~~
  • Sql: 請假跨月份問題,或跨年份問題 日期部分边界
  • OpenFlow通信流程解读
  • React 入门与实战-课时7 虚拟DOM的本质和目的
  • sort函数和next_permutation()函数的用法。
  • 舵机控制原理
  • BZOJ1123 BLO
  • Mac下的PHP的配置与运行
  • 数据映射工具 AssionMapper
  • Akka系列(七):Actor持久化之Akka persistence
  • Android路由框架AnnoRouter:使用Java接口来定义路由跳转
  • C++类中的特殊成员函数
  • ERLANG 网工修炼笔记 ---- UDP
  • ES6 ...操作符
  • Git初体验
  • If…else
  • Intervention/image 图片处理扩展包的安装和使用
  • JavaScript 基础知识 - 入门篇(一)
  • js继承的实现方法
  • Laravel5.4 Queues队列学习
  • Linux后台研发超实用命令总结
  • mac修复ab及siege安装
  • node入门
  • react-native 安卓真机环境搭建
  • Spring Boot MyBatis配置多种数据库
  • vue从创建到完整的饿了么(11)组件的使用(svg图标及watch的简单使用)
  • Webpack入门之遇到的那些坑,系列示例Demo
  • 更好理解的面向对象的Javascript 1 —— 动态类型和多态
  • 官方新出的 Kotlin 扩展库 KTX,到底帮你干了什么?
  • 坑!为什么View.startAnimation不起作用?
  • 前端知识点整理(待续)
  • 算法-插入排序
  • 无服务器化是企业 IT 架构的未来吗?
  • 消息队列系列二(IOT中消息队列的应用)
  • 【干货分享】dos命令大全
  • #### go map 底层结构 ####
  • #绘制圆心_R语言——绘制一个诚意满满的圆 祝你2021圆圆满满
  • $.proxy和$.extend
  • $NOIp2018$劝退记
  • (12)目标检测_SSD基于pytorch搭建代码
  • (libusb) usb口自动刷新
  • (第二周)效能测试
  • (二)WCF的Binding模型
  • (一)UDP基本编程步骤
  • .gitattributes 文件
  • .NET Core 项目指定SDK版本
  • .NET和.COM和.CN域名区别
  • .net中调用windows performance记录性能信息
  • @Documented注解的作用