下载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,data
from selenium import webdriver
from selenium.webdriver.common.by import By
import unittest,time

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

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

@ddt
class 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)

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

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

    from ddt import ddt,data,unpackfrom selenium import webdriverfrom selenium.webdriver.common.by impor ...

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

    import unittestfrom selenium import webdriverfrom selenium.webdriver.common.by import Byimport unitt ...

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

    import unittestfrom ddt import ddt,unpack,datafrom selenium import webdriverfrom selenium.webdriver. ...

  4. python之数据驱动ddt

    下载ddt并安装 Pip install ddt 或者官网下载安装 http://ddt.readthedocs.io/en/latest/ https://github.com/txels/ddt ...

  5. python接口测试-数据驱动-DDT

    DDT是python的第三方库,全名称为:Data-Driven/Decorated Tests. ddt安装 通过pip安装ddt模块,安装Python后,Python自带pip功能包 切换到Pyt ...

  6. python之数据驱动Txt操作

    一.新建数据Mail163.txt文本 二.Txt_Mail163.py脚本如下: import unittestfrom selenium import webdriverfrom selenium ...

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

    一.Mail163.xlsx数据如下: 二.Mail163.py脚本如下 import xlrdimport unittestfrom selenium import webdriverfrom se ...

  8. python之数据驱动yaml操作

    Mail163.yaml配置文件如下: login_data: url : 'https://mail.163.com/'case1: user : '' passwd : '' errorText ...

  9. Python+Selenium+Unittest+Ddt+HTMLReport分布式数据驱动自动化测试框架结构

    1.Business:公共业务模块,如登录模块,可以把登录模块进行封装供调用 ------login_business.py from Page_Object.Common_Page.login_pa ...

随机推荐

  1. PyTorch中的MIT ADE20K数据集的语义分割

    PyTorch中的MIT ADE20K数据集的语义分割 代码地址:https://github.com/CSAILVision/semantic-segmentation-pytorch Semant ...

  2. A,B,C,D分别为不同的整数,满足以下乘法公式,求A,B,C,D的值

    问题:A,B,C,D分别为不同的整数,满足以下乘法公式,求A,B,C,D的值 解题思路: 由题意可知A,B,C,D为不同的整数,则A!=B,A!=C,A!=D,B!=C,B!=D,C!=D 再由给出公 ...

  3. C语言编译器开发之旅(二):解析器

    本节是我们这个编译器系列的第二节,进入语法分析与语义分析的部分解.在本节我们会编写一个简单的解析器. 解析器的主要功能分为两个部分: 识别输入的语法元素生成AST(Abstract Syntax Tr ...

  4. Redis系列(四):地理信息

    除了Bitmaps和HyperLogLog,Redis还提供了关于地理空间的相关操作,主要是经纬度.Redis提供的地理信息操作是有误差的,最大误差可能会达到5%.Redis提供的Geo的操作如下: ...

  5. MySQL面试题汇总

    事务是什么? 一系列操作,要么全部完成,要么一个都不做 事务的ACID特性 原子性:一系列操作要么都执行,要么都不执行 一致性:事务执行前后数据完整性不变,如转账前后总金额不变 隔离性:多个事务并发访 ...

  6. pycharm在虚拟机跑深度学习Mac

    1.在PyCharm里配置部署环境 打开PyCharmTools > Deployment > Configuration, 新建一个SFTP服务器,名字自己取: 输入如下图配置,注意这里 ...

  7. pandas的数据结构介绍(一)—— Series

    pandas两个主要数据结构之一--Series 类似于一维数组,由一组数据和与其相关的一组索引组成 obj = Series([4, 7, -5, 3], index=['d', 'b', 'a', ...

  8. system表空间

    system : 1.空间,管理:字典所在,不放用户数据;一般单个数据文件即可. 如果system表空间不够大,即可设置自动扩展,或者bigfile 2.system 备份 必须归档下 才能open下 ...

  9. Huawei USG6530防火墙

    CF卡:(Compact Flash)最初是一种用于便携式电子设备的数据存储设备.作为一种存储设备,它革命性的使用了闪存 与sd卡的区别:SD卡的优点是安全.体积小巧,价格较之CF卡相对比较低,适合用 ...

  10. linux文件系统和日志分析

    一.Linux文件系统 1.inode与block 1.概述: (1)文件数据包括元信息与实际信息 (2)文件存储在硬盘上,硬盘最小存储单位是"扇区",每个扇区存储512字节 (3 ...