本文主要是介绍python之unittest框架入门,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
单元测试框架
unittest单元测试框架不仅可以适用于单元测试,还可以适用WEB自动化测试用例的开发与执行,该测试框架可组织执行测试用例,并且提供了丰富的断言方法,判断测试用例是否通过,最终生成测试结果。今天笔者就总结下如何使用unittest单元测试框架来进行WEB自动化测试。
文档资料
https://docs.python.org/2/library/unittest.html
测试用例开发
1.用import语句引入unittest模块
import unittest
2.测试类应继承自TestCase类
# 继承自unittest.TestCase类
class UserTestCase(unittest.TestCase):def setUp(self):print("==tearDown==")self.name="AAA"def tearDown(self):print("==tearDown==")
3.setUp()定义测试前的初始化步骤;tearDown()定义测试后的清除步骤,在每个测试方法运行时都会被调用
注意
- 所有类中的方法的入参均为self,定义方法的变量是self.<变量名>
- 定义测试用例(方法),以test开头命名,否则不会被执行。因为unittest.main()方法会搜索该模块下所有以test开头的测试用例方法并自动执行它们
- 自己写的py测试文件不能用unittest.py命名,否则import unittest后会找不到TestCase类
测试套件
可以用unittest.TestSuite()类表示一个测试用例集,主要作用是:
1.用来确定测试用例的执行顺序,执行流程测试,而非单元测试
2.使用TestLoader加载TestCase到TestSuite
3.verbosity参数可以控制执行结果的输出,0是简单报告,1是一般报告,2是详细报告,默认为1
4.TextTestRunner()文本测试用例运行器
5.可以用run()方法运行测试套件的测试用例,入参为suite测试套件
if __name__ == '__main__':suite = unittest.TestSuite()suite.addTest(UserTestCase("test01"))suite.addTest(UserTestCase("test02"))suite.addTest(UserTestCase("test03"))suite.addTest(UserTestCase("test04"))runner = unittest.TextTestRunner(verbosity=0)runner.run(suite)
HTMLTestRunner
HTMLTestRunner是Python标准库的unittest模块的扩展,可以生成HTML的测试报告,但无法通过pip安装。
安装方法是下载HTMLTestRunner.py文件后,将其放入..\python\Lib目录下
注意点:py2和py3语法不一样,导致HTMLTestRunner在py3不兼容,解决方法是导入py3版的HTMLTestRunner.py文件。
import HTMLTestRunner
import timeif __name__ == '__main__':suite = unittest.TestSuite()suite.addTest(UserTestCase("test01"))suite.addTest(UserTestCase("test02"))suite.addTest(UserTestCase("test03"))suite.addTest(UserTestCase("test04"))# 文件以当前时间为前缀,以便每次执行生成不同的报告文件
file_prefix = time.strftime("%Y-%m-%d %H_%M_%S", time.localtime())
# 如果文件存在则覆盖,不存在则创建
fp = open("./"+file_prefix+"_result.html", "wb")
# 使用HTMLTestRunner框架生成html格式的测试报告
HTMLTestRunner.HTMLTestRunner(stream=fp, title="小D课堂 测试报告", description=u'测试用例执行情况')
runner.run(suite)
fp.close()
测试报告优化:为每一个测试用例添加说明
def test01(self):u'test01方法说明:首页登录测试'
这篇关于python之unittest框架入门的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!