返回

一个Python + Appium自动化操作微信攻略

见解分享

Appium + Python 自动化操作微信App的入门教程

前言

Python 作为一门简单而强大的编程语言,已被广泛应用于各种自动化测试领域。而 Appium,一个基于 Python 的开源自动化测试工具,则能够兼容 iOS 和 Android 系统,并支持 web、原生和混合应用的自动化测试。更重要的是,Appium 与 Selenium WebDriver 接口兼容,因此使用者能够轻松上手。

第一章:Appium基础篇

1.1 Appium + Python 的基本原理

Appium + Python 的自动化测试原理主要依靠模拟用户行为,并在设备上执行指定的测试操作。它遵循以下过程:

  • 使用 Python 脚本控制 Appium 服务端(提供 JSON/HTTP 接口),并将 Python 脚本运行在主机上。
  • 通过 Appium 客户端连接到待测设备,通常是手机或平板电脑。
  • Appium 服务器通过客户端(例如,USB、WiFi 或 iOS 的 WebDriverAgent)与待测设备上的应用程序进行交互。
  • Appium 服务器接收 Python 脚本发送的自动化测试命令,并将命令转发给设备上的 Appium 客户端。
  • Appium 客户端执行自动化测试命令并返回执行结果给 Appium 服务器,再由服务器转发给 Python 脚本。

1.2 安装配置

1.2.1 Python 环境
  • 安装 Python,推荐使用 Python 3.x。
  • 安装 pip,Python 的包管理工具。
1.2.2 Appium 安装
  • 在 Python 环境中安装 Appium:pip install appium
1.2.3 Appium 配置
  • 启动 Appium 服务器:appium
  • 在 Appium 服务器中,选择相应的设备并连接。
  • 确认手机打开了开发者模式,USB连接到PC端。

第二章:编写 Python + Appium 自动化脚本

2.1 Python + Appium 测试框架

一般来说,Python + Appium自动化测试框架主要包含以下几个步骤:

  1. 导入必要的库。
  2. 创建一个 Appium 驱动器对象。
  3. 定位并查找 App 元素。
  4. 对 App 元素执行操作。
  5. 断言检查测试结果。

2.2 代码实战

2.2.1 启动 App
from appium import webdriver

desired_caps = {
    'platformName': 'Android',
    'deviceName': 'Android Emulator',
    'appPackage': 'com.tencent.mm',
    'appActivity': 'com.tencent.mm.ui.LauncherUI',
}

driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)
2.2.2 查找元素
element = driver.find_element_by_id('com.tencent.mm:id/username')
2.2.3 输入数据
element.send_keys('username')
2.2.4 点击元素
element.click()
2.2.5 断言检查
assert element.is_displayed()

2.3 测试脚本示例

2.3.1 登录微信
from appium import webdriver

desired_caps = {
    'platformName': 'Android',
    'deviceName': 'Android Emulator',
    'appPackage': 'com.tencent.mm',
    'appActivity': 'com.tencent.mm.ui.LauncherUI',
}

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

# 定位并输入用户名
username_element = driver.find_element_by_id('com.tencent.mm:id/username')
username_element.send_keys('username')

# 定位并输入密码
password_element = driver.find_element_by_id('com.tencent.mm:id/password')
password_element.send_keys('password')

# 点击登录按钮
login_button = driver.find_element_by_id('com.tencent.mm:id/login_button')
login_button.click()

# 断言是否登录成功
assert driver.find_element_by_id('com.tencent.mm:id/main_tab_container').is_displayed()

第三章:Appium 微信应用实践

3.1 发送消息

from appium import webdriver

desired_caps = {
    'platformName': 'Android',
    'deviceName': 'Android Emulator',
    'appPackage': 'com.tencent.mm',
    'appActivity': 'com.tencent.mm.ui.LauncherUI',
}

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

# 定位聊天列表中的好友
friend_element = driver.find_element_by_name('Friend Name')
friend_element.click()

# 定位并输入消息
message_element = driver.find_element_by_id('com.tencent.mm:id/edit_text')
message_element.send_keys('Hello, Appium!')

# 点击发送按钮
send_button = driver.find_element_by_id('com.tencent.mm:id/send_button')
send_button.click()

# 断言消息是否发送成功
assert driver.find_element_by_name('Hello, Appium!').is_displayed()

3.2 查看消息

from appium import webdriver

desired_caps = {
    'platformName': 'Android',
    'deviceName': 'Android Emulator',
    'appPackage': 'com.tencent.mm',
    'appActivity': 'com.tencent.mm.ui.LauncherUI',
}

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

# 定位聊天列表中的好友
friend_element = driver.find_element_by_name('Friend Name')
friend_element.click()

# 获取消息列表
messages = driver.find_elements_by_class_name('android.widget.TextView')

# 打印消息内容
for message in messages:
    print(message.text)

结语

Python 与 Appium 是自动化测试中的强强联合,深受广大开发者的喜爱。通过本文的学习,您已经掌握了 Python + Appium 自动化操作微信 App 的入门知识,包括 Appium 的基本原理、安装配置、代码编写技巧等。当然,自动化测试的学习是一个循序渐进的过程,实践是最好的老师。如果您想进一步深入学习,可以查看更多 Appium 相关的教程和实践项目。