unnittest的参数化模块-paramunittest

paramunittest是unittest实现参数化的一个专门的模块,可以传入多组参数,自动生成多个用例

两种用法

import unittest
import paramunittest # 方案一
@paramunittest.parametrized(
('1', '2'),
#(4, 3),
('2', '3'),
(('4', ), {'b': '5'}),
((), {'a': 5, 'b': 6}),
{'a': 5, 'b': 6},
)
class TestFoo(paramunittest.ParametrizedTestCase):
def setParameters(self, a, b):
self.a = a
self.b = b def testLess(self):
self.assertLess(self.a, self.b) # 方案二
@paramunittest.parametrized(
('1', '2'),
#(4, 3),
('2', '3'),
(('4', ), {'b': '5'}),
((), {'a': 5, 'b': 6}),
{'a': 5, 'b': 6},
)
class TestBar(unittest.TestCase):
def setParameters(self, a, b):
self.a = a
self.b = b def testLess(self):
self.assertLess(self.a, self.b)
print("%s<%s"%(self.a,self.b)) if __name__ == "__main__":
unittest.main(verbosity=2)

  方案一结果如下:

testLess[0]((('1', '2'), {})) (paramunittest.TestFoo_0) ... ok
testLess[1]((('2', '3'), {})) (paramunittest.TestFoo_1) ... ok
testLess[2]((('4',), {'b': '5'})) (paramunittest.TestFoo_2) ... ok
testLess[3](((), {'a': 5, 'b': 6})) (paramunittest.TestFoo_3) ... ok
testLess[4](((), {'a': 5, 'b': 6})) (paramunittest.TestFoo_4) ... ok ----------------------------------------------------------------------
Ran 5 tests in 0.099s OK
>>>

  方案二结果如下:

testLess (paramunittest.TestBar_0) ... 1<2
ok
testLess (paramunittest.TestBar_1) ... 2<3
ok
testLess (paramunittest.TestBar_2) ... 4<5
ok
testLess (paramunittest.TestBar_3) ... 5<6
ok
testLess (paramunittest.TestBar_4) ... 5<6
ok ----------------------------------------------------------------------
Ran 5 tests in 0.313s OK
>>>

  案例:

import unittest
import paramunittest
import time @paramunittest.parametrized(
{"user": "admin", "psw": "123", "result": "true"},
{"user": "admin1", "psw": "1234", "result": "true"},
{"user": "admin2", "psw": "1234", "result": "true"},
{"user": "admin3", "psw": "1234", "result": "true"},
{"user": "admin4", "psw": "1234", "result": "true"},
{"user": "admin5", "psw": "1234", "result": "true"},
{"user": "admin6", "psw": "1234", "result": "true"},
{"user": "admin7", "psw": "1234", "result": "true"},
{"user": "admin8", "psw": "1234", "result": "true"},
{"user": "admin9", "psw": "1234", "result": "true"},
{"user": "admin10", "psw": "1234", "result": "true"},
{"user": "admin11", "psw": "1234", "result": "true"},
) class TestDemo(unittest.TestCase):
def setParameters(self, user, psw, result):
'''这里注意了,user, psw, result三个参数和前面定义的字典一一对应'''
self.user = user
self.psw = psw
self.result = result def testcase(self):
print("开始执行用例:--------------")
time.sleep(0.5)
print("输入用户名:%s" % self.user)
print("输入密码:%s" % self.psw)
print("期望结果:%s " % self.result)
time.sleep(0.5)
self.assertTrue(self.result == "true") if __name__ == "__main__":
unittest.main(verbosity=2)

  

1、参数可以传元组也可以传字典

2、接受参数的时候,必须要定义setParameters这个方法,并且只能是这个名称。括号后面的参数分别接受传入的参数名称。前面定义的是字典,那参数就跟前面字典的key保持一致

3、参数的执行顺序是0,1,再执行10,11,12

4、除了传字典参数,传元组类型的也是可以的

@paramunittest.parametrized(
("admin", "123", "true"),
("admin1", "123", "true"),
("admin2", "123", "true"),
("admin3", "123", "true"),
("admin4", "123", "true"),
("admin5", "123", "true"),
("admin6", "123", "true"),
("admin7", "123", "true"),
("admin8", "123", "true"),
("admin9", "123", "true"),
("admin10", "123", "true"),
("admin11", "123", "true"),
("admin12", "123", "true")
)

  

