这是我参与 8 月更文挑战的第 24 天,活动详情查看: 8月更文挑战
1 实验目的
使用AirTest对安卓端的APP做测试,本次实验针对的是微信APP。主要测试的部分有:1. 微信的循环登陆及退出;
2 实验过程及问题
(1)功能:
- 用
AccountPassword.txt
来存储微信账号密码,在脚本中读取账号密码。通过airtest的一系统操作实现将文本中的账号密码一次读取登陆退出。
(2)测试用例:
-
打开微信
-
登录
- 点击”更多”–>点击“登录其他账号”–>点击“用微信号/QQ号/邮箱登录”–>点击“请填写微信号/QQ号/邮箱”–>输入微信号–>点击“请填写密码”–>输入密码–>点击“登录“
-
退出登录:
- 点击“我”—>点击”设置“—>点击”退出登录“—>点击”退出”
循环登陆和退出登录
(3)脚本:
# -*- encoding=utf8 -*-
__author__ = "Administrator"
from airtest.core.api import *
auto_setup(__file__)
weixin='com.tencent.mm' #微信的包名
#打印出设备所有的app信息
d=device()
all_device=d.list_app() #获取手机上安装的所有APP
print(all_device)
start_app(weixin) #打开微信
data_list=[] #初始化列表,用来存储账号密码
with open("D:\AirTest\AirtestIDE-win-1.2.6\AirtestIDE\柳玥\AccountPassword.txt",encoding="utf-8") as f: # 打开存储账号密码的文件
line=f.readline() #读取每一行
while line:
data_list.append([str(line.split(",")[0]),str(line.split(",")[1])]) #将账号和密码分隔出,存储在列表中
line=f.readline() #继续读取下一行
lenth=len(data_list) #获取列表的长度即账号个数
#循环实现每个账号的登录及退出
for i in range(lenth):
touch(Template(r"tpl1608962598683.png", threshold=0.8, record_pos=(0.198, 0.829), resolution=(1080, 1920))) #点击更多
sleep(2.0) #暂停2秒钟
touch(Template(r"tpl1608952539463.png", threshold=0.8, record_pos=(0.006, 0.375), resolution=(1080, 1920))) #点击登录其他账号
sleep(2.0) #暂停2秒钟
touch(Template(r"tpl1608952552826.png", threshold=0.8, record_pos=(-0.216, -0.085), resolution=(1080, 1920))) #点击用微信号登录
touch(Template(r"tpl1608952574389.png", threshold=0.8, record_pos=(0.045, -0.388), resolution=(1080, 1920))) #获取输入账号框焦点
accountstr=data_list[i][0] #从列表中取出账号
print(accountstr)
text(str(accountstr)) #输入账号
touch(Template(r"tpl1608952675522.png", threshold=0.8, record_pos=(-0.086, -0.254), resolution=(1080, 1920))) #获取输入密码框焦点
password=data_list[0][1][0:-1] #从列表中正确获取密码,截取掉最后一位
print(password)
text(str(password)) #输入密码 (默认点击enter)
sleep(5.0) #登录成功,停止五秒钟
print("登录成功,暂停五秒钟后,准备退出!!!")
#退出登录
touch(Template(r"tpl1608972155552.png", threshold=0.8, record_pos=(0.374, 0.816), resolution=(1080, 1920))) #点击图标我
touch(Template(r"tpl1608972235902.png", record_pos=(-0.32, 0.519), resolution=(1080, 1920))) #点击设置图标
swipe((500,800), vector=[0.0247, -0.2584]) #滑动,找到退出图标
touch(Template(r"tpl1608972381879.png", threshold=0.8, record_pos=(0.004, 0.738), resolution=(1080, 1920))) #点击退出图标
sleep(2.0) #暂停2秒钟
touch(Template(r"tpl1608972398506.png", record_pos=(-0.001, 0.521), resolution=(1080, 1920))) #点击退出登录
sleep(2.0) #暂停2秒钟
touch(Template(r"tpl1608972411016.png", record_pos=(0.204, 0.173), resolution=(1080, 1920))) #点击退出,确定退出登录
sleep(5.0)
复制代码
(4)运行结果:
能依次读取AccountPassword.txt中的账号密码,循环登陆退出。
(5)实验过程中遇到的问题:
- 用文件存储账号密码,由于格式是一行存储一个账户密码,在读取密码会比密码多出一位,所以在获取相应的密码时需要截取最后一个字符
- 连续的touch操作,可能会产生错误,最后在touch后sleep几秒钟
- 图像识别不准确,可以修改图片的匹配度,增大匹配度
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END