• Appium


    配置一系列环境:

    01. 环境依赖

    • Node.js
    • Appium
    • Appium-desktop
    • Appium-doctor
    • Appium-Python-Client
    • Python
    • JDK
    • Andriod SDK

    02. 安装Node.js

    下载地址:https://nodejs.org/en/download/releases/

    注意:Node.js版本要注意与Appium兼容,本套教程Appium版本是1.13.0,则选择的Node.js版本为10.14.2

    安装完成后在按键Win+R输入cmd打开Windows 命令提示符,

    输入如下命令:

    C:Usersmobilefly>node -v
    v10.14.2

    C:Usersmobilefly>npm -v

    6.4.1

    说明:

    • npm(node package manage)是node.js安装包管理工具,类似Python中的pip工具。
    • 如果显示‘npm’不是内部命令提示,则可以管理员省份运行cmd,如果还是失败,则需要检查一下环境变量是否配置,或者重新安装nodejs。

    03. Appium 安装

    Appium Server其实可以通过命令 npm install -g appium来安装。不过由于众所周知的网络原因,直接使用这样安装会非常非常慢,甚至会安装失败,所以我们可以使用国内镜像来安装。

    选用的镜像是 淘宝NPM镜像

    04. 镜像设置

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

     

    执行完成命令看到如下提示则表示设置完成

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

    npm WARN deprecated socks@1.1.10: If using 2.x branch, please upgrade to at least 2.1.6 to avoid a serious bug with socket data flow and an import issue introduced in 2.1.0

    C:UsersShuqingAppDataRoaming pmcnpm -> C:UsersShuqingAppDataRoaming pm ode_modulescnpmincnpm

    + cnpm@5.2.0

    added 764 packages in 63.767s

    05. appium 安装

    使用如下命令来执行安装:

    #安装最新版本

    cnpm install -g appium

     

    #安装指定版本

    cnpm install appium@1.7.2 -g

    看到如下命令时则表示下载安装完成。

    All packages installed (565 packages installed from npm registry, used 57s, speed 835.67kB/s, json 477(6.16MB), tarball 40.58MB)

    [appium@1.8.0] link C:UsersShuqingAppDataRoaming pmappium@ -> C:UsersShuqingAppDataRoaming pm ode_modulesappiumuildlibmain.js

    npm的包安装分为本地安装(local)、全局安装(global)两种,一般我们推荐使用全局安装。

    06. appium配置

    安装完成之后可以使用如下命令查看appium的安装路径

    C:UsersShuqing>where appium

    C:UsersShuqingAppDataRoaming pmappium

    C:UsersShuqingAppDataRoaming pmappium.cmd

    07. appium运行

    在控制台输入命令 appium即可启动appium服务,appium -v查看版本

    C:UsersShuqing>appium -v

    1.7.2

     

    C:UsersShuqing>appium

    [Appium] Welcome to Appium v1.7.2

    [Appium] Appium REST http interface listener started on 0.0.0.0:4723

    如果输入appium后显示:“appium不是内部或外部命令,也不是可运行的程序或批处理文件” 可以将appium安装的路径 如: “C:UsersShuqingAppDataRoaming pm”配置到系统环境变量Path中

    08. 退出appium

    按键 ctrl+c 选择y 即可退出

    09. 安装Appium-desktop

    下载地址:https://github.com/appium/appium-desktop/releases

    上面提到的问题可以使用前面我们已经介绍了Appium Server来解决,Appium-desktop工具其实也封装了Appium server和Node.js依赖环境。

    appium-desktop是我们初学者最容易上手的工具,后面课程首先会基于这个工具来讲解!然后再基于appium 命令来讲。

    10. python环境安装配置

    下载:https://www.python.org/downloads/release/python-278/

    配置:https://www.cnblogs.com/huangbiquan/p/7784533.html

    安装成功之后输入命令 python --version看到如下提示即可

    C:UsersShuqing>python --version

    Python 3.5.0

    11. 安装Appium-Python-Client

    client下载地址 :https://github.com/appium/python-client

    通过命令: pip install Appium-Python-Client 进行安装。 安装后可以通过如下命令来检测是否安装成功。

    输入命令from appium import webdriver” 回车,如果控制台没有报错,则说明安装成功。

    C:UsersShuqing>python

    Python 3.5.0 (v3.5.0:374f501f4567, Sep 13 2015, 02:27:37) [MSC v.1900 64 bit (AMD64)] on win32

    Type "help", "copyright", "credits" or "license" for more information.

    >>> from appium import webdriver

     

    如果出现如下报错,则说明安装失败

    ImportError: No module named 'appium'

    ImportError: cannot import name “webdriver”

    说明:装Appium-Python-Client安装后的路径一般为:

    {Python 安装路径}Libsite-packagesappium

    12. JDK安装配置

    jdk下载地址:

    http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

    jdk环境变量配置

    http://jingyan.baidu.com/article/624e74599e8ad834e8ba5a94.html

    安装配置完成后,打开命令提示符窗口,然后输入如下面命令有对应提示说明安装配置成功。

    C:UsersShuqing>java -version

    java version "1.8.0_05"

    Java(TM) SE Runtime Environment (build 1.8.0_05-b13)

    Java HotSpot(TM) 64-Bit Server VM (build 25.5-b02, mixed mode)

    13. Andriod sdk 安装

    下载地址: http://tools.android-studio.org/index.php/sdk

    根据自己的PC平台下载对应版本即可。

    安装完成后需要配置环境变量:ANDROID_HOME,

    https://www.cnblogs.com/yxysuanfa/p/7251253.html

    ANDROID_HOME=D:adt-bundlesdk

    path=%ANDROID_HOME%platform-tools;%ANDROID_HOME% ools;

     

    adb/android环境变量配置成功后,cmd中分别输入adbandroid list

     

    14. 安装 appium-doctor

    appium-doctor可以检测Appium整体依赖环境配置情况。

    C:UsersShuqing>cnpm install appium-doctor -g

    • 在控制台输入命令:appium-doctor 看到如下提示说明整体环境配置成功。

    C:UsersShuqing>appium-doctor

    info AppiumDoctor Appium Doctor v.1.4.3

    info AppiumDoctor ### Diagnostic starting ###

    info AppiumDoctor  ✔ The Node.js binary was found at: D:program files odejs ode.exe

    info AppiumDoctor  ✔ Node version is 6.11.3

    info AppiumDoctor  ✔ ANDROID_HOME is set to: E:Andriod_sdk

    info AppiumDoctor  ✔ JAVA_HOME is set to: C:Program FilesJavajdk1.8.0_05

    info AppiumDoctor  ✔ adb exists at: E:Andriod_sdkplatform-toolsadb.exe

    info AppiumDoctor  ✔ android exists at: E:Andriod_sdk oolsandroid.bat

    info AppiumDoctor  ✔ emulator exists at: E:Andriod_sdk oolsemulator.exe

    info AppiumDoctor  ✔ Bin directory of %JAVA_HOME% is set

    info AppiumDoctor ### Diagnostic completed, no fix needed. ###

    info AppiumDoctor

    info AppiumDoctor Everything looks good, bye!

    info AppiumDoctor

    如果上面某一项显示为“X”则说明相关环境没有配置好,需要重新安装配置。

    第一个Appium脚本:

    01. 测试环境

    • Win 10 64bit
    • Python 3.5
    • Appium 1.7.2
    • Andriod 5.1.1 模拟器& Android 5.1 MX4
    • 测试App:考研帮Android版 3.1.0

    02. 测试场景

    自动安装考研帮App(kaoyan3.1.0.apk),然后启动App

    03. 测试步骤

    • 获取待测试app的packageName和Activity
    • 配置Capability
    • 连接设备
    • 编辑脚本并运行
    • 查看结果

    04. 运行前检查事项

    1. 检查设备是否连接
    2. 检查Appium server是否启动
    3. 检查Capability配置信息是否正确

    05. 测试脚本

    test_kyb.py

    from appium import webdriver

     

    desired_caps={}

    desired_caps['platformName']='Android'

     

    #模拟器设备

    desired_caps['platformVersion']='5.1.1'

    desired_caps['deviceName']='127.0.0.1:62025'

     

    #mx4真机

    # desired_caps['platformVersion']='5.1'

    # desired_caps['deviceName']='MX4'

    # desired_caps['udid']='750BBKL22GDN'

     

    desired_caps['app']=r'C:UsersShuqingDesktopkaoyan3.1.0.apk'

     

    desired_caps['appPackage']='com.tal.kaoyan'

    desired_caps['appActivity']='com.tal.kaoyan.ui.activity.SplashActivity'

     

    driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)

     

    06. pycharm常用快捷键

    • 复制粘贴当前行 Ctrl+D
    • 注释 Ctrl+/
    • 运行当前脚本 Ctrl+shift+F10
    • 折叠展开代码 Ctrl + Numpad + /-
    • 方法定义跳转 Ctrl+B

    1.首次启动Appium会在设备上安装2个守护app,Appium Settings和Unlock 部分设备系统由于权限的问题(如:三星S6 edge+)需要用户手动确认安装,否则不安装守护App会导致脚本运行失败,安装好后不要随意卸载这两个App。

    • Unlock :用于解锁手机弹窗提示
    • Appium Setting:Appium守护app
    1. from appium import webdriver 中的webdriber模块和selenium中的webdriver模块不一样!

    webdriver模块源码路径:

    {python安装路径}}Libsite-packagesappiumwebdriver

    07. Appium报错&解决方案——那些年我们踩过的坑

    Appium服务未启动

    urllib.error.URLError: <urlopen error [WinError 10061] 由于目标计算机积极拒绝,无法连接。

    【解决方案】点击启动Appium按钮后,出现[Appium] Welcome to Appium v1.7.2提示后再运行脚本

    II 会话冲突

    error: Failed to start an Appium session, err was: Error: Requested a new session but one was in progress

    【报错分析】 之前的会话没有关闭,然后你又运行了测试实例,也没有设置覆盖.

    【解决方案】 重新停止appium服务,开启Appium服务 在AdVance界面勾选Allow Session Override选项 ,重启Appium 测试结束在AfterClass加driver.quit()

    III 未安装java环境

    selenium.common.exceptions.WebDriverException: Message: A new session could not be created. (Original error: 'java -version' failed. Error: Command failed: C:WINDOWSsystem32cmd.exe /s /c "java -version"

    IV 设备未连接

    selenium.common.exceptions.WebDriverException: Message: An unknown server-side error occurred while processing the command. Original error: Could not find a connected Android device.

    【解决方案】由于设备未连接,或者连接后未开启USB Debug。需要重新连接设备即可。

    更换手机设备后如下对应的属性要记得更新,否则无法正常运行脚本。

    desired_caps['platformVersion'] = 'XXX'

    desired_caps['deviceName'] = 'Galaxy S6 edge+'

    launchable activity 值写错

    Activity used to start app doesn't exist or cannot be launched! Make sure it exists and is a launchable activity

    【解决方案】

    • launchable activity 写错更正即可。
    • 如果是存在此activity,则一定是AndroidMainfest.xml.xml中,当前activity设置的属性exported=false,表示当前activity无法被外部程序唤醒。(appium无法唤醒此类)需要研发人员去修改参数。
    VI 系统权限问题

    Failure [INSTALL_FAILED_USER_RESTRICTED])

    【解决方案】

    1. USB安装管理权限限制,关闭即可。
    2. 开启安装允许未知来源app选项
    VII 服务异常

    An unknown server-side error occurred while processing the command” while opening the App

    【解决方案】重新启动Appium服务

  • 相关阅读:
    osip2 代码分析
    批处理命令——call 和 start
    在VS2010 VC++项目中引用Lib静态库(以Openssl为例)
    Gerrit 代码审核服务器的工作流和原理
    crucible VS gerrit
    领导者/追随者(Leader/Followers)模型和半同步/半异步(half-sync/half-async)模型都是常用的客户-服务器编程模型
    半同步半异步I/O的设计模式(half sync/half async)
    高并发系统设计
    通过Nginx反向代理之后客户端验证码session不一致造成无法验证通过的问题解决
    使用Nodpad++正则替换
  • 原文地址:https://www.cnblogs.com/uni5/p/12017922.html
Copyright © 2020-2023  润新知