数据驱动ddt 示例,数据在代码中

#coding=utf-8
from selenium import webdriver
import unittest,time
import logging,traceback
import ddt
from selenium.common.exceptions import NoSuchElementException

logging.basicConfig(
#日志级别
level = logging.INFO,

#日志格式
#时间、代码所在文件名、代码行号、日志级别、日志信息
format = ‘%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s‘,

#打印日志的时间
datefmt = ‘%a, %d %b %Y %H:%M:%S‘,

#日志存放文件
filename = ‘report.log‘,

#日志打开方式
filemode = ‘w‘

)
#使用ddt数据驱动
@ddt.ddt
class TestDemo(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Chrome(executable_path = "e:\\chromedriver")

#定义测试数,元组的元素是列表
@ddt.data([u"测试开发",u"测试开发"],
[u"疯狂动物城",u"古德温"],
[u"光荣之路",u"光荣之路"])

#解包测试数据,每个列表的数据分别对应下面的testdat、expectdata,每个数据会执行一次测试脚本
@ddt.unpack
def test_dataDriven(self,testdata,expectdata):
url = "https://www.baidu.com"

self.driver.get(url)

#隐式等待
self.driver.implicitly_wait(10)
try:
self.driver.find_element_by_id("kw").send_keys(testdata)

self.driver.find_element_by_id("su").click()

time.sleep(3)

self.assertTrue(expectdata in self.driver.page_source)

except NoSuchElementException,e:
logging.error(u"查找的页面元素不存在,异常:" +str(traceback.format_exc()))

except AssertionError,e:
logging.info(u"搜索 %s ,期望%s,失败" %(testdata,expectdata))

except Exception,e:
logging.error(u"错误信息: " + str(traceback.format_exc()))

else:
logging.info(u"搜索 %s ,期望%s,通过" %(testdata,expectdata))

def tearDown(self):
self.driver.quit()

if __name__ == "__main__":
unittest.main()

原文地址:http://blog.51cto.com/13496943/2173354

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

数据驱动ddt 示例,数据在代码中的相关文章

集算器访问HTTP数据的代码示例

使用集算器(esProc)可以很方便的从http数据源读取数据进行处理. 本例子中有一个servlet,对外提供json格式的雇员信息查询.Servlet访问数据库的员工表,保存了员工的信息,如下: EID   NAME       SURNAME        GENDER  STATE        BIRTHDAY        HIREDATE         DEPT         SALARY 1       Rebecca   Moore      F       Califor

JSBinding+Bridge:逻辑代码中操作二进制数据

以这2个函数为例 class File { public static byte[] ReadAllBytes(string path); public static void WriteAllBytes(string path, byte[] data); } 如果不做特殊处理,ReadAllBytes在返回数据给Js时,是一个字节一个字节拷贝给Js的数组.这样性能是极差的.并且,大多数情况下,逻辑代码中不需要直接修改2进制数据,而只是拿着而已. 因此,不要直接使用上面的2个函数. 以下是一个

Python 数据驱动ddt 使用

准备工作: pip install ddt 知识点: 一,数据驱动和代码驱动: 数据驱动的意思是  根据你提供的数据来测试的  比如 ATP框架 需要excel里面的测试用例 代码驱动是必须得写代码 它才能测试 比如说unittest 二,使用数据驱动框架的意义:- 代码复用率高.同一测试逻辑编写一次,可以被多条测试数据复用,提高了测试代码的复用率,同时可以提高测试脚本的编写效率.- 异常排查效率高.测试框架依据测试数据,每条数据生成一条测试用例,用例执行过程相互隔离,在其中一条失败的情况下,不

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

关于C++代码中的#pragma预处理指令

预处理指令是指在编译器编译代码时,提供按条件跳过源文件中的代码段(节).报告错误(错误信息以及行号)和警告条件,以及描绘源代码的不同区域的能力. 总是占用源代码中的单独一行,并且总是以 # 字符和预处理指令名称开头.# 字符的前面以及 # 字符与指令名称之间可以出现空白符. 下面是可用的预处理指令: #define 和 #undef,分别用于定义和取消定义条件编译符号. #if.#elif.#else 和 #endif,用于按条件跳过源代码中的节. #line,用于控制行号(在发布错误和警告信息

WPF MVVM 架构 Step By Step(2)(简单的三层架构示例及粘合代码GLUE code)

我们第一步就是去了解三层架构和问题然后去看MVVM是怎么去解决这些问题的. 现在,感觉和事实是完全不同的两个东西.当你看到三层架构的框图的时候,你会觉得每层的职责被分配的很好.但是当你你真的去写代码的时候你会发现其实一些层被迫去做本不应该他们做的额外的事情(违反了SOLID原则的S). 这个额外的工作就是在UI-Model和Model-Data access之间的代码.让我们就把这些代码称为“GLUE”代码.有两种主要的逻辑会造成“GLUE”代码(也许我知道的并不够多,其他的可以自己发现): 1

namenode示例 数据排序

2.0 数据排序 "数据排序"是许多实际任务执行时要完成的第一项工作,比如学生成绩评比.数据建立索引等.这个实例和数据去重类似,都是先对原始数据进行初步处理,为进一步的数据操作打好基础. 2.1 实例描述 对输入文件中数据进行排序.输入文件中的每行内容均为一个数字,即一个数据.要求在输出中每行有两个间隔的数字,其中,第一个代表原始数据在原始数据集中的位次,第二个代表原始数据. a.txt 7 4 3 b.txt 4 2 样例输出: 1 2 2 3 3 4 4 7 2.2 设计思路 这个

转载-使用 Feed4JUnit 进行数据与代码分离的 Java 单元测试

JUnit 是被广泛应用的 Java 单元测试框架,但是它没有很好的提供参数化测试的支持,很多测试人员不得不把测试数据写在程序里或者通过其它方法实现数据与代码的分离,在后续的修改和维护上有诸多限制和不便.Feed4JUnit 是开源的基于 JUnit 的扩展,通过使用 Feed4JUnit 提供的注释,用户可以很方便的把测试数据存放在文件或其它数据源.本文通过介绍及简单示例,使读者了解并能够使用 Feed4JUnit, 方便的实现数据与代码分离的测试. Feed4JUnit 与 JUnit 经常

从Android代码中来记忆23种设计模式

我的简书同步发布:从Android代码中来记忆23种设计模式 相信大家都曾经下定决心把23种设计模式牢记于心,每次看完之后过一段时间又忘记了~,又得回去看,脑子里唯一依稀记得的是少数设计模式的大致的定义.其实,网上很多文章讲得都非常好,我也曾经去看过各种文章.也曾一直苦恼这些难以永久记下的设计模式,直到我接触到了<Android源码设计模式解析与实战>--何红辉与关爱明著,发现原来其实我们在Android中都接触过这些设计模式,只是我们不知道而已.既然我们都接触过,我们只需一一对号入座,对设计