python Unittest+excel+ddt数据驱动测试】的更多相关文章

#!user/bin/env python # coding=utf- # @Author : Dang # @Time : // : # @Email : @qq.com # @File : # @Description: import xlrd import xlwt import os import time from openpyxl import load_workbook strtime = time.strftime('%Y-%m-%d_%H_%M_%S') # def readE…
1.前言 (网盗概念^-^)相同的测试脚本使用不同的测试数据来执行,测试数据和测试行为完全分离, 这样的测试脚本设计模式称为数据驱动.(网盗结束)当我们测试某个网站的登录功能时,我们往往会使用不同的用户名和密码来验证登录模块对系统的影响,那么如果我们每一条数据都编写一条测试用例,这无疑是增加了代码量,代码重复,且显得那么臃肿(谁不喜欢身材好的呢?你懂的),这时候我们可以使用不同数据驱动代码执行相同的用例测试不同的场景. 2.实施数据驱动步骤 我们再来说说实施数据驱动测试的步骤: 1.创建/准备测…
目录 1.DDT简介 2.data装饰器 3.unpack装饰器 4.file_data装饰器 5.总结 1.DDT简介 Data-Driven Tests(DDT)即数据驱动测试.它允许您通过不同的测试数据来运行同一个测试用例,使它作为多个测试用例出现.其官方文档给出的定义如下: DDT (Data-Driven Tests) allows you to multiply one test case by running it with different test data, and mak…
简单介绍 ​ DDT(Date Driver Test),所谓数据驱动测试,简单来说就是由数据的改变从而驱动自动化测试的执行,最终引起测试结果的改变.通过使用数据驱动测试的方法,可以在需要验证多组数据测试场景中,使用外部数据源实现对输入输出与期望值的参数化,避免在测试中使用硬编码的数据,也就是测试数据和用例脚本代码分离. ​ DDT它其实就是一个装饰器,它会根据你传递进来的数据来决定要生成几个测试用例. ​ 使用的意义 1.代码复用率高:一个测试逻辑只需要写一次,可以多条测试数据复用,同时提高测…
安装xlrd 下载地址:https://pypi.python.org/pypi/xlrd 安装ddt 下载地址:https://pypi.python.org/pypi/ddt/1.1.0 class ExcelUtil(object): def __init__(self, excelPath, sheetName): try: self.data = xlrd.open_workbook(excelPath) except Exception as e: print(str(e)) sel…
前言 DDT(Data-Driven Tests)是针对 unittest 单元测试框架设计的扩展库.允许使用不同的测试数据来运行一个测试用例,并将其展示为多个测试用例.通俗理解为相同的测试脚本使用不同的测试数据来执行,测试数据和测试行为完全分离, 这样的测试脚本设计模式称为数据驱动.相同的测试脚本使用不同的测试数据来执行,测试数据和测试行为完全分离, 这样的测试脚本设计模式称为数据驱动. 实施数据驱动步骤 我们再来说说实施数据驱动测试的步骤: 1.创建/准备测试数据 2.封装读取数据的方法,保…
本次写的是针对有代码基础的,没基础建议先去学基础,以下所有描述内容都是我已经在公司项目实践成功的!仅供参考 整体思路: 1.接口自动化用的是Python中unittest框架 2.所有的测试数据用例存放Excel表 3.封装一套读取和写入的Excel方法 4.重写request方法(为了从Excel读取数据后对数据作分析和判断并在测试报告生成相关信息) 5.通过HTMLTestRunner运行测试用例生成网页版报告 6.将自动化脚本放到公司git上,方便其他人员获取你的代码进行编写脚本,后面会具…
时隔已久,再次冒烟,自动化测试工作仍在继续,自动化测试中的数据驱动技术尤为重要,不然咋去实现数据分离呢,对吧,这里就简单介绍下与传统unittest自动化测试框架匹配的DDT数据驱动技术. 话不多说,先撸一波源码,其实整体代码并不多 # -*- coding: utf-8 -*- # This file is a part of DDT (https://github.com/txels/ddt) # Copyright 2012-2015 Carles Barrobés and DDT con…
一.首先安装dtt模块 数据驱动原理 1.测试数据为多个字典的list类型 2.测试类前加修饰@ddt.ddt 3.case前加修饰@ddt.data() 4.运行后用例会自动加载成N个单独的用例 二.实例 ExcellData.py # coding:utf-8 import xlrd class excel: def __init__(self): self.test_data_path = 'F:\\testdata.xlsx' def open_excel(self,file): u''…
我们设计测试用例时,会出现测试步骤一样,只是其中的测试数据有变化的情况,比如测试登录时的账号密码.这个时候,如果我们依然使用一条case一个方法的话,会出现大量的代码冗余,而且效率也会大大降低.此时,ddt模块就能帮助我们解决这个问题. ddt(data-driven test),顾名思义,数据驱动测试.这个模块是第三方库,需要我们自己下载.或者直接在命令行输入pip install ddt. ddt用法 先看一个简单的演示: import unittest import ddt @ddt.dd…
之前写过一篇关于获取excel数据进行迭代的方法,今天补充上写入的方法.由于我用的是Python3,不兼容xlutils,所以无法使用copy excel的方式来写入.这里使用xlwt3创建excel后,将原有的excel数据输入到新建的excel,写入->保存->移除原有excel. 1.首先安装xlwt3,下载链接:https://pypi.python.org/pypi/xlwt3/0.1.2 import os import xlrd import xlwt3 class ExcelU…
整个工程的目录结构: 常用方法类: class SeleniumMethod(object): # 封装Selenium常用方法 def __init__(self, driver): self.driver = driver def getTitle(self): # 获取页面标题 return self.driver.title def clearAndInput(self, location, value): # 根据xpath定位元素并清除.输入 element = self.drive…
接口测试设计思想: 框架结构如下: 目录如下: readme: config下的run_case_config.ini 文件说明: run_mode: 0:获取所有sheet页 1: if case_list=="":运行指定sheet页的所有用例 else 运行指定测试用例 python -m grpc_tools.protoc -I ./protoFile --python_out=./protoFile --grpc_python_out=./protoFile ./protoF…
最近做自动化需要从文件读取数据做参数化,网上发现一个不错的解决方案. 准备:新建一个excel文件,文件名为测试类名,sheet名为测试方法名         excel第一行为标题,从第二行开始为测试数据         build path:jxl.jar code: import java.io.FileInputStream; import java.io.InputStream; import java.util.HashMap; import java.util.Iterator;…
1. test.yaml中的数据 这里的属性是list 2.创建用例 3,在yaml中创建数据,创建list数据,list中再创建dict数据,这样就可以读取dict中的多个参数的数据了…
unittest case.py 测试用例 suite.py 测试套件 loader.py 加载测试用例 run.py 执行测试用例 result.py 测试结果,测试报告 main mock 模拟测试 DDT 数据驱动测试 @ddt 测试类装饰器 , 加在类前面 @data @unpack @file_data 测试方法装饰器,加在测试方法前面 1.读取单个数据 2.读取多个数据 3.读取文件数据(json/yaml) parameterized模块类似,请自学…
软件的单元测试关注是的软件最小可执行单元是否能够正常执行,但是软件是由一个个最小执行单元组成的集合体,单元与单元之间存在着种种依赖或联系,所以在软件开发时仅仅确保最小单元的正确往往是不够的,为了保证软件能够正确运行,单元与单元之间的集成测试是非常必要. 另外上一篇文章只是介绍了如何使用xUnit.net对.Net Core程序进行简单(无参)的单元测试以及计算代码的覆盖率,但是在实际的测试工作中,往往会通过语句覆盖.条件/分支覆盖(白盒)方式以及等价类.边界值等(黑盒)方式来设计测试用例,这些用…
1.环境准备: python3.6 requests xlrd openpyxl HTMLTestRunner_api 2.目前实现的功能: 封装requests请求方法 在excel填写接口请求参数 运行完后,重新生成一个excel报告,结果写入excel 用unittest+ddt数据驱动模式执行 HTMLTestRunner生成可视化的html报告 对于没有关联的单个接口请求是可以批量执行的,需要登录的话写到setUpclass里的session里保持cookies token关联的不能实…
可以参考 python+requests接口自动化完整项目设计源码(一)https://www.cnblogs.com/111testing/p/9612671.html 原文地址https://www.cnblogs.com/yoyoketang/p/8628812.html 原文地址https://www.cnblogs.com/yoyoketang/tag/python接口自动化/ 原文地址https://www.cnblogs.com/yoyoketang/ 原文地址https://ww…
前言 1.环境准备: python3.6 requests xlrd openpyxl HTMLTestRunner_api 2.目前实现的功能: 封装requests请求方法 在excel填写接口请求参数 运行完后,重新生成一个excel报告,结果写入excel 用unittest+ddt数据驱动模式执行 HTMLTestRunner生成可视化的html报告 对于没有关联的单个接口请求是可以批量执行的,需要登录的话写到setUpclass里的session里保持cookies token关联的…
引言 在编写接口自动化用例时,我们一般针对一个接口建立一个.py文件,一条接口测试用例封装为一个函数(方法),但是在批量执行的过程中,如果其中一条出错,后面的用例就无法执行,还有在运行大量的接口测试用例时测试数据如何管理和加载.针对测试用例加载以及执行控制,python语言提供了unittest单元测试框架,将测试用例编写在unittest框架下,使用该框架可以单个或者批量加载互不影响的用例执行及更灵活的执行控制,对于更好的进行测试数据的管理和加载,这里我们引入数据驱动的模块:ddt,测试数据和…
接口自动化测试流程:需求分析-用例设计--脚本开发--测试执行--结果分析1.获取接口文档,根据文档获取请求方式,传输协议,请求参数,响应参数,判断测试是否通过设计用例2.脚本开发:使用requests模块进行接口调用 request内容包含什么? ① 封装了各种请求类型,get.post 等:② 以关键字参数的方式,封装了各种请求参数,params.data.headers.token 等:③ 封装了响应内容,status_code.json().cookies.url 等:④ session…
背景 python 的unittest 没有自带数据驱动功能. 所以如果使用unittest,同时又想使用数据驱动,那么就可以使用DDT来完成. DDT是 “Data-Driven Tests”的缩写. 资料:http://ddt.readthedocs.io/en/latest/ 使用方法 dd.ddt: 装饰类,也就是继承自TestCase的类. ddt.data: 装饰测试方法.参数是一系列的值. ddt.file_data: 装饰测试方法.参数是文件名.文件可以是json 或者 yaml…
所谓数据驱动测试,简单的理解为数据的改变从而驱动自动化测试的执行,最终引起测试结果的改变.通过使用数据驱动测试的方法,可以在需要验证多组数据测试场景中,使用外部数据源实现对输入输出与期望值的参数化,避免在测试中使用硬编码的数据.因此只需要创建一个测试脚本就可以处理上表的测试数据和条件的组合,使用数据驱动的模式,根据业务逻辑分解测试数据,并且定义变量,使用外部的excel里的数据使其参数化,从而避免使用源测试脚本中的固定数据,这种方式可以将测试脚本与测试数据分开,使得测试脚本在不同的数据集合下高度…
# -*- coding:utf-8 -*- ''' @project: jiaxy @author: Jimmy @file: study_ddt.py @ide: PyCharm Community Edition @time: 2018-12-06 14:48 @blog: https://www.cnblogs.com/gotesting/ ''' ''' study_ddt : data driver test , 数据驱动测试 1. 结合单元测试去执行用例 2. 装饰器 3. 安装:…
ddt是一个unittest的插件,用来实现uniitest的数据驱动 本文以python自动化测试中的数据驱动为原则,记录学习ddt的过程 一.数据的传递规则…
一.Mail163数据如下: 二.Excel+ddt代码如下: import xlrdimport unittestfrom selenium import webdriverfrom selenium.webdriver.common.by import Byfrom ddt import ddt,data,unpackimport time#安装:pip install xlrd#读取的数据存储在list表中def readExcels(): table = xlrd.open_workbo…
在测试接口时,一个接口会先写好测试用例,这个用例主要针对功能,传入参时考虑到各种场景,正常的,异常的,如:参数缺省,参数传一个六位数字写用例时考虑边界情况等. 一个接口设计用例时有可能会十几条到几十条都有可能,多个接口就有很多了,这时候我们可以考虑到自动化测试接口. 采用数据驱动方式,把数据写在excel表格中,代码做封装,用数据驱动测试,两部分相互独立.python中用ddt模块来做数据驱动,代码简单好维护,调试也方便. 自己写的框架,结构如下: common:公共层,放读取表格数据,发送re…
数据驱动模式的测试好处相比普通模式的测试就显而易见了吧!使用数据驱动的模式,可以根据业务分解测试数据,只需定义变量,使用外部或者自定义的数据使其参数化,从而避免了使用之前测试脚本中固定的数据.可以将测试脚本与测试数据分离,使得测试脚本在不同数据集合下高度复用.不仅可以增加复杂条件场景的测试覆盖,还可以极大减少测试脚本的编写与维护工作. 下面将使用Python下的数据驱动模式(ddt)库,结合unittest库以数据驱动模式创建百度搜索的测试. ddt库包含一组类和方法用于实现数据驱动测试.可以将…
一.什么是DDT数据驱动框架 ​ 全称:data driver test数据驱动测试框架,可以完美的应用于unittest框架实现数据驱动.ddt使用简介: 1.测试数据为多个字典的list类型 2.测试类前加修饰@ddt.ddt 3.用例前加修饰@ddt.data() 或 @ddt.file_data() 4.运行后测试会自动加载成三个单独的用例 注意:@data装饰符可以把参数当成测试数据,参数可以是单个值.列表.元祖.字典,对于列表和元祖需要使用@unpack装饰符把元祖和列表解析成多个参…