zoukankan      html  css  js  c++  java
  • appium安装及环境搭建、入门

    1 appium安装及环境搭建

    1.1 安装JDK并配置环境变量

    1. Java官方网站上下载相应系统的jdk文件安装,全部选择默认的安装路径即可安装完成。
    2. 配置JAVA_HOME:新建 JAVA_HOME 环境变量,变量值是自己安装JDK 的路径
    3. 配置ClASSPATH:新建 CLASSPATH 环境变量:.;%JAVA_HOME%/lib/dt.jar;%JAVA_HOME%/lib/tools.jar
    4. 配置PATH:找到PATH变量,追加如下目录:%JAVA_HOME%/bin;%JAVA_HOME%/jre/bin;
    5. 验证安装是否成功:java -version

    --------------------------------------

    C:Userszhouxy>java –version  

    Java version "1.8.0_91"       

    -------------------------------------- 

    1.2 Android SDK环境搭建

    下载Android SDK:http://tools.android-studio.org/index.php/sdk

    • 新建 ANDROID_HOME 环境变量,变量值是SDK解压的路径
    • 追加sdk如下目录到PATH变量:
      1. tools目录:%ANDROID_HOME% ools
      2. platform-tools目录:%ANDROID_HOME%platform-tools
      3. build-tools目录:%ANDROID_HOME%uild-toolsandroid-4.4W
    • 验证:在命令行窗口中输入adb

    -------------------------------------------------

    C:Userszhouxy>adb
    Android Debug Bridge version 1.0.40
    Version 4797878
    Installed as D:Androidandroid-sdkplatform-toolsadb.exe

    ---------------------------------------------------

    1.3 Python环境搭建

    略。pip install Appium-Python-Client

    1.4 安装node.js

    1. 到官网下载node.js: https://nodejs.org/en/。获取到安装文件后,直接双击安装文件,根据程序的提示,完成nodejs的安装
    2. 把Node.js的安装路径(也就是node.exe文件所在的目录)追加到环境变量Path
    3. 验证:在命令行窗口中输入node –v

    ---------------------------------        

    C:Userszhouxy>node -v
    v8.11.3

    --------------------------------

    1.5 安装Appium

          下载后解压,直接双击appium-installer.exe文件安装,桌面会生成一个appium的图标

    • 手动在Path中配置appium环境变量:

          将安装的Appium文件夹所在目录Appium ode_modules.bin添加进path

    • 验证:输入appium-doctor ,出现以下提示说明环境成功。

    --------------------------------------------------------

    C:Userszhouxy>appium-doctor
    Running Android Checks
    ✔ ANDROID_HOME is set to "D:Androidandroid-sdk"
    ✔ JAVA_HOME is set to "D:sunline-idejdk1.8.0_91."
    ✔ ADB exists at D:Androidandroid-sdkplatform-toolsadb.exe
    ✔ Android exists at D:Androidandroid-sdk oolsandroid.bat
    ✔ Emulator exists at D:Androidandroid-sdk oolsemulator.exe
    ✔ Android Checks were successful.

    ✔ All Checks were successful

    --------------------------------------------------------

    2 安装Android版本

    双击 SDK Manage.exe 启动SDK管理器

    双击 AVD Manage.exe 启动AVD管理器

    点击 “Create…” 按钮,创建Android虚拟机

    不要选择超过电脑屏幕分辨率的Device,其它选项参考上图。点击 “OK” 创建完成。在 AVD Manage 工具中选中创建的Android虚拟机,点击 “Start…” 按钮启动

     

    打开Appium,点击右上角三角按钮,注意Appium的启动日志

    3 获取包名和launcherActivity

    3.1 aapt工具

    aapt即Android Asset Packaging Tool,在SDK的build-tools目录下,该工具可以查看apk包名和launcherActivity。

    在build-tools安装的版本下录下找到aapt.exe,将这个路径设置环境变量,添加到path下。

    打开cmd,输入aapt出现如下界面

    3.2 获取apk包名

    • 将准备测试的APK放到D盘某个目录,如D: est
    • 打开cmd,输入指令aapt dump badging D: estxxx.apk(APK的全名,如手机淘宝.apk)
    • package:name='包名'

    3.3 获取launcherActivity

    • launchable-activity:name='launcherActivity名'

    或者直接在tools启动monitor.bat或者uiautomatorviewer.bat,可用来查看元素

    4 Appium的API操作 

    • deviceName:启动哪种设备,是真机还是模拟器?iPhone Simulator,iPad Simulator,iPhone Retina 4-inch,Android Emulator,Galaxy S4…

    • automationName:使用哪种自动化引擎。appium(默认)还是Selendroid。

    • platformName:使用哪种移动平台。iOS, Android, orFirefoxOS。

    • platformVersion:指定平台的系统版本。例如指的Android平台,版本为5.1。

    • appActivity:待测试的app的Activity名字。比如MainActivity、.Settings。注意,原生app的话要在activity前加个”.“。

    • appPackage:待测试的app的Java package。比如com.example.android.myApp, com.android.settings。

    from appium import webdriver
    
    desired_caps={}
    desired_caps['platformName']='Android'
    desired_caps['platformVersion']='4.4.2'
    desired_caps['deviceName']='Android Emulator'
    desired_caps['appPackage']='com.android.calculator2'
    desired_caps['appActivity']='.Calculator'
    
    driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub',desired_caps)
    
    driver.find_element_by_name('9').click()
    driver.find_element_by_accessibility_id('plus').click()
    driver.find_element_by_name('8').click()
    driver.find_element_by_accessibility_id('equals').click()

    driver.quit()

    4.1 API之应用操作

    4.1.1 安装应用

    • installApp() #指定apk路径

    4.1.2 卸载应用

    • removeApp() #指定包名

    4.1.3 关闭应用

    • closeApp()

    4.1.4 启动应用

    • launchApp()

    4.1.5 检查应用是否安装

    • isAppInstalled() #指定包名

    4.1.6 将应用置于后台

    • runAppInBackground() #指定置于后台的时长

    4.1.7 应用重置

    • resetApp()

    4.2 API之上下文操作

    4.2.1 获取当前上下文

    • getContext()

    4.2.2 当前所有上下文句柄

    • getContextHandles()

    4.2.3 切换上下文

    • context() #指定上下文名称

    4.3 API 之键盘操作

    4.3.1 sendKeys()方法

    4.3.2 pressKeyCode()方法

    下面提供Android keycode参考表:

    电话键:

    KEYCODE_CALL 拨号键 5

    KEYCODE_ENDCALL 挂机键 6

    KEYCODE_HOME 按键Home 3

    KEYCODE_MENU 菜单键 82

    KEYCODE_BACK 返回键 4

    KEYCODE_SEARCH 搜索键 84

    KEYCODE_CAMERA 拍照键 27

    KEYCODE_FOCUS 拍照对焦键 80

    KEYCODE_POWER 电源键 26

    KEYCODE_NOTIFICATION 通知键 83

    KEYCODE_MUTE 话筒静音键 91

    KEYCODE_VOLUME_MUTE 扬声器静音键 164

    KEYCODE_VOLUME_UP 音量增加键 24

    KEYCODE_VOLUME_DOWN 音量减小键 25

    控制键:

    KEYCODE_ENTER 回车键 66

    KEYCODE_ESCAPE ESC键 111

    KEYCODE_DPAD_CENTER 导航键 确定键 23

    KEYCODE_DPAD_UP 导航键 向上 19

    KEYCODE_DPAD_DOWN 导航键 向下 20

    KEYCODE_DPAD_LEFT 导航键 向左 21

    KEYCODE_DPAD_RIGHT 导航键 向右 22

    KEYCODE_MOVE_HOME 光标移动到开始键 122

    KEYCODE_MOVE_END 光标移动到末尾键 123

    KEYCODE_PAGE_UP 向上翻页键 92

    KEYCODE_PAGE_DOWN 向下翻页键 93

    KEYCODE_DEL 退格键 67

    KEYCODE_FORWARD_DEL 删除键 112

    KEYCODE_INSERT 插入键 124

    KEYCODE_TAB Tab键 61

    KEYCODE_NUM_LOCK 小键盘锁 143

    KEYCODE_CAPS_LOCK 大写锁定键 115

    KEYCODE_BREAK Break/Pause键 121

    KEYCODE_SCROLL_LOCK 滚动锁定键 116

    KEYCODE_ZOOM_IN 放大键 168

    KEYCODE_ZOOM_OUT 缩小键 169

    组合键:

    KEYCODE_ALT_LEFT Alt+Left

    KEYCODE_ALT_RIGHT Alt+Right

    KEYCODE_CTRL_LEFT Control+Left

    KEYCODE_CTRL_RIGHT Control+Right

    KEYCODE_SHIFT_LEFT Shift+Left

    KEYCODE_SHIFT_RIGHT Shift+Right

    基本:

    KEYCODE_0 按键’0’ 7

    KEYCODE_1 按键’1’ 8

    KEYCODE_2 按键’2’ 9

    KEYCODE_3 按键’3’ 10

    KEYCODE_4 按键’4’ 11

    KEYCODE_5 按键’5’ 12

    KEYCODE_6 按键’6’ 13

    KEYCODE_7 按键’7’ 14

    KEYCODE_8 按键’8’ 15

    KEYCODE_9 按键’9’ 16

    KEYCODE_A 按键’A’ 29

    KEYCODE_B 按键’B’ 30

    KEYCODE_C 按键’C’ 31

    KEYCODE_D 按键’D’ 32

    KEYCODE_E 按键’E’ 33

    KEYCODE_F 按键’F’ 34

    KEYCODE_G 按键’G’ 35

    KEYCODE_H 按键’H’ 36

    KEYCODE_I 按键’I’ 37

    KEYCODE_J 按键’J’ 38

    KEYCODE_K 按键’K’ 39

    KEYCODE_L 按键’L’ 40

    KEYCODE_M 按键’M’ 41

    KEYCODE_N 按键’N’ 42

    KEYCODE_O 按键’O’ 43

    KEYCODE_P 按键’P’ 44

    KEYCODE_Q 按键’Q’ 45

    KEYCODE_R 按键’R’ 46

    KEYCODE_S 按键’S’ 47

    KEYCODE_T 按键’T’ 48

    KEYCODE_U 按键’U’ 49

    KEYCODE_V 按键’V’ 50

    KEYCODE_W 按键’W’ 51

    KEYCODE_X 按键’X’ 52

    KEYCODE_Y 按键’Y’ 53

    KEYCODE_Z 按键’Z’ 54

  • 相关阅读:
    linux下vim的安装及其设置细节
    vm虚拟机下ubuntu连接上ssr
    文件写入-结构体排序
    利用链表进行报数游戏
    链表——尾插法
    C#设计模式总结
    C#设计模式(20)——策略者模式(Stragety Pattern)
    Autofac在项目中应用的体会,一个接口多个实现的情况
    C#设计模式(1)——单例模式
    jquery.js与sea.js综合使用
  • 原文地址:https://www.cnblogs.com/cirr-zhou/p/9350656.html
Copyright © 2011-2022 走看看