python数据驱动:基于ddt的数据驱动测试
一、yaml文件的调用
二、csv文件的数据驱动
三、基于ddt的数据驱动测试
方法1:
from selenium import webdriver
import unittest
from time import sleep
from ddt import ddt,data,unpack
# ddt data driver test 数据驱动测试 代码数据分离
@ddt #ddt在class类上面说明是一个数据驱动类
class Unitdemo(unittest.TestCase):'''@data(["http://www.baidu.com","虚竹"])解析操作,基于都好进行分割,但因为list作为一个整体,就作为一个参数传入@unpack进行二次解析"http://www.baidu.com""虚竹"对应用例的入参url和txt,进行复制赋值,url="http://www.baidu.com",txt="虚竹"'''@data(["http://www.baidu.com","虚竹"],["http://www.baidu.com","酸菜鱼"],["http://www.baidu.com","霜雪千年"],["http://www.baidu.com","黑鱼"]) #用于存放数据#@data(*result) 星号代表不定长度@unpack #第二种方法不需要这个def test_01(self,url,txt): #def test_01(self,args):#创建一个用例self.driver=webdriver.Chrome()self.driver.get(url) #arg[0]self.driver.implicitly_wait(5)self.driver.find_element_by_id("kw").send_keys(txt) #arg[1]self.driver.find_element_by_id("su").click()sleep(5)if __name__ == "__main__":unittest.main()
方法2:读取文件
from selenium import webdriver
import unittest
from time import sleep
from ddt import ddt,data,unpack
def read_file():list=[]file=open('file.txt','r',encoding='utf-8')for line in file.readlines():list.append(line.strip("\n").split(","))file.close()return list#或者是#import csv#list= []#with open('./nihso.csv', encoding='UTF-8') as f:# f_csv = csv.reader(f)# for r in f_csv:# list.append(r)# return list#结果:[['i love you0你好', 'hello1'], ['i love you1你好', 'hello2'], ['i love you2你好', 'hello3'], ['i love you3你好', 'hello4'], ['jdfksdi love you0你好', 'hello5'], ['i love you1你好', 'hello6'], ['i love you2你好', 'hello7'], ['i love you3你好', 'hello8'], ['jdfksd', 'hello9']]@ddt
class Unitdemo(unittest.TestCase):'''@data(["http://www.baidu.com","虚竹"])解析操作,基于都好进行分割,但因为list作为一个整体,就作为一个参数传入@unpack进行二次解析"http://www.baidu.com""虚竹"对应用例的入参url和txt,进行复制赋值,url="http://www.baidu.com",txt="虚竹"'''@data(*read_file()) #加*使其该列表变成一个元组值@unpack #第二种方法不需要这个def test_01(self,url,txt): #def test_01(self,args):#创建一个用例self.driver=webdriver.Chrome()self.driver.get(url) #arg[0]self.driver.implicitly_wait(5)self.driver.find_element_by_id("kw").send_keys(txt) #arg[1]self.driver.find_element_by_id("su").click()sleep(5)if __name__ == "__main__":unittest.main()
ddt介绍
DDT:全称DataDriverTest,是一个实现数据驱动的模块
数据驱动解析可以是字符串,list,文档类型(txt,excel,yaml)
安装:pip instatll ddt
使用:ddt是作为装饰器的形式来进行应用
DDT的数据解析,在文件端解析除了yaml之外,其他格式的文件都需要自行解析,然后传值进行操作
yaml文件就是通过@file_data装饰器来解析
python数据驱动:基于ddt的数据驱动测试相关推荐
- python 基于ddt实现数据驱动测试
这篇文章主要介绍了python 基于DDT实现数据驱动测试的方法,帮助大家更好的理解和学习使用python,感兴趣的朋友可以了解下 简单介绍 ddt(date driver test),所谓数据驱 ...
- python ddt mysql_Python数据驱动DDT的应用
原标题:Python数据驱动DDT的应用 在开始之前,我们先来明确一下什么是数据驱动,在百度百科中数据驱动的解释是:数据驱动测试,即黑盒测试(Black-box Testing),又称为功能测试,是把 ...
- python数据驱动登录_python之数据驱动ddt操作(方法三)
import unittest from selenium import webdriver from selenium.webdriver.common.by import By import un ...
- 分子模拟的理论与实践_基于分子模拟的数据驱动发现流体力学宏观方程
近日,北京航空航天大学航空学院的张俊教授和马文军硕士生在流体领域顶级期刊<Journal of Fluid Mechanics>发表了题为"Data-driven discove ...
- Python实现基于动态时间规整的股市交易策略测试
Python实现基于动态时间规整的股市交易策略测试 一.策略简介 二.策略原理 三.代码实现 四.测试策略 五.完整代码 一.策略简介 该项目采用Python语言,利用动态时间规整算法对沪深300市场 ...
- Feathers JS – 基于 Express 构建数据驱动的服务
Feathers 是一个轻量的 Web 应用程序框架,基于 NodeJS 最流行的 Web 框架--Express.这使得它很容易使用 socket.io 来创建 RESTful Web 服务和实 ...
- 基于python的压测工具_基于Python和SIPp的自动化压力测试系统设计和实现
信斌 王桂花 摘要:首先,分析了现有测试系统的不足,之后,介绍了软件组成和运行环境说明,最后,设计了基于Python和SIPp的自动化压力测试系统,并给出了相关代码.新的测试系统克服了现有测试系统的不 ...
- python selenium unittest_使用python学习selenium2--使用unittest进行测试
目录 unittest可以为webdriver增加setup.teardown.检查应用状态.报告测试结果.数据驱动等功能.主要内容如下: 什么是unittest? 使用unittest来编写硒web ...
- Python数据驱动模块DDT
一.DDT简介 Data Driven Testing,数据驱动,简单来说就是测试数据的参数化 Python数据驱动模块DDT,包含类的装饰器ddt和两个方法装饰器data(直接输入测试数据) 通常情 ...
最新文章
- 房价预测-paddle 实现
- 个人作业1:小学四则运算——基于控制台
- Croc Champ 2013 - Round 2 (Div. 2 Edition) 贪心+ 搜索+剪枝 + 数学
- 内核aio_今天来说说令人让人傻傻分不清的BIO,NIO,AIO
- mysql数据库优化课程---13、mysql基础操作
- mysql如何在一个表中插入数据的同时,更新另一个表的数据?
- C#中使用DES和AES加密解密
- 计算机本地磁盘加密,我可以将onedrive本地文件夹转移到BitLocker加密文件夹吗?...
- js高级学习笔记(b站尚硅谷)-16-原型链的继承
- java ToStringBuilder
- 【SAS系列】SAS入门书籍推荐
- VSTO简介及简单使用
- 翻译记忆软件-塔多思TRADOS经典教程_1
- Java 设计模式最佳实践:四、结构模式
- 致歉信:拖更两天抱歉了
- svg文件解析(python)
- 软件测试工程师面试题及答案
- vue过滤器——vue全局过滤器,
- Java日志框架——Logback
- android会超过苹果,任正非:华为操作系统要想超越安卓和苹果 不会超过300年