selenium--- 数据驱动测试 ddt
通过使用数据驱动测试的方法,可以在需要验证多组数据的测试场景中,使用外部数据源实现对输入值和期望值的参数化,从而避免在测试中仅使用硬编码的数据。将测试数据和测试脚本分离开,使得测试脚本在不同数据集合下高度复用。
使用方法
在测试类上使用@ddt装饰符, 在测试方法上使用@data装饰符。 @data装饰符把参数当作测试数据,参数可以是单个值、列表、元组、字典。对于列表,需要用@unpack装饰符把元组和列表解析成多个参数。
@ddt.data(("phones",2),("music",5))
@unpack
def test_search(self,search_value,expected_count):
使用外部数据的数据驱动测试
1.通过CSV获取数据

import csv,unittest
from ddt import ddt,data,unpack
from selenium import webdriver def get_data(file_name):
rows =[]
data_file = open(file_name,"rb")
reader = csv.reader(data_file)
#skip the headers
next(reader,None)
for row in reader:
rows.append(row)
return rows @ddt
class SearchCsvDDT(unittest.TestCase):
.......
#get the data from specified csv file by calling the get_data function
@data(*get_data("testdata.csv"))
@unpack
def test_search(self,search_value,expected_count):
...........
2.通过excel获取数据

import xlrd,unittest
from ddt import ddt,data,unpack
from selenium import webdriver def get_data(file_name):
rows =[]
book = xlrd.open_workbook(file_name)
sheet = book.sheet_by_index(0)
for row_idx in range(1,sheet.nrows):
rows.append(sheet.row_values(row_idx,0,sheet.ncols))
return rows @ddt
class SearchExcelDDT(unittest.TestCase):
.......
#get the data from specified excel file by calling the get_data function
@data(*get_data("testdata.csv"))
@unpack
def test_search(self,search_value,expected_count):
...........
@data将调用get_data()方法去读取外部Excel文件,并将数据逐行返回给@data
如果要从数据库中获取数据,也可以修改get_data()方法,通过DB相关的库来连接数据库、SQL查询来获取测试数据
selenium--- 数据驱动测试 ddt的更多相关文章
- python for selenium 数据驱动测试
# -*- coding:utf-8 -*- """ 数据驱动测试,从 csv 文件中读取数据 """ from selenium impo ...
- python - 数据驱动测试 - ddt
# -*- coding:utf-8 -*- ''' @project: jiaxy @author: Jimmy @file: study_ddt.py @ide: PyCharm Communit ...
- Python&Selenium 数据驱动测试【unittest+ddt+xml】
一.摘要 本博文将介绍Python和Selenium做自动化测试时,基于unittest框架,借助ddt模块,使用xml文件作为测试输入. 二.xml文件 保存路径:D:\\Programs\\Pyt ...
- Selenium数据驱动测试模型和实例
模块驱动的模型虽然解决了脚本的重复问题,但是需要测试不同数据的用例时,模块驱动的方式就不很适合了. 数据驱动就是数据的改变从而驱动自动化测试的执行,最终引起测试结果的改变. 装载数据的方式可以是列表. ...
- 如何快速掌握DDT数据驱动测试?
1.前言 (网盗概念^-^)相同的测试脚本使用不同的测试数据来执行,测试数据和测试行为完全分离, 这样的测试脚本设计模式称为数据驱动.(网盗结束)当我们测试某个网站的登录功能时,我们往往会使用不同的用 ...
- Python Selenium 之数据驱动测试
数据驱动模式的测试好处相比普通模式的测试就显而易见了吧!使用数据驱动的模式,可以根据业务分解测试数据,只需定义变量,使用外部或者自定义的数据使其参数化,从而避免了使用之前测试脚本中固定的数据.可以将测 ...
- Python+Selenium笔记(十二):数据驱动测试
(一) 前言 通过使用数据驱动测试,实现对输入值和预期结果的参数化.(例如:输入数据和预期结果可以直接读取Excel文档的数据) (二) ddt 使用ddt执行数据驱动测试,ddt库可以将测试 ...
- Python&Selenium 数据驱动【unittest+ddt+json】
一.摘要 本博文将介绍Python和Selenium做自动化测试的时候,基于unittest框架,借助ddt模块使用json文件作为数据文件作为测试输入,最后生成html测试报告 二.json文件 [ ...
- Python Selenium 之数据驱动测试的实现
数据驱动模式的测试好处相比普通模式的测试就显而易见了吧!使用数据驱动的模式,可以根据业务分解测试数据,只需定义变量,使用外部或者自定义的数据使其参数化,从而避免了使用之前测试脚本中固定的数据.可以将测 ...
- 【python】以souhu邮箱为例学习DDT数据驱动测试
前言 DDT(Data-Driven Tests)是针对 unittest 单元测试框架设计的扩展库.允许使用不同的测试数据来运行一个测试用例,并将其展示为多个测试用例.通俗理解为相同的测试脚本使用不 ...
随机推荐
- Vue的hash/history模式
hash路由模式 URL 中的 hash 值只是客户端的一种状态,向服务端发送请求的时候,hash 部分不会被发送: hash 值得改变会在浏览器的历史记增加访问记录,所以可以通过浏览器的回退.前进控 ...
- VUE学习-编译到浏览器
vue文件时怎样编译运行到浏览器的 http://www.manongjc.com/article/21832.html 通过vue-loader,解析.vue文件,在webpack解析,拆解vue组 ...
- java8 stream流的使用
List<Paper> list = new ArrayList<>();list.add(new Paper("m",2L));list.add(new ...
- 一、Java简单概述
一 . Java组成部分 JDK : java development kit (Java开发工具) JDK是提供给Java开发人员使用的,其中包含了java的开发工具,也 包括了JRE. 所以安装了 ...
- MySQL8.0的下载、安装、配置
转1: MySQL8.0的下载.安装.配置 MySQL8安装教程(下载.安装.连接.卸载) Navicat Premium 15激活(含注册机)
- C#中Newtonsoft.Json.dll 的使用
1.类库说明Newtonsoft.Json.dll是.NET 下开源的json格式序列号和反序列化的类库,利用此类库,可以方便地操作json数据,其中在反序列化时,可以直接将格式化的json数据处理成 ...
- B-JUI框架使用探究
附上项目DEMO地址: 点我跳转 下载地址: 点我跳转 先了解一下什么是B-JUI框架: B-JUI(Bootstrap for DWZ)富客户端框架,基于DWZ-jUI富客户端框架修改. 主 ...
- spring-nfjh
Spring Xml 文件报红第一时间检查set .get .构造方法 准备工作 JDK 最低版本17 设置Maven 见[王鹤老师的笔记] 本套Spring教程与其他Spring教程的区别可总结为以 ...
- 如何用jupyter打开代码并租用服务器进行运行
1.启用环境并打开项目 s1:打开anaconda,进入到anaconda prompt命令窗口: s2:(我的代码是pytorch,所以我的环境也是pytorch) a.激活环境:conda act ...
- 学习笔记||使用Vue时踩过的坑2.0
6.Vue指令之v-show篇 v-show的功能,其功能类似于v-if 1.判断某个元素是否显示或隐藏 <el-button v-show="list.power == 1" ...