QQ测试项目之五数据导入---上

2019-08-02  本文已影响0人  流鼻涕的绿恐龙

开篇语

测试工作离不开测试数据,谈到测试数据一定会想到黑盒测试方法
今天以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()

小节后语

剩下的工作就是分析登录框需要输入的测试数据了,一般会用到等价类划分法边界值法
下篇聊一下测试准备与加载

上一篇下一篇

猜你喜欢

热点阅读