Appium: 手机应用自动化测试(一)

一、环境搭建

参考文档:

【python+appium】使用appium 操作安卓模拟器_python连接到手机模拟器-CSDN博客

1、安卓模拟器配置

(1)下载地址

夜神安卓模拟器-安卓模拟器电脑版下载_安卓手游模拟器_手机模拟器_官网 (yeshen.com)

(2)开发者模式设置

进入如下界面打开平板电脑后不断点击版本号进入开发者模式,查看是否打开开发者选项应该以显示开发者选项为准。

确认开发者模式已经被打开:

(3)添加apk

(4)模拟器配置

安装路径下找到安卓模拟器的端口 62001,这个端口用于adb连接:

2、安卓SDK配置

(1)安卓SDK下载地址(找到对应版本SDK)

AndroidDevTools - Android开发工具 Android SDK下载 Android Studio下载 Gradle下载 SDK Tools下载

版本说明: 

SDK 平台版本说明  |  Android Studio  |  Android Developers

(2)解压后编辑环境变量

电脑搜索“环境变量” -》编辑“系统变量”-》双击“path”->添加sdk所在路径,示例如下:

(3)将模拟器的adb复制到安卓SDK中

打开模拟器安装路径并复制adb-》打开安卓SDK备份原adb并粘贴adb

或者寻找指定版本:SDK 平台工具版本说明  |  Android Studio  |  Android Developers

(4)验证环境(连接安卓模拟器)

如图,连接成功。

3、java环境搭建

(1)java下载地址

Java Downloads | Oracle

(2)配置环境变量

(3)验证环境(查看版本)

4、安装appium

(1)下载桌面版直接安装即可

Releases · appium/appium-desktop (github.com)

5、安装相关python库

pip install selenium==4.9.0
pip install appium-python-client==2.9.0

二、运行环境

模拟器安卓版本/手机安卓版本:7.1.2
java版本:1.8.0_40
appium-python-client版本:2.9.0
selenium版本:4.9.0
andriosdk版本:29.0.3
adb版本:1.0.36

1、使用模拟器打开手机应用

2、使用adb连接模拟器与查看相关信息

(1)连接模拟器与查看设备列表

adb connect 127.0.0.1:62001
adb devices

(2)查看设备名称

adb -s 127.0.0.1:62001 shell getprop ro.product.model

 (3)查看安卓版本

adb shell getprop ro.build.version.release

(4)查看包名

adb shell pm list packages -f

(5)查看应用名 

adb shell dumpsys package com.coolkit | findstr /i activity

 如下,启动应用名为  .MainActivity

(6)查看app当前界面的所有元素 

生成当前界面元素并导出到本地。

adb shell uiautomator dump /sdcard/view.xml
adb pull /sdcard/view.xml D:\临时文件

 

3、以管理员身份运行appium服务端

4、使用python的appium客户端连接服务端并操作应用

(1)启动应用,退出应用

通过adb指令查看连接用到的相关信息,并使用webdriver进行连接。

from appium import webdriver

desired_caps = {
  'platformName': 'Android',  # 被测手机是安卓
  'platformVersion': '7.1.2',  # 手机安卓版本
  'deviceName': 'SM-N976N',  # 设备名
  'appPackage': 'com.coolkit',  # 启动APP Package名称
  'appActivity': '.MainActivity',  # 启动Activity名称
  'unicodeKeyboard': True,  # 使用自带输入法,输入中文时填True
  'resetKeyboard': True,  # 执行完程序恢复原来输入法
  'noReset': True,  # 不要重置App,如果为False的话,执行完脚本后,app的数据会清空,比如你原本登录了,执行完脚本后就退出登录了
  'newCommandTimeout': 6000,
  'automationName': 'UiAutomator2'
}


# 连接 Appium Server
driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", desired_caps)


# 退出程序
driver.quit()

(2)连接当前应用

在上述desired_caps中,去掉2个参数即可。

desired_caps = {
  'platformName': 'Android',
  'platformVersion': '7.1.2',
  'deviceName': 'SM-N976N',
  'unicodeKeyboard': True,
  'resetKeyboard': True,
  'noReset': True,
  'newCommandTimeout': 6000,
  'automationName': 'UiAutomator2'
}

三、兼容性

1、AndroidSDK与Android版本的关系

Android SDK(软件开发工具包)和Android版本之间的关系通常通过API级别(API Level)来表示。每个Android版本都有一个唯一的API级别,这有助于开发者在编写和编译应用程序时知道它们支持的功能和设备的兼容性。

特别的,Android SDK的adb程序版本不与SDK统一。

以下是一个对照表,列出了Android版本、对应的API级别和Android SDK工具的关系:

2、appium server 与 Android版本对应关系

Appium Server通常能够支持多个Android版本,因此尽可能用新的Appium Server,值得注意的是Appium使用不同的驱动程序来与Android设备通信,最常用的是UiAutomator2和Espresso。不同的驱动程序对Android版本的支持可能有所不同。

UiAutomator1支持Android 4.1到Android 6.0。

UiAutomator2支持Android 5.0及更高版本。

3、appium server 与 appium python client 的版本对应关系

通常情况下,高版本的appium python client兼容低版本的appium server。

4、appium python client 与 selenium 的对应关系

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Lion King

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值