unittest框架
一、unittest框架基本使用(是python自带的一个单元测试框架)
1、框架:为解决一类事情的功能集合
二、TestCase 测试用例
书写真正的用例代码(脚本)
使用:1、导包。2、定义测试类。3、书写测试方法。4、执行
注意:
代码文件名字,要满足标识符规则。
代码文件名不要使用中文。
右键运行没有 unittest for..... (新建一个.py 文件,将代码再复制在里面,就可以执行了)
左上角的edit,里面设置
''' TestCase测试使用 ''' import unittest #书写测试类 class TestDemo(unittest.TestCase): #书写测试方法,方法名必须以test开头 def test_method1(self): print("测试方法一") def test_method2(self): print("测试方法二") #执行方式一:(在类名或者方法名后面点击右键运行)方法名代表只执行那一个方法。在类名后面执行,会执行一个类所有 #执行方式二: if __name__ == "__main__": unittest.main()
三、TestSuite 测试套件(批量执行测试用例)和 TestRunner(测试执行)
TestSuite:将多条脚本用例集合到一起,就是套件,用来组装用例
TestRunner:用来执行套件对象
import unittest #导入用例文件 from tools import TestDemo from tool2 import TestDemo1 #实例化套件对象 suite = unittest.TestSuite() #添加用例方法 #添加整个测试类:suite.addTest(unittest.makeSuite(TestDemo)) 可以将整个测试类的方法加入。但不同Python版本中可能没提示 suite.addTest(TestDemo('test_method1')) suite.addTest(TestDemo('test_method2')) suite.addTest(TestDemo1('test_method1_1')) suite.addTest(TestDemo1('test_method2_2')) #实例化执行对象 runner = unittest.TextTestRunner() #执行对象执行 runner.run(suite)
四、TestLoader 测试加载
作用和 TestSuite 作用一样,组装用例代码,同样需要 TextTestRunner() 执行
import unittest #实例化加载对象并加载用例,得到套件对象 #suite = unittest.TestLoader().discover("用例所在目录","用例代码文件名*.py") suite = unittest.TestLoader().discover("./","too*.py") #*就是和正则一样的匹配 #实例化执行对象 runner = unittest.TextTestRunner() runner.run(suite)
#上面两行代码等于下面一行
unittest.TextTestRunner().run()
五、Fixture 说明
代码结构,在用例执行前后会自动执行的代码结构
分为三种
方法级别:在每个用例执行前后,都会自动调用。方法名都是固定的
def setUp(self): #前置
def tearDown(self) #后置
类级别:在类中所有的测试方法执行前后都会自动执行的代码。一个类名只执行一次。比如打开和关闭浏览器。需要写作类方法
@classmethod
def setUpClass(cls): #前置
@classmethod
def tearDownClass(cls): #后置
模块级别:(了解)模块就是代码文件
import unittest #创建测试类 class Test_1(unittest.TestCase): def setUp(self) -> None: print("打开网页,点击登录") def tearDown(self) -> None: print("关闭网页") @classmethod def setUpClass(cls) -> None: print("打开浏览器") @classmethod def tearDownClass(cls) -> None: print("关闭浏览器") def test_001(self): print("测试方法一")