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. 04-String——课后动手动脑

    1.请运行以下示例代码StringPool.java,查看输出结果.如何解释这样的输出结果?从中你能总结出什么? public class StringPool { public static voi ...

  2. python的常用序列

    list1.list(obj)函数 obj可以为:元组(1,2,3),可迭代对象,字符串等转换换成数组类型2. 列表元素的添加 (1)list+[添加的元素] (2)list.append(添加元素) ...

  3. 十、CI框架之通过参数的办法输出URI路径

    一.代码如下,index函数有2个参数 二.效果如下: 不忘初心,如果您认为这篇文章有价值,认同作者的付出,可以微信二维码打赏任意金额给作者(微信号:382477247)哦,谢谢.

  4. oracle数据删除恢复

    insert into 表名 select * from 表名 as of timestamp to_Date('2017-07-20 10:00:00', 'yyyy-mm-dd hh24:mi:s ...

  5. 实验吧Web-中-让我进去(Hash长度扩展攻击、加盐密码及Linux下hashpump的安装使用)

    打开网页,测试开始,注入费老大劲,看了大佬的blog才知道怎么干. bp抓包,观察发现cookie中有个source=0,在repeater中修改为source=1,然go一下,出来了一段源代码. $ ...

  6. PAT Advanced 1030 Travel Plan (30) [Dijkstra算法 + DFS,最短路径,边权]

    题目 A traveler's map gives the distances between cities along the highways, together with the cost of ...

  7. cf1208 E Let Them Slide(差分+RMQ\单调队列)

    题意 如题目的图所示,每行都可以左右移动,但是数字不允许断开,且不许越界(宽度为w). 单独求每一列的最大的和为多少. 思路 对于每一列来说,在每一行上都有一个可以取到的区间, 所以,对于一列来说,答 ...

  8. group_concat用法以及字符串太长显示不全

    由于group_concat默认的长度是1024,所以要将最大长度修改 首先执行 SET SESSION group_concat_max_len = 10240;#一次查询有效 然后再进行拼接 se ...

  9. Java IO流操作 (I)

    1.FileWriter 写数据---输出流---由控制台向文件中写数据 import java.io.FileWriter; import java.io.IOException; /* * 写数据 ...

  10. nodejs(10)express路由

    后端路由 前端请求的URL地址,都要对应一个后端的处理函数,那么 这种URL地址到 处理函数之间的对应关系,就叫做后端路由: 在Express中,路由的主要职责 就是 把客户端的请求,分发到对应的处理 ...