App自动化测试(一)appium框架介绍与环境安装

Appium框架介绍

Appium 的引擎

  • Android 是 uiautomator2
  • ios 是 xcuitest

Appium 的设计理念

  • webdriver 是基于 http 协议的,第一连接会建立一个 session 会话,并通过 post 发送一个 json 告知服务端相关测试信息
  • client/server 设计模式
  • 客户端通过 webdriver json wire 协议与服务器通讯
  • 多语言支持
  • server 可以放在任何地方
  • 服务器 nodejs 开发的 http 服务
  • appium 使用 appium-xcuitest-driver 来测试 iphone 设备,其中需要安装 Facebook 出的 WDA(webdriver agent) 来驱动 ios 测试

Appium 的生态工具

  • adb:Android 控制工具
  • appium Destkop:内嵌 appium server 和 inspector 的综合工具
  • appium server:appium 的核心工具,命令行工具
  • appium client:各种语言的客户端封装库,用户连接 appium server,包含 python、java、ruby 等

获取 App 的信息

  • 获取当前元素界面:adb shell dumpsys activity top
  • 获取任务列表:adb shell dumpsys activity activities
  • 获取 app 的 package 和 activity:adb shell logcat | grep -i displayed
  • 启动应用: adb shell am start -W -n "package/activity" -S

Capability 设置

  • 文档地址:http://appium.io/docs/en/writing-running-appium/caps/index.html

  • platformName: android

  • deviceName: 127.0.0.1:5555 这个通常是 adb devices 的名称

  • appPackage: 这个是 app 的 package 包名

  • appActivity: 这个是 app 的 activity 名

  • noReset:true, false 是否重置测试的环境

  • unicodeKeyboard:true, false 是否需要输入非英文之外的语言并在测试完成后重置输入法,比如输入中文

  • dontStopAppOnReset:true, false 首次启动的时候,不停止 app

  • skipDeviceInitialization:true, false 跳过安装,权限设置等操作

官方测试用 apk

Appium 环境搭建

JDK 的搭建

  • 下载 1.8 的 jdk
  • 新建环境变量:JAVA_HOME 值为:D:\Program Files\Java\jdk1.7.0
  • 新建环境变量:CLASSPATH 值为:.;%JAVA_HOME%\lib;(注意:点号表示当前目录,不能省略)
  • 在系统变量 Path 的值的前面加入以下内容:%JAVA_HOME%\bin

SDK 的配置

  • 下载 sdk
  • 打开 sdk 的 sdk manager,安装 tools 前 3 个和 google 的 usb 驱动
  • 配置环境变量 Android home 里面的 platform-tools 和 tools

Appium 的搭建

  • 安装desktop版本
  • 安装server版本
    • 安装 node.js,配置 node.js 的环境变量
    • npm install -g appium
    • npm install -g appium-doctor # appium环境安装检测
  • python客户端安装:pip install appium-python-client

appium第一个脚本

from appium import webdriver
desired_caps={}
desired_caps['platformName']='Android'
desired_caps['platformVersion']='6.0'
desired_caps['deviceName']='emulator-5554'
# com.android.settings/com.android.settings.Settings
desired_caps['appPackage']='com.android.settings'
desired_caps['appActivity']='com.android.settings.Settings'

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

posted @ 2022-07-16 12:15  小小滴人a  阅读(223)  评论(0编辑  收藏  举报