我们在自动化测试的时候,有没有遇到这样的问题?例如一个登录的接口要做自动化,会有很多case(用例),密码错误,密码正确这种。在继承unittest.TestCase的类中,凡是以“test”开头的方法都会被看作成一个case。那么基于这个机制,一个登录的接口,我们是不是要写很多以“test”开头的方法,testlogin1(),testlogin2(),testlogin3().很显然这种写完是不行的,代码不能复用,代码量大,且逻辑代码和数据没能区分出来不利于管理。那么我们需要用到数据驱动这个方法来加入到我们的自动化中。

1.首先的安装“request”、“ddt”、“xlrd”、“unittest”模块。这几个模块我前面的博客有介绍的,可以看一下。

2.然后我们分别用@ddt.ddt、@ddt.data、@ddt.unpack装饰我们得到类、数据、方法。

3.@ddt.data()的数据就可以参数化了,可以从表格里面取。

import unittest
import ddt
from Login import Login
import HTMLTestRunner @ddt.ddt
class PraddtTest(unittest.TestCase): def setUp(self):
print("my test start!") def tearDown(self):
print("my test complete!") @ddt.data(["admin", "1qaz", "OK"],
["admin", "", "ERROR"],
["", "1qaz", "ERROR"],
["admin", "1234", "ERROR"],
["Admin", "1qaz", "ERROR"])
@ddt.unpack
def test_ddt(self, user, passwd, expect_value):
Login1=Login()
result = Login1.login(user, passwd)
print(result)
self.assertEqual(result, expect_value, msg=result) if __name__=="__main__":
with open('F:\\temp.html', 'wb') as fp:
stiue = unittest.TestLoader().loadTestsFromTestCase(PraddtTest)
runner = HTMLTestRunner.HTMLTestRunner(stream=fp, title="1", description="2")
runner.run(stiue)

  

python3 unittest数据驱动的更多相关文章

  1. python3+unittest+HTMLTestRunner

    参考博客1 参考博客2 python3版HTMLTestRunner.py见博客园‘链接’(已经上传到博客园) import unittest class operatinon_unittest(un ...

  2. unittest数据驱动

    所谓的数据驱动就是将数据单独存放,在写方法将数据读取,然后将读取的数据放在testcase里面. 当然如果这种testcase都是一样的,只有需要的数据不一样,也可以将testcase写成一个方法,把 ...

  3. python3 unittest框架失败重跑加截图支持python2,python3

    github源码地址下载:https://github.com/GoverSky/HTMLTestRunner_cn.git 解压文件后取出/HTMLTestRunner_cn.py文件丢进C:\Py ...

  4. 18年selenium3+python3+unittest自动化测试教程(下)

    第六章 自动化测试进阶实战篇幅 1.自动化测试实战进阶之网页单选性别资料实战 简介:讲解使用selenium修改input输入框和单选框 2.自动化测试之页面常见弹窗处理 简介:讲解使用seleniu ...

  5. 【转】Python unittest数据驱动工具:DDT

    背景 python 的unittest 没有自带数据驱动功能. 所以如果使用unittest,同时又想使用数据驱动,那么就可以使用DDT来完成. DDT是 “Data-Driven Tests”的缩写 ...

  6. python3+unittest参考

    Python3+Selenium+unittest自动化UI测试框架:https://www.cnblogs.com/G2Bent/p/8376001.html unittest --- 单元测试框架 ...

  7. [小北De编程手记] : Lesson 02 玩转 xUnit.Net 之 基本UnitTest & 数据驱动

    关于<玩转 xUnit.Net>系列文章,我想跟大家分享的不是简单的运行一下测试用例或是介绍一下标签怎么使用(这样的文章网上很多).上一篇<Lesson 01 玩转 xUnit.Ne ...

  8. Python3+unittest使用教程

    一.直接使用TestCase 注意所有测试方法都需要以test开头.代码如下: import unittest class Test1(unittest.TestCase): @classmethod ...

  9. 18年selenium3+python3+unittest自动化测试教程(上)

    第一章 自动化测试课程介绍和课程大纲 1.自动化测试课程介绍 简介:讲解什么是自动化测试和课程大纲讲解,课程需要的基础和学后的水平 python3.7+selenium3 pycharm 第二章自动化 ...

随机推荐

  1. 关于RAW 和 ASSEST文件夹的差异

    以下内容转自:http://www.cnblogs.com/leizhenzi/archive/2011/10/18/2216428.html *res/raw和assets的相同点: 1.两者目录下 ...

  2. SpringBoot05 数据操作01 -> JPA的基本使用、基本使用02

    前提: 创建一个springboot项目 创建一个名为springboottest的MySQL数据库 1 jar包准备 jpa的jar包 mysql驱动的jar包 druid数据库连接池的jar包 l ...

  3. 100723H Obfuscation

    传送门 题目大意 给你一个包含n 个单词的字典,给你一篇文章,文章包括若干词典里的单词,把句子里的空格都去掉,单词的首位字母都不变,中间的字符集为乱序,问能否恢复这篇文章,使得单词都是词典里的单词,如 ...

  4. Luogu 3457 [POI2007]POW-The Flood

    感觉自己什么题都写不动了. 又是一个神贪心:把所有城市中的点按照高度从小到大排序之后拿出来逐个计算,枚举其他高度小于它的点向四周扩展,如果这个点不能被之前放过的抽水机覆盖,那么把答案加一,并在这个点放 ...

  5. DIY的RPM包怎么签名呢 How to sign your custom RPM package with GPG key

    https://gist.github.com/fernandoaleman/1376720  How to sign your custom RPM package with GPG key 这是文 ...

  6. Entity Framework Tutorial Basics(6):Model Browser

    Model Browser: We have created our first Entity Data Model for School database in the previous secti ...

  7. Entity Framework Code-First(19):Seed Data

    Seed Database in Code-First: You can insert data into your database tables during the database initi ...

  8. undefined reference to `clock_gettime

    下面这个错误通常是因为链接选项里漏了-lrt,但有时发现即使加了-lrt仍出现这个问题,使用nm命令一直,会发现-lrt最终指向的文件没有包含任何symbol,这个时候,可以找相应的静态库版本libr ...

  9. Android消息传递之EventBus 3.0

    Android消息传递之EventBus 3.0使用详解 http://www.cnblogs.com/whoislcj/p/5595714.html EventBus 3.0进阶:源码及其设计模式 ...

  10. python web框架(bottle,flask,tornado)

    Python的WEB框架 Bottle Bottle是一个快速.简洁.轻量级的基于WSIG的微型Web框架,此框架只由一个 .py 文件,除了Python的标准库外,其不依赖任何其他模块. pip i ...