本文主要介绍如何搭建 Python + Appium Android 自动化测试环境,面向小白步骤很简单哈~

1. python

第一步安装 Python

算了,这一步大家肯定都会,跳过 ~

接着安装一下需要的库,因为自动化程序充当 client,向 Appium server 发送 HTTP 请求,因此需要安装相应的库:

pip install appium-python-client


2. 安装 Appium server

appium server 是 nodejs 运行的,基于 js 开发出来的。

Appium Desktop 包含了 nodejs 的运行环境、Appium server 和一些工具。

因此安装 Appium Server 即可,click me 跳转到下载页面 !



3. JDK

Android APP 的自动化需要 Android SDK,Android SDK 需要 JDK 环境

click me to download !

安装到 D:\Java\jdk\,添加环境变量 JAVA_HOME,值为 JDK 的安装目录 D:\Java\jdk
在这里插入图片描述



4. Android SDK

APP 自动化需要用到里面的一些工具,如执行命令设置手机、文件传输、应用安装等 …

一般安装步骤为下载 Android Studio 后在里面下载 android sdk

为了方便,也可以下载 android sdk (passwd: wuwu),解压到 D:\android-sdk

添加环境变量 ANDROID_HOME,值为 skd 解压目录,如 D:\android-sdk

在这里插入图片描述

另外,将 adb 所在目录添加到 PATH,值为 D:\android-sdk\platform-tools



5. 连接手机

打开开发者模式,启用 USB 调试,连接后点击允许 USB 调试

在命令行使用 adb devices 查看设备,可以检测到手机,adb 命令可以参考 click me

双击运行 Appium server,点击 start

在这里插入图片描述

运行下面的代码实现 Android bilibili 的自动化测试:

from appium import webdriver
from appium.webdriver.extensions.android.nativekey import AndroidKey

desired_caps = {
  'platformName': 'Android', # 被测手机是安卓
  'platformVersion': '8', # 手机安卓版本
  'deviceName': 'xxx', # 设备名,安卓手机可以随意填写
  'appPackage': 'tv.danmaku.bili', # 启动APP Package名称
  'appActivity': '.ui.splash.SplashActivity', # 启动Activity名称
  'unicodeKeyboard': True, # 使用自带输入法,输入中文时填True
  'resetKeyboard': True, # 执行完程序恢复原来输入法
  'noReset': True,       # 不要重置App
  'newCommandTimeout': 6000,
  'automationName' : 'UiAutomator2'
  # 'app': r'd:\apk\bili.apk',
}

# 连接Appium Server,初始化自动化环境
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)

# 设置缺省等待时间
driver.implicitly_wait(5)

# 青少年保护
iknow = driver.find_elements_by_id("text3")
if iknow:
    iknow.click()

driver.find_element_by_id("expand_search").click()
sbox = driver.find_element_by_id('search_src_text')
sbox.send_keys('Doyoudo')
driver.press_keycode(AndroidKey.ENTER)

eles = driver.find_elements_by_id("title")
for ele in eles:
    print(ele.text)
ele.click()

q = input('input q to quit')
if q == 'q':
    driver.quit()

如果安装和连接过程正常,可以看到手机 App 自动搜索 doyoudo

Inspector Session

Inspector Session 可以帮助我们快速地查看页面元素的信息,手机上的代理将被测试 APP 的元素节点信息上传到 Appium server,最后显示在电脑屏幕,这样就可以像 Selenium 一样简单使用啦~

使用方法:
1、用数据线与手机建立连接(使用adb命令:adb devices查看是否连接,并得出该手机的序列号)
2、运行appium,并点击右上角的“搜索”符号
3、编辑需要定位的程序的信息,并保存
4、选择Automatic Server一栏,点击start session就能够进入到需要定位的界面了

具体步骤如下,首先需要配置一下信息
在这里插入图片描述

在 Automatic Server 下创建一个表格,填入信息后会生成下面的 JSON 文件(注意 true 小写、使用双引号):

{
  "platformName": "Android",
  "platformVersion": "8",
  "appPackage": "tv.danmaku.bili",
  "appActivity": ".ui.splash.SplashActivity",
  "unicodeKeyboard": "True",
  "resetKeyboard": "True",
  "noReset": "True",
  "newCommandTimeout": "6000",
  "automationName": "UiAutomator2"
}

接着可以保存一下,命名为 mi6,最后点击 Start session 就可以看到 APP 窗口和 DOM 树啦 ~

在这里插入图片描述

REFERENCES:

  1. https://www.bilibili.com/video/BV1tE411n7rV?p=3
  2. http://www.python3.vip/tut/auto/appium/01/

嘿嘿,学到这,我离淘宝自动叠猫猫又近了一步 🍻

可以参考我的博客 Appium + Python APP 自动化测试 进一步学习哦 ~

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