python接口测试:unittest+requests+HTMLRunner

 (demo模块代码见上一篇)

#!/usr/bin/env python
# coding=utf-8

import unittest
from datetime import datetime
from HTMLTestRunner_pie import HTMLTestRunner
import ddt
# import os


# 申明测试类中使用ddt模块装饰
@ddt.ddt
class TestInterfaceRun(unittest.TestCase):

    @classmethod
    def setUpClass(cls):
        print('这是所有case的前置条件01')

    @classmethod
    def tearDownClass(cls):
        print('这是所有case的后置条件01')

    def setUp(self):
        print('这是每条case的前置条件01')

    def tearDown(self):
        print('这是每条case的后置条件01')
        # 关闭打开的文件

    def test_03(self):  # 测试用例的命名必须以test开头,否则不予执行
        print('04: 第三条case')

    @ddt.data([''], [''])  #
    def test_01(self, first):
        print('01: 第一条case')

    @unittest.skip('不执行这条case')  # 跳过这条case
    def test_02(self):
        print('02: 第二条case')

    @unittest.skipIf(3 < 2, '条件为真,跳过该用例')
    def test_04(self):
        print('04: 第四条case')


if __name__ == '__main__':
    # test_dir = os.path.join(os.getcwd())  # os.getcwd()获取当前目录,os.path.join()组成新目录
    # 自动搜索指定目录下的case,构造测试集, 执行顺序是命名顺序:先执行test_add,再执行test_sub
    # discover = unittest.defaultTestLoader.discover(test_dir, pattern='test_*.py')
    case_suite = [TestInterfaceRun('test_03'), TestInterfaceRun('test_02'), TestInterfaceRun('test_01')]
    print(case_suite)
    report = datetime.now().date().isoformat() + 'report.html'
    with open(report, mode='wb') as fp:
        runner = HTMLTestRunner(stream=fp, title='接口测试报告', description='详细描述')
        for case in case_suite:
            runner.run(case)
            print(case)
        runner.run(discover)
Testing started at 21:44 ...

这是所有case的前置条件这是每条case的前置条件
01: 第一条case
这是每条case的后置条件
这是每条case的前置条件
01: 第一条case
这是每条case的后置条件

Skipped: 不执行这条case
这是每条case的前置条件
03: 第三条case
这是每条case的后置条件
这是每条case的前置条件
04: 第四条case
这是每条case的后置条件
这是所有case的后置条件


Ran 5 tests in 0.004s

OK (skipped=1)

Process finished with exit code 0
发布了52 篇原创文章 · 获赞 13 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/yijinaqingan/article/details/89855643
今日推荐