一.参数化
参数化在测试方法中,使用变量来代替具体的测试数据,然后使用传参的方法将测试数据传递给方法的变量
好处:相似的代码不需要多次书写.
工作中场景:
1.测试数据—般放在json文件中
2.使用代码读取json文件,提取我们想要的数据—>[(),()] or [[],[]]
安装插件
unittest 框架本身是不支持参数化,想要使用参数化,需要安装插件来完成
-联网安装(cmd安装,或者Terminal)
pip install parameterized
查看是否安装了
pip list 查看是否有parameterized
二.参数化代码
1.导包unittest/ parameterized
import unittest
from parameterized import parameterized from
tools import login
组织测试数据data[(),(),()]
data = [
( " admin" , “123456”,“登录成功”),
( " root" , “123456”,“登录失败”),
( " admin’ , “123123”,“登录失败”)]
2.定义测试类
class TestLogin(unittest.Testcase):
3,书写测试方法(用到的测试数据使用变量代替)
@parameterized.expand(data)
def test_login(self, username,password,expect):
self.assertEqual(expect,login(username,password))
4.组织测试数据并传参(装饰器@)
三.跳过
对于一些未完成的或者不满足测试条件的测试函数和测试类,不想执行,可以使用跳过使用方法,装饰器完成
代码书写在Testcase文件的test_函数前面
直接将测试函数标记成跳过
1.@unittest.skip(‘跳过额原因’)
根据条件判断测试函数是否跳过,判断条件成立,跳过
2.@unittest.skipIf(判断条件,"跳过原因’)
四.测试报告
生成第三方的测试报告
1.获取第三方的测试运行类模块,将其放在代码的目录中
2.导包unittest
import unittest
from Html_Testruanner import HTMLTestRunner
3.使用套件对象,加载对象去添加用例方法
suite=unittest.TestLoader().discover(“.”,“day9999.py”)
4.实例化第三方的运行对象并运行套件对象
HTMLTestRunner()
stream=sys.stdout,必填,测试报告的文件对象(open ),注意点,要使用wb打开
verbosity=1,可选,报告的详细程度,默认1简略,2详细
titLe=None,可选,测试报告的标题
description=None可选,描述信息,Python的版本,pycharm版本
file = ‘report.html’ # 报告的后缀是.htmL
with open(file,‘wb’)as f: # file为报告存放路径和名字
runner = HTMLTestRunner(f,2,‘测试报告’) # 运行对象
runner.run(suite) # 运行对象执行套件,要写在with的缩进中
1.组织用例文件(Testcase 里边),书写参数化,书写断言,书写Fixture,
书写跳过,如果单个测试测试文件,直接运行,得到测试报告,如果有多个测试文件,需要组装运行生成测试报告
2.使用套件对象组装,或者使用加载对象组装
3,运行对象运行
3.1运行对象工第三方的运行类(文件对象(打开文件需要使用wb方式))
3.2运行对象.run(套件对象)
版权声明:本文为weixin_48195174原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。