一、UnitTest
1. TestCase
说明:测试用例
1.新建类并集成unittest.TestCase
2. TestSuite
说明:测试套件(多条用例)
方法:
1. 实例化 suite=unittest.TestSuite()
2. 添加:
方式1---->suite.addTest(类名("指定的方法名称"))
方式2---> suite.addTest(unittest.makeSuite(类名))
方法3---> suite=unittest.defaultTestLoader.discover(".",pattern="test*.py")【重点】
说明:返回搜索指定目录下指定开头的py文件内test开头的方法, --->其实返回的是测试套件
3. TextTestRunner
说明:执行测试套件
方法:
1. 实例化 runner=unittest.TextTestRunner()
2. 调用:runner.run(测试套件)
4. Fixture
说明:两个函数(setUp、tearDown)
作用:
1. setUp:(首先会被执行,一般做初始化工作)
2. tearDown:(最后被执行,一般做结束工作)
二、断言
掌握:
1. assertEqual(arg1, arg2) 验证arg1=arg2,不等则fail 【掌握】
2. assertIn(arg1, arg2) 验证arg1是arg2的子串,不是则fail【掌握】
注意:断言捕获异常,必须为:AssertionError
扩展:
添加时间戳:nowtime=time.strftime("%Y_%m_%d %H_%M_%S")
添加错误信息:sys.exc_info()[1]---->注意:except AssertionError:内捕获错误信息
三、生成HTML报告
1. 复制HTMLTestRunner.py文件到项目文件夹
2. 导入HTMLTestRunner、UnitTest包
3. discover加载要执行的用例
(discover=unittest.defaultTestLoader.discover(test_dir,pattern="test*.py"))
4. 设置报告生成路径和文件名
(file_name=file_dir+nowtime+"Report.html")
5. 打开报告 with open(file_name,'wb') as f:
6. 实例化HTMLTestRunner对象:runner=HTMLTestRunner(stream=f,[title],[description])
参数说明:
(stream:文件流,打开写入报告的名称及写入编码格式)
(
[],为可选;
title为报告标题,如XXX自动化测试报告
description:为说明;比如操作系统、浏览器等版本
)
7. 执行:runner.run(discover)