开篇语
测试工作离不开测试数据,谈到测试数据一定会想到黑盒测试方法
今天以QQ的登录框为例子,浅谈一下python如何进行自动化测试的数据导入
内容过多,阅读时稍微花点耐心
定位QQ登录框
首先看一下QQ的登录框长什么样子
QQ登录框.jpg
需要定位的元素包含,账号输入框、密码输入框、登录按钮
按照之前的文章中提到的思路,对其进行逐一定位
定位元素yaml文件
login:
- 请输入QQ号码或手机或邮箱 # 账号框
- com.tencent.mobileqq:id/password # 密码框
- com.tencent.mobileqq:id/login # 登录按钮
- com.tencent.mobileqq:id/dialogRightBtn # 失败确认按钮
- com.tencent.mobileqq:id/dialogTitle # 失败提示文字
登录失败的图片
登录失败.png
账号密码任何一个输入错误都会导致登录失败,失败之后若要继续登录则必须点击确认按钮,下图为登录按钮的元素定位
失败文字.png
获取失败提示信息作为断言中的实际结果
不理解断言的朋友可以阅读一下篇文章QQ测试项目之四
验证登录的测试用例代码
from appium import webdriver
from time import sleep
import yaml
def read_yaml():
with open(file='定位元素.yaml', encoding='utf-8') as fb:
return yaml.load(fb)
el = read_yaml()['login']
class TestKe(object):
def __init__(self):
self.d = {
"device": "android",
"platformName": "Android",
"platformVersion": "9",
"deviceName": "46HDU19314003325",
"appPackage": "com.tencent.mobileqq",
"appActivity": ".activity.SplashActivity",
"noReset": "true"
}
self.dr = webdriver.Remote("http://127.0.0.1:4723/wd/hub", desired_capabilities=self.d)
sleep(2.5)
def login(self):
# 如果账号已经登录过,则执行下面这行代码
self.dr.find_element_by_accessibility_id(el[0]).clear()
# 向QQ账号输入框输入QQ账号
self.dr.find_element_by_accessibility_id(el[0]).send_keys('QQ账号')
# 点击密码输入框
self.dr.find_element_by_id(el[1]).click()
# 向QQ密码输入框输入QQ密码
self.dr.find_element_by_id(el[1]).send_keys('QQ密码')
# 点击登录图标
self.dr.find_element_by_id(el[2]).click()
# 给出两秒休息时间,查看登录后的效果
sleep(2.0)
def close(self):
# 关闭手机与appium服务器建立的连接
self.dr.quit()
"""
若,账号密码有任意一个错误,则登录失败
若,账号密码均正确,则登录成功
"""
if __name__ == '__main__':
t = TestKe()
t.login()
t.close()
小节后语
剩下的工作就是分析登录框需要输入的测试数据了,一般会用到
等价类划分法
,边界值法
。
下篇聊一下测试准备与加载
网友评论