python+selenium自动化--参数化(paramunittest)
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)的更多相关文章
- python selenium自动化点击页面链接测试
python selenium自动化点击页面链接测试 需求:现在有一个网站的页面,我希望用python自动化的测试点击这个页面上所有的在本窗口跳转,并且是本站内的链接,前往到链接页面之后在通过后退返回 ...
- python+selenium自动化登录dnf11周年活动界面领取奖励登录部分采坑总结[1]
背景: Dnf的周年庆活动之一,游戏在6月22日 06:00~6月23日 06:00之间登陆过游戏后可以于6月25日 16:00~7月04日 06:00领取奖励 目标:连续四天自动运行脚本,自动领取所 ...
- Python+selenium 自动化-启用带插件的chrome浏览器,调用浏览器带插件,浏览器加载配置信息。
Python+selenium 自动化-启用带插件的chrome浏览器,调用浏览器带插件,浏览器加载配置信息. 本文链接:https://blog.csdn.net/qq_38161040/art ...
- Python+Selenium自动化总结
Python+Selenium自动化总结 1.环境搭建 1.1.安装selenium模块文件 pip install selenium 1.2.安装ChromeDriver驱动 [1]下载安装Chro ...
- Python+Selenium自动化-定位一组元素,单选框、复选框的选中方法
Python+Selenium自动化-定位一组元素,单选框.复选框的选中方法 之前学习了8种定位单个元素的方法,同时webdriver还提供了8种定位一组元素的方法.唯一区别就是在单词elemen ...
- Python+Selenium自动化-模拟键盘操作
Python+Selenium自动化-模拟键盘操作 0.导入键盘类Keys() selenium中的Keys()类提供了大部分的键盘操作方法:通过send_keys()方法来模拟键盘上的按键. # ...
- Python+Selenium自动化-设置等待三种等待方法
Python+Selenium自动化-设置等待三种等待方法 如果遇到使用ajax加载的网页,页面元素可能不是同时加载出来的,这个时候,就需要我们通过设置一个等待条件,等待页面元素加载完成,避免出现 ...
- Python+Selenium自动化-清空输入框、输入内容、点击按钮
Python+Selenium自动化-清空输入框.输入内容.点击按钮 1.输入内容 send_keys('valve'):输入内容valve #定位输入框 input_box = browser. ...
- Python+Selenium自动化-设置浏览器大小、刷新页面、前进和后退
Python+Selenium自动化-设置浏览器大小.刷新页面.前进和后退 1.设置浏览器大小 maximize_window():设置浏览器大小为全屏 set_window_size(500,5 ...
随机推荐
- 屏幕适配 - JS - 网站布局元素
网页可见区域宽:document.body.clientWidth; 网页可见区域高:document.body.clientHeight; 网页可见区域高:document.body.offsetW ...
- json解析精度问题
由于后台传过来的值是float或者double类型,解析之后作为对象放到字典或数组里面,被转成nsstring或者nsnumber会有一定的误差,很正常 解决办法,通过NSNumberFormatte ...
- Day 10:浅谈正则表达式
正则表达式 以检验扣扣号是否合法为例引入正则表达式 要求:校验QQ号,要求:必须是5~15位数字,0不能开头. 1.没有正则表达式 public class Demo1 { public static ...
- promise核心技术 2.两种回调函数 js中error的处理
抽空详细学习一下什么是回调函数(一个回调函数,也被称为高阶函数) 1.什么样的函数是回调函数 自己定义的(sittimeout不是自己定义的) 没有调用 自己执行 1.同步回调与异步回调函数 同步回调 ...
- 使用html画爱心
<!DOCTYPE html"> <html> <head> <meta http-equiv="Content-Type" c ...
- Java语言概述-JavaSE
代码虐我千百遍,我视代码如初恋 初级学习思想: 先了解Java 下载中英文文档对照学习 多看,多学 多敲,狂练 多标注注释 总结—创造 https://baike.baidu.com/(Java百度百 ...
- 基于python的爬虫流程图(精简版)
网址: https://www.processon.com/view/link/5e1148b8e4b07db4cfa9cf34 如果链接失效,请及时反馈(在评论区评论),博主会及时更新
- HTML超链接实例介绍
<html><head><title>第六节课</title><meta charset="UTF-8"></he ...
- elasticsearch + springboot 整合
https://blog.csdn.net/chengyuqiang/article/details/102938266 https://blog.csdn.net/chengyuqiang/arti ...
- 为什么声明了int型的变量并且直接初始化后,int型变量的地址一直在变化?
/************************************************************************* > File Name: ptr_varia ...