一、读取变量的值,实现unittest 参数化

import nose_parameterized,unittest

def calc(a:int,b:int):
return a+b
case_data =[
[10,20,30],
[12,21,33],
[15,21,36]
]
class MyClass(unittest.TestCase):
@nose_parameterized.parameterized.expand(case_data)
def test_compare(self,a,b,expect):
actual = calc(int(a),int(b))
self.assertEqual(actual,expect)
if __name__ == '__main__':
unittest.main()

定义了一个二维数组case_data,用来存值,使用时直接在test方法上方加

@nose_parameterized.parameterized.expand(case_data)

最后可以得到以下测试结果,说明测试成功。

同样,也可以将case_date定义为下面的形式,也可以实现unittest参数化。
case_data =[
(10,20,30),
(12,21,33),
(15,21,36)
]

二、读取文件的方式,实现unittest 参数化

@nose_parameterized.parameterized.expand(case_date) 这句中的case_data, 
只要写个函数,从文件格式读取的每一行放到一个list里,生成一个二维数组,,将这个二维数组赋给case_data就可以了。

如下所示,调用类DataToParam中的text方法,从 case_data.txt 生成一个二维数组。

@nose_parameterized.parameterized.expand(DataToParam.text('case_data.txt'))

下面是读取txt文件的函数封装在类DataToParam 里, 要读取excel的话,可以在DataToParam里再加一个读取excel的函数,然后把判断文件单独拎出来,放一个函数里,这样可以公用。

class DataToParam(object):
@staticmethod
def text(filename,seq=','):
if os.path.isfile(filename):
with open(filename,encoding='utf-8') as f:
res = []
for line in f:
res.append(line.strip().split(seq))
return res
else:
raise Exception('参数化文件不存在!') #主动抛出异常 print(DataToParam.text('case_data.txt'))

python3 应用 nose_parameterized 实现unittest 参数化的更多相关文章

  1. python自动化测试学习笔记-unittest参数化

    做接口测试的时候,当一个参数需要输入多个值的时候,就可以使用参数来实现: python中unittest单元测试,可以使用nose_parameterized来实现: 首先需要安装:pip  inst ...

  2. 使用nose_parameterized使unitTest实现参数化

    nose-parameterized是一个针对Python单元测试框架实现参数化的扩展 import unittest # from nose_parameterized import paramet ...

  3. 【转载】unittest参数化(paramunittest)

    前言 paramunittest是unittest实现参数化的一个专门的模块,可以传入多组参数,自动生成多个用例 前面讲数据驱动的时候,用ddt可以解决多组数据传入,自动生成多个测试用例.本篇继续介绍 ...

  4. Python unittest 参数化

    准备工作: pip install  nose_parameterized 典型场景:用户名.密码参数化 实例 1,新建一个ftl.py 文件 ,用来将存在于.txt .xlsx 文件中的参数化数据转 ...

  5. unittest参数化(paramunittest)

    前言 paramunittest是unittest实现参数化的一个专门的模块,可以传入多组参数,自动生成多个用例前面讲数据驱动的时候,用ddt可以解决多组数据传入,自动生成多个测试用例.本篇继续介绍另 ...

  6. parameterized之unittest参数化

    unittest没有想testNG那么方便,可以进行参数化,但是有一个第三方库可是实现参数化 安装 pip install parameterized 该库可以在python的所有单元测试框架中使用 ...

  7. unittest参数化

    我们在写case的时候,如果用例的操作是一样的,就是参数不同,比如说要测一个登陆的接口,要测正常登陆的.黑名单用户登陆的.账号密码错误的等等,在unittest里面就要写多个case来测试. 这样的情 ...

  8. selenium,unittest——参数化url,并多线程加快脚本运行速度

    利用参数化连续打开网页: #encoding=utf-8import unittestimport paramunittestimport timefrom selenium import webdr ...

  9. 第十一天 unittest参数化模块

    unittest的工作原理:一下例子简单的描述了整个过程 def calc(a,b): return a//b import unittest,HTMLTestRunner import Beauti ...

随机推荐

  1. mysql数据库,如何在登录mysql之后执行操作系统上的SQL脚本?

    需求描述: 通过mysql客户端登录到mysql数据库,如何执行操作系统上的SQL脚本文件呢? 操作过程: 1.编写测试脚本文件 [mysql@redhat6 scripts]$ cat SeCoun ...

  2. 【RF库Collections测试】Dictionary Should Contain Key

    Name:Dictionary Should Contain KeySource:Collections <test library>Arguments:[ dictionary | ke ...

  3. iOS-代码修改Info.plist文件

    解决办法: 1.首先系统的Info.Plist文件是只读文件 并不能 写入.目前我个人是没有办法存入,官方属性 可以看到是readOnly 2.那么我们 就想代码修改Info.Plist文件怎么办呢, ...

  4. Win 10安装Python及环境变量配置

    一.Windows系统 很多童鞋问之前的教程怎么没有介绍安装python3.5的,现予以补充更新一下. (一)安装python3.5 1.下载 进入Python官网www.python.org,在“D ...

  5. Centos7 安装zabbix3.0 服务端 详细

    参考: https://www.cnblogs.com/37yan/p/6879218.html http://blog.csdn.net/hao134838/article/details/5712 ...

  6. Atlassian Confluence任意文件读取漏洞

    Atlassian Confluence Atlassian Confluence是澳大利亚Atlassian公司的一套专业的企业知识管理与协同软件,也可以用于构建企业WiKi.该软件可实现团队成员之 ...

  7. 【BZOJ4429】[Nwerc2015] Elementary Math小学数学 最大流

    [BZOJ4429][Nwerc2015] Elementary Math小学数学 Description Ellen给她的学生教小学数学.期末考试已经来临了.考试有n个题目,每一个题目学生们都要对一 ...

  8. 【BZOJ3362-3365】USACO水题四连A

    [BZOJ3362][Usaco2004 Feb]Navigation Nightmare 导航噩梦 Description     农夫约翰有N(2≤N≤40000)个农场,标号1到N,M(2≤M≤ ...

  9. 神兽保佑-代码无BUG

    ┏┓ ┏┓┏┛┻━━━┛┻┓┃ ┃ ┃ ━ ┃┃ ┳┛ ┗┳ ┃┃ ┃┃ ┻ ┃┃ ┃┗━┓ ┏━┛ ┃ ┃   神兽保佑 ┃ ┃   代码无BUG!       ┃ ┗━━━┓       ┃ ┣┓ ...

  10. java GC工作机制

    转自:http://www.cnblogs.com/hzdtf/articles/5419987.html GC:垃圾回收站,是将java的无用的堆对象进行清理,释放内存,以免发生内存泄露.在介绍ja ...