一、前言
当三个测试方法具有一定的统一性和相似性时,可以参数化精简成一个功能
参数化作用:
1、使测试数据的覆盖率更高
2、常用与web表单提交、检索
3、用于接口参数的字段类型、边界值测试
在unittest我们有一个模块可以实现它,就是paramunittest模块,可以将多个测试用例精简成一个用例
第三方包paramunittest的安装方法见上篇文章
二、过程
以注解器的方式注解我们的测试类@paramunittest.parametrized
而parametrized的函数封装中,可以进行参数传入
(def parametrized(*parameters_seq):),并将多组测试数据作为参数传入,实例如图:
import paramunittest
@paramunittest.parametrized(
('admin','admin12345','admin','test_login_admin is ok'),
('json','json123456','json','test_login_json is ok'),
('tom','tom123456','tom','test_login_tom is ok'))#注解器
class TestSearch(unittest.TestCase,Search):
def setParameters(self,name,pwd,ass,txt):
self.name=name
self.pwd=pwd
self.ass=ass
self.txt=txt
def test_login(self):
self.get()
self.login(self.name,self.pwd)
sleep(1)
assert self.element(self.user_name).text==self.ass
print(self.txt)
self.logout()
sleep(1)
三、总结
1、参数需要使用@paramunittest.parametrized修饰;
2、参数可以传字典格式,也可以传入元祖类型都是可以的;
3、用例的执行顺序是按照参数里面的顺序进行执行的;
4、接收参数必须使用setParameters方法去接收参数;
ps:多行注释快捷键:选中要注释的多行代码,按组合键 Ctrl+/ 即可添加#
如果觉得博主这篇博客对大家有用,欢迎在评论区留下自己的‘脚印’ ~