python之数据驱动ddt操作(方法一)

下载ddt并安装

Pip install ddt

或者官网下载安装

http://ddt.readthedocs.io/en/latest/

https://github.com/txels/ddt

DDT的使用

DDT包含类的装饰器ddt和两个方法装饰器data(直接输入测试数据),file_data(可以从json或者yaml中获取测试数据)

只有yaml和yml结尾的文件以yaml形式上传,其他情况下默认为json

通常情况下,data中的数据按照一个参数传递给测试用例,如果data中含有多个数据,以元组,列表,字典等数据,需要自行在脚本中对数据进行分解或者使用unpack分解数据

@data(a,b)

那么a和b各运行一次用例

@data([a,d],[c,d])

如果没有unpack,那么[a,b]当成一个参数传入用例运行

如果有unpack,那么[a,b]被分解开,按照用例中的两个参数传递

@file_data(filename)

对于json的文件,每一个json元素按照一个用例运行,可以依照python分解元组,列表或者字典的方式分解传入

from ddt import ddt,unpack,datafrom selenium import webdriverfrom selenium.webdriver.common.by import Byimport unittest,time

#数据驱动模型# ddt excel+ddt yaml+ddt txt+ddt

#@unpack 表示用来解压元组到多个参数#应用:ui级别的自动化测试中可以实现编写一个测试用例实现多个不同的测试点验证#例如在163邮箱登录页面中,存在多种测试情况,如用户名和密码为空,用户名为空密码不为空,密码为空用户名不为空返回的错误提示信息

@ddtclass Mail_163(unittest.TestCase):    def setUp(self) -> None:        self.driver = webdriver.Chrome()        self.driver.maximize_window()        self.driver.implicitly_wait(5)        self.driver.get("https://mail.163.com/")

    def tearDown(self) -> None:        self.driver.quit()

    @data((‘‘,‘‘,‘请输入帐号‘),(‘admin‘,‘‘,‘请输入密码‘),(‘‘,‘admin‘,‘请输入帐号‘),(‘^^^‘,‘‘,‘帐号格式错误‘))    @unpack    def test_login_163(self,username,password,result):        #验证登录163邮箱N中情况        self.driver.find_element(By.ID,"switchAccountLogin").click()        iframe = self.driver.find_element(By.TAG_NAME,‘iframe‘)        self.driver.switch_to_frame(iframe)        self.driver.find_element(By.NAME,‘email‘).send_keys(username)        self.driver.find_element(By.NAME,‘password‘).send_keys(password)        time.sleep(1)        self.driver.find_element(By.ID,"dologin").click()        divtext = self.driver.find_element(By.CSS_SELECTOR,‘div.ferrorhead‘).text        print("错误信息:",divtext)        self.assertEqual(divtext,result)        self.driver.switch_to_default_content()

if __name__ == ‘__main__‘:    unittest.main(verbosity=2)

原文地址:https://www.cnblogs.com/Teachertao/p/11706444.html

时间: 2024-10-09 13:33:21

python之数据驱动ddt操作(方法一)的相关文章

python之数据驱动ddt操作(方法四)

from ddt import ddt,data,unpackfrom selenium import webdriverfrom selenium.webdriver.common.by import Byimport time,unittest """测试类前加修饰@ddt.ddtcase前加修饰@ddt.data() 相同的测试用例@ddt.unpack 分解data的参数""" @ddtclass BaiduSearch(unittest

python之数据驱动ddt操作(方法三)

import unittestfrom selenium import webdriverfrom selenium.webdriver.common.by import Byimport unittest,timefrom parameterized import parameterized #安装 : pip install parameterized #数据驱动模型# ddt excel+ddt yaml+ddt txt+ddt #@unpack 表示用来解压元组到多个参数#应用:ui级别

python之数据驱动ddt操作(方法二)

import unittestfrom ddt import ddt,unpack,datafrom selenium import webdriverfrom selenium.webdriver.common.by import Byimport unittest,time #数据驱动模型# ddt excel+ddt yaml+ddt txt+ddt #@unpack 表示用来解压元组到多个参数#应用:ui级别的自动化测试中可以实现编写一个测试用例实现多个不同的测试点验证#例如在163邮箱

Python之数据驱动ddt

一.背景 一般进行接口测试时,每个接口的传参都不止一种情况,一般会考虑正向.逆向等多种组合,所以在测试一个接口时,通常会编写多条case,而这些除了传参不同外,并没有什么区别.这个时候就可以利用ddt来管理测试数据,提高代码复用率. 二.ddt安装 ddt是python的第三方库,安装可以进行命令安装,或者通过pycharm界面中settings进行安装. 三.ddt模块组成 1.ddt模块包含类的装饰器ddt和两个方法装饰器data ddt.ddt:装饰类,也就是继承TestCase的类. d

012 python接口 数据驱动ddt

''' 时间:2018/11/05 目录: 一: 安装ddt 二: 禅道登录 1 工程结构 2 unittest文件 3 实现功能文件 4 执行结果 三: 使用excel 1 安装xlrd 2 准备测试数据 四: 禅道登录 1 工程结构 2 unittest文件 3 实现功能文件 4 read_excel.py 5 执行结果 ''' 一: 安装ddt 1 : 运行输入"cmd",进入Dos窗口. 2 : 输入"pip install ddt"(安装ddt模块). 1

python之数据驱动Txt操作

一.新建数据Mail163.txt文本 二.Txt_Mail163.py脚本如下: import unittestfrom selenium import webdriverfrom selenium.webdriver.common.by import Byimport time #未封装的读取文本信息方法# with open('Mail163.txt', 'r', encoding='utf-8') as fp:# file = fp.readlines()# aa = ''.join(f

python之数据驱动Excel操作(方法一)

一.Mail163.xlsx数据如下: 二.Mail163.py脚本如下 import xlrdimport unittestfrom selenium import webdriverfrom selenium.webdriver.common.by import Byimport time #安装:pip install xlrddef readExcel(nrow): '''读取Excel数据''' table = xlrd.open_workbook('Mail163.xlsx','r'

python webdriver 测试框架-数据驱动DDT的例子

先在cmd环境 运行 pip install ddt 安装数据驱动ddt模块  脚本: #encoding=utf-8 from selenium import webdriver import unittest,time import logging,traceback import ddt from selenium.common.exceptions import NoSuchElementException #初始化日志对象 logging.basicConfig( #日志级别 leve

Python读写excel表格的方法二

目的:实现用python的另一种方法做excel的读取.新增操作. 环境:ubuntu 16.04  Python 3.5.2 情景:之前介绍了一种操作excel文件的方法(私链),现在使用另一种方法读写excel文件,一次性读出或写入,读写也很方便,读出为有序字典,像二维数组,需要用到3个第三方模块,pyexcel-io, pyexcel-xls, xlrd,主要导入pyexcel-xls和collections,pyexcel-xls基于xlrd和pyexcel-io,所以支持xls和xls