zoukankan      html  css  js  c++  java
  • Python自动化测试框架——数据驱动(从代码中读取)

    今天小编要介绍的是数据驱动最简单和最常用的一种方法,由于只是介绍方法,代码操作后的美观程度略有缺陷,介意者可以自行改动

    还是以163邮箱登录为例:

    设计一个存放数据的类,这个类的参数是我们需要修改的数据,然后再类外传入数据

    class Data(object):
        def __init__(self,userName='',userPsw=''):
            self.userName=userName
            self.userPsw=userPsw
    
    u1=Data(userName="xxx1",userPsw="xxx1")
    u2=Data(userName="xxx2",userPsw="xxx2")

    设计登录方法,这个方法在之前小编已经介绍过,本次仅对其中的代码稍作更改

    #给login方法增加一个参数,用于接受用户的登录信息
    def login(user):
        #定位
        name = driver.find_element_by_id("op_email3_username")
        password = driver.find_element_by_class_name("op_email3_password")
    #清空,用clear清空输入框,因为sendkeys方法是在输入框中添加内容,若输入框已有内容,则会在原有内容的基础上加上新增内容 name.clear() password.clear()
    ''' 传参 调用user存储的信息 ''' name.send_keys(user.userName) password.send_keys(user.userPsw) #登录 login = driver.find_element_by_css_selector(".c-btn") login.click() #切换回主窗口 driver.switch_to.window(driver.current_window_handle)

    最后,调用login方法,实现数据驱动自动化测试的运行。

    login(u1)
    login(u2)

    在代码中使用数据驱动,可以实现数据和方法的分离,在增加和修改数据的时候,只需要改变用户信息(u1=Data(userName="xxx1",userPsw="xxx1"))部分,和最后的login调用即可,可增加测试脚本的稳定性和可扩展性。

     源码奉上,敬请指正:

    from selenium import webdriver
    import time,unittest
    # 打开百度
    driver = webdriver.Firefox()
    driver.implicitly_wait(5)
    driver.get("https://www.baidu.com/")
    driver.find_element_by_id("kw").send_keys("163邮箱登录")
    driver.find_element_by_id("su").click()
    
    class Data(object):
        def __init__(self,userName='',userPsw=''):
            self.userName=userName
            self.userPsw=userPsw
    
    u1=Data(userName="13671086620",userPsw="wsz768950")
    u2=Data(userName="xxx",userPsw="xxx")
    
    #给login方法增加一个参数,用于接受用户的登录信息
    def login(user):
        #定位
        name = driver.find_element_by_id("op_email3_username")
        password = driver.find_element_by_class_name("op_email3_password")
        #清空,用clear清空输入框,因为sendkeys方法是在输入框中添加内容,若输入框已有内容,则会在原有内容的基础上加上新增内容
        name.clear()
        password.clear()
        '''
        传参
        调用user存储的信息
        '''
        name.send_keys(user.userName)
        password.send_keys(user.userPsw)
        #登录
        login = driver.find_element_by_css_selector(".c-btn")
        login.click()
        #切换回主窗口
        driver.switch_to.window(driver.current_window_handle)
    
    
    login(u1)
    time.sleep(5)
    login(u2)
    
    time.sleep(10)
    driver.quit()
    数据驱动
  • 相关阅读:
    Restful 的概念预览
    Bootstrap中alerts的用法
    Bootstrap HTML编码规范总结
    Bootstrap中img-circle glyphicon及js引入加载更快的存放位置
    PI数据库
    memcached
    Bootstrap中样式Jumbotron,row, table的实例应用
    js事件监听
    jquery显示隐藏操作
    HDU4521+线段树+dp
  • 原文地址:https://www.cnblogs.com/wulisz/p/8335071.html
Copyright © 2011-2022 走看看