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()定义测试后的清除步骤,在每个测试方法运行时都会被调用

注意

  1. 所有类中的方法的入参均为self,定义方法的变量是self.<变量名>
  2. 定义测试用例(方法),以test开头命名,否则不会被执行。因为unittest.main()方法会搜索该模块下所有以test开头的测试用例方法并自动执行它们
  3. 自己写的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 time

if __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方法说明:首页登录测试'

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值