python+selenium自动化--参数化(paramunittest)的更多相关文章

  1. python selenium自动化点击页面链接测试

    python selenium自动化点击页面链接测试 需求:现在有一个网站的页面,我希望用python自动化的测试点击这个页面上所有的在本窗口跳转,并且是本站内的链接,前往到链接页面之后在通过后退返回 ...

  2. python+selenium自动化登录dnf11周年活动界面领取奖励登录部分采坑总结[1]

    背景: Dnf的周年庆活动之一,游戏在6月22日 06:00~6月23日 06:00之间登陆过游戏后可以于6月25日 16:00~7月04日 06:00领取奖励 目标:连续四天自动运行脚本,自动领取所 ...

  3. Python+selenium 自动化-启用带插件的chrome浏览器,调用浏览器带插件,浏览器加载配置信息。

    Python+selenium 自动化-启用带插件的chrome浏览器,调用浏览器带插件,浏览器加载配置信息.   本文链接:https://blog.csdn.net/qq_38161040/art ...

  4. Python+Selenium自动化总结

    Python+Selenium自动化总结 1.环境搭建 1.1.安装selenium模块文件 pip install selenium 1.2.安装ChromeDriver驱动 [1]下载安装Chro ...

  5. Python+Selenium自动化-定位一组元素,单选框、复选框的选中方法

    Python+Selenium自动化-定位一组元素,单选框.复选框的选中方法   之前学习了8种定位单个元素的方法,同时webdriver还提供了8种定位一组元素的方法.唯一区别就是在单词elemen ...

  6. Python+Selenium自动化-模拟键盘操作

    Python+Selenium自动化-模拟键盘操作   0.导入键盘类Keys() selenium中的Keys()类提供了大部分的键盘操作方法:通过send_keys()方法来模拟键盘上的按键. # ...

  7. Python+Selenium自动化-设置等待三种等待方法

    Python+Selenium自动化-设置等待三种等待方法   如果遇到使用ajax加载的网页,页面元素可能不是同时加载出来的,这个时候,就需要我们通过设置一个等待条件,等待页面元素加载完成,避免出现 ...

  8. Python+Selenium自动化-清空输入框、输入内容、点击按钮

    Python+Selenium自动化-清空输入框.输入内容.点击按钮   1.输入内容 send_keys('valve'):输入内容valve #定位输入框 input_box = browser. ...

  9. Python+Selenium自动化-设置浏览器大小、刷新页面、前进和后退

    Python+Selenium自动化-设置浏览器大小.刷新页面.前进和后退   1.设置浏览器大小 maximize_window():设置浏览器大小为全屏 set_window_size(500,5 ...

随机推荐

  1. 快速幂的类似问题(51Nod 1008 N的阶乘 mod P)

    下面我们来看一个容易让人蒙圈的问题:N的阶乘 mod P. 51Nod 1008 N的阶乘 mod P 看到这个可能有的人会想起快速幂,快速幂是N的M次方 mod P,这里可能你就要说你不会做了,其实 ...

  2. windows 2008R2 搭建web实现https访问

    一.安装服务. 二.IIS创建证书申请. 三.ca颁发证书 三.创建网站. 创建一个新建文件夹,并在文件夹中创建一个txt文件. 把新建文本文档.txt重命名为index.html 完成证书申请(导入 ...

  3. c++的符号表的肤浅认识

    符号表是编译期产生的一个hash列表,随着可执行文件在一起 示例程序 int a = 10; int b; void foo(){ static int c=100; } int main(){ in ...

  4. Centos7 死循环登录问题

    问题:用户名和密码输入正确,登录后屏幕闪一下又回到初始的登录界面.不知道具体什么原因引起的,先记录下不知道是否正确的解决方案,网上找了些相关的方案有的也实现不了,可能这个问题跟装的虚拟机的版本也有关系 ...

  5. DRF项目之解决浏览器同源策略问题

    DRF项目,是一个前后端分离的Web框架. 本项目中,我们前端采用的是VUE框架. 前后端分离的情况就会出现一个问题,前端的Ajax请求无法请求到后端API(接口). 那么,为什么会出现这种问题呢? ...

  6. SpingBoot项目搭建(详细)

    SpingBoot (原创:黑小子-余) springboot官网:->点击<- spring官网:->点击<- 一.SpringBoot简介 Spring Boot是由Piv ...

  7. 对比Node.js和Python 帮你确定理想编程解决方案!

    世上没有最好的编程语言.有些编程语言比其他编程语言用于更具体的事情.比如,你可能需要移动应用程序,网络应用程序或更专业化的系统,则可能会有特定的语言.但是我们暂时假设你需要的是一个相对来说比较简单的网 ...

  8. C/C++源程序到可执行程序的过程

    源程序.cpp  预处理得到 预处理文件.i   编译得到 汇编文件.S    汇编得到 目标文件.o     链接得到 可执行文件 例子:main.cpp  fun.cpp fun.h #inclu ...

  9. Django1.11序列化与反序列化

    django序列化与反序列化 from rest_framwork import serializers serializers.ModelSerializer 模型类序列化器,必须依据模型类创建序列 ...

  10. 定时任务莫名停止,Spring 定时任务存在 Bug?

    专注于Java领域优质,技术欢迎关注 作者: 鸭血粉丝 来自:Java极客技术 Hello~各位读者新年好,我是鸭血粉丝(大家可以称呼我为「阿粉」).这里阿粉给大家拜个年,祝大家蒸蒸日上烫烫烫,年年有 ...