编写第一个APP自动化脚本 appium_helloworld ,将脚本跑起来

一、前置说明

我们把学习 Appium 的第一个脚本称为 appium_helloworld,它用于展示 Appium 的基本用法,验证配置和环境是否正确。

Appium 自动化操作 APP 的基本流程(Android平台):

  1. 启动 Appium Server
  2. adb 连接设备(真机或模拟器)
  3. uiautomatorviewer 连接设备,定位元素信息
  4. 使用appium-python-client库,编写客户端脚本
  5. 运行客户端脚本,启动app并操作相应的元素
  6. 结果断言,判断是否执行成功
  7. 退出程序

二、操作步骤

1. 启动 Appium Server

终端命令行中,执行命令:appium ,启动Appium Server:
编写第一个APP自动化脚本 appium_helloworld ,将脚本跑起来_第1张图片

看到上图中的内容,表示appium server已启动成功。如果启动失败,请参考 Appium Server 启动失败常见原因及解决办法。

2. 启动Android模拟器,并使用 adb 连接

启动夜神模拟器,用于定位元素;启动MuMu模拟器,用于执行脚本:

为什么要启动两个模拟器,请参考:Android模拟器的安装和adb连接

编写第一个APP自动化脚本 appium_helloworld ,将脚本跑起来_第2张图片

连接夜神模拟器(启动之后,会自动连接):adb connect 127.0.0.1:62001
连接MuMu模拟器:adb connect 127.0.0.1:7555

编写第一个APP自动化脚本 appium_helloworld ,将脚本跑起来_第3张图片

3. 下载安装测试 apk

下载测试 apk 安装包:

链接:https://pan.baidu.com/s/1Wk9Wn5n9EDVlgFSTixYWrA?pwd=6ng5
提取码:6ng5

拖拽至模拟器桌面即可安装:
编写第一个APP自动化脚本 appium_helloworld ,将脚本跑起来_第4张图片

5. 启动 uiautomatorviewer ,获取元素的定位信息

请参考 使用 uiautomatorviewer 获取元素的定位信息

编写第一个APP自动化脚本 appium_helloworld ,将脚本跑起来_第5张图片

5. 编写 python 自动化脚本

atme/demos/demo_appium_helloworld.py

import time

from appium import webdriver
from appium.options.android import UiAutomator2Options
from appium.webdriver.common.appiumby import AppiumBy

# Appium 服务器的地址
appium_server_url = 'http://localhost:4723'

# 配置设备参数, 告知 Appium Server 设备的运行平台、使用什么自动化引擎、操作哪台设备、操作哪个应用等
capabilities = {
    "platformName": "Android",  # 设备平台为 Android
    "automationName": "uiautomator2",  # 使用 UiAutomator2 作为自动化引擎
    "deviceName": "127.0.0.1:7555",  # 设备名称或连接地址(MuMu模拟器的udid)
    "udid": "127.0.0.1:7555",  # 设备的唯一标识符(MuMu模拟器的udid)
    "appPackage": "io.appium.android.apis",  # 待测试应用的包名
    "appActivity": ".ApiDemos",  # 待测试应用的启动活动页
}

# 创建 UiAutomator2Options 对象并加载设备配置参数
options = UiAutomator2Options().load_capabilities(capabilities)

# 创建 Appium WebDriver 对象,携带参数信息,连接至 Appium 服务器
driver = webdriver.Remote(appium_server_url, options=options)

# 查找元素,查找方式为 XPATH,目标元素的属性值为 //*[@text="Accessibility"]
element = driver.find_element(by=AppiumBy.XPATH, value='//*[@text="Accessibility"]')

# 点击查找到的元素
element.click()

# 等待 2 秒,用于等待跳转之后的页面元素加载
time.sleep(2)

# 判断跳转之后,断言目标元素是否出现
expected_element = driver.find_element(by=AppiumBy.XPATH, value='//*[@text="Accessibility Node Provider"]')
assert expected_element.text == "Accessibility Node Provider"
print('=========断言成功===========')

# 等待 3 秒,用于观察页面变化
time.sleep(3)

# 关闭并退出 WebDriver
driver.quit()

6. 运行自动化脚本

点击右键,点击 Run demo_appium_helloworld.py,运行脚本:

编写第一个APP自动化脚本 appium_helloworld ,将脚本跑起来_第6张图片

7. 查看运行结果

控制台输出结果:

编写第一个APP自动化脚本 appium_helloworld ,将脚本跑起来_第7张图片

模拟器成功点击元素,并跳转至相应页面:

编写第一个APP自动化脚本 appium_helloworld ,将脚本跑起来_第8张图片

你可能感兴趣的:(python,自动化,appium)