1
【任务 8-3】基于 Python 3+Appium 使用 MuMu 模拟器测试
微信的信息发送
【任务要求】
基于 Python 3+Appium 编写测试程序,在 MuMu 模拟器中对微信的信息发送功能进行
测试。
【任务实施】
(1)下载与安装 MuMu 模拟器
下载 MuMu 模拟器的网址为
MuMu 模拟器下载完成后,直接双击该可执行文件即可启动安装程序,然后按照安装
向导的提示信息一步一步进行操作,完成 MuMu 模拟器的安装。
(2)在 MuMu 模拟器中安装 App
启动 MuMu 模拟器,在该模拟器环境安装微信程序。
(3)通过 Android 的 adb 连接虚拟机
在命令行窗口中执行以下命令。
adb connect :7555
通过 adb 连接上虚拟机。
执行了上面连接模拟器的命令后,我们可以在命令行窗口中输入命令“adb devices”查看
当前连接的虚拟机。
(4)启动 Appium 服务
双击桌面上的“Appium Server GUI”图标,成功启动 Appium Server 后,会出现 Appium
的登录界面,直接单击“Start Server”按钮启动即可启动 Appium。
(5)启动 MuMu 模拟器
在 Windows 系统桌面上双击“mumu 模拟器”的快捷图标,即可启动 MuMu 模拟器。
(6)使用 PyCharm 编辑器编写 Python 程序在 MuMu 模拟器中实现微信程序的启动
在项目 AppiumTestTask03 中创建一个新的 Python 程序文件,将其命名为
“”,在该文件中编写以下代码。
from appium import webdriver
import time
# Appium 服务监听地址
server='http://localhost:4723/wd/hub'
# App 启动参数
desired_caps={
"platformName": "Android",
"udid": "emulator-5554",
"deviceName": "deviceName",
"appPackage": "",
"appActivity": ".",
软件测试任务驱动教程
2
'noReset': True, # 是否保留 session 信息,可以避免重新登录
'unicodeKeyboard': True, # 使用 unicodeKeyboard 的编码方式来发送字符串
'resetKeyboard': True, # 执行完程序恢复原来输入法
}
driver = (':4723/wd/hub', desired_caps)
执行上述代码之后,如果发现 MuMu 模拟器中的微信已经启动了,就说明基本环境已
经调通了;如果执行代码后发现调不到 MuMu 模拟器中的微信,先在命令行窗口中执行一
下以下命令。
adb connect :7555 命令
然后再运行程序即可。
(7)编写 Python 程序,在 MuMu 模拟器中实现利用微信程序发送消息
在模拟器中发送消息的基本流程:打开微信→单击搜索的放大镜→在搜索框输入好友
昵称→单击搜索到的好友→发送文字+表情,代码实现如下。
print('单击微信搜索框')
_element_by_id(':id/f8y').click()
(10)
print('在搜索框输入搜索信息')
_element_by_id(':id/bhn').send_keys('安好')
(3)
print('单击搜索到的好友')
_element_by_id(':id/tm').click()
(3)
# 输入文字
_element_by_id(':id/al_').send_keys('安好:节日快乐!')
(3)
# 输入表情
_element_by_id(':id/anz').click()
(3)
_element_by_id(':id/rv').click()
# 单击“发送”按钮发送信息
_element_by_id(':id/anv').click()
# 暂停一下
input('Success')
# 退出程序
()
在上述代码中,我们通过 _element_by_id(':id/xx')来获取微信
上的元素,如果有重复的,则可以使用 _elements_by_id(':id/xx')[n]
来获取,例如,如果每个选项的值都是 :id/gam,此时代码中我们就是用
_elements_by_id(':id/gam')[1]来定位元素。
通过 send_keys('xx')实现信息的输入,通过 click()实现单击操作。
(8)运行 Python 程序文件 实现 App 自动化测试
在 PyCharm 编辑器主窗口运行程序文件 ,等待一会后,可以看出 MuMu
模拟器中的微信的信息发送成功了。