基于python实现微信收红包自动化测试脚本(测试用例)

1. 简介

微信红包是现今非常流行的一个功能,但是手动领取红包会很麻烦,因此有必要对它进行自动化测试。本文介绍基于Python实现微信收红包自动化测试脚本的测试用例。

2. 环境搭建

2.1 安装Appium

Appium是一种开源工具,用于在iOS和Android平台上进行原生应用的自动化测试。通过它,我们可以使用Python编写自动化测试脚本。在开始编写之前,必须确保已安装Appium环境。

Appium的安装可以在终端中使用以下命令完成:

npm install -g appium

2.2 安装Appium Python客户端

Appium Python客户端是用于Appium的Python接口。通过它,我们可以使用Python编写自动化测试脚本。

安装Appium Python客户端可以在终端中使用以下命令完成:

pip install Appium-Python-Client

2.3 安装Python模块

我们使用selenium、requests和unittest模块来编写自动化测试脚本。以下是三个模块的安装命令:

pip install selenium

pip install requests

pip install unittest

3. 测试脚本编写

编写测试脚本需要显式地打开微信APP并登录,访问“微信支付”界面,点击“我的钱包”按钮、打开“红包”页面,然后领取所需红包。如果遇到手气不好的情况,可以通过该脚本实现一键抢红包。

3.1 登录微信

在测试脚本中,首先需要启动微信APP并完成登录操作。利用selenium和Appium的WebDriver()函数可以打开微信并定位到登录框中输入用户名和密码的元素。

接下来,需要定位“登录”按钮,并使用click()方法单击该按钮以完成登录。

下面是登录微信的代码:

from appium import webdriver

import unittest

import time

class TestLogin(unittest.TestCase):

def setUp(self):

desired_caps = {}

desired_caps['platformName'] = 'Android'

desired_caps['platformVersion'] = '6.0'

desired_caps['deviceName'] = 'emulator-5554'

desired_caps['appPackage'] = 'com.tencent.mm'

desired_caps['appActivity'] = '.ui.LauncherUI'

desired_caps['unicodeKeyboard'] = True

desired_caps['resetKeyboard'] = True

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

time.sleep(5)

def tearDown(self):

self.driver.quit()

def test_login(self):

self.driver.find_element_by_id('com.tencent.mm:id/d75').click() # 点击登录

self.driver.find_element_by_id('com.tencent.mm:id/hz').send_keys('your_wechat_name') # 输入微信号

self.driver.find_element_by_id('com.tencent.mm:id/bv3').send_keys('your_wechat_password') # 输入密码

self.driver.find_element_by_id('com.tencent.mm:id/d7f').click() # 点击登录

3.2 访问“微信支付”界面

通过search_box_locator()函数可以实现跳转到“微信支付”界面。

下面是实现访问“微信支付”界面的代码:

def search_box_locator(self):

self.driver.find_element_by_id('com.tencent.mm:id/al').click() # 进入搜索框

self.driver.find_element_by_id('com.tencent.mm:id/kh').send_keys('微信支付') # 在搜索框中输入“微信支付”

time.sleep(3)

self.driver.find_element_by_id('com.tencent.mm:id/c_').click() # 进入“微信支付”界面

time.sleep(5)

3.3 进入“我的钱包”界面

通过访问“微信支付”界面,可以找到“我的钱包”按钮。单击此按钮可以进入“我的钱包”界面。

下面是进入“我的钱包”界面的代码:

def money_box_locator(self):

self.driver.find_element_by_id('com.tencent.mm:id/rc').click() # 进入“我的钱包”界面

time.sleep(5)

3.4 进入“红包”页面

在“我的钱包”界面中,单击“红包”按钮可以进入“红包”页面。

下面是进入“红包”页面的代码:

def red_packet_locator(self):

self.driver.find_element_by_android_uiautomator('text("红包")').click() # 进入“红包”界面

time.sleep(5)

3.5 领取红包

在“红包”页面中可以看到可领取的红包。我们使用webdriver的find_elements_by_android_uiautomator()方法来获取所有可领取的红包元素,然后按顺序依次领取。

下面是领取红包的代码:

def snatch_red_packet(self):

while True:

try:

red_packet_list = self.driver.find_elements_by_android_uiautomator('text("微信红包")')

if len(red_packet_list) == 0:

break

else:

red_packet_list[0].click() # 点击红包

time.sleep(2)

if self.driver.find_element_by_id('com.tencent.mm:id/aum').text == '已过期':

self.driver.back() # 如果红包已过期,则返回

elif self.driver.find_element_by_id('com.tencent.mm:id/ckj').text == '查看领取详情': # 如果红包已被领取,则返回

self.driver.back()

else: # 正常领取红包

self.driver.find_element_by_id('com.tencent.mm:id/ckj').click() # 领取红包

time.sleep(1)

self.driver.back()

except:

break

4. 测试用例执行

当测试脚本编写完毕后,可以通过执行命令来执行测试用例。

以下是执行测试用例的代码:

if __name__ == '__main__':

suite = unittest.TestLoader().loadTestsFromTestCase(TestLogin)

unittest.TextTestRunner(verbosity=2).run(suite)

TestLogin().search_box_locator()

TestLogin().money_box_locator()

TestLogin().red_packet_locator()

TestLogin().snatch_red_packet()

5. 总结

本文介绍了基于Python实现微信收红包自动化测试脚本的测试用例。测试脚本的主要功能是登录微信APP、访问“我的钱包”界面、进入“红包”页面,然后自动领取红包。通过该脚本,可以减轻手动领取红包所带来的麻烦。

后端开发标签