3、Python接口自动化系列之unittest的封装使用

我们前面已经讲过了unittest的常用方法和结合ddt做数据驱动,接下来我们就剩下如何把前面用到的方法都封装起来然后放到框架中才算是框架中的一部分,之前写的都是像小学作文一样,流水仗,哈哈哈 好了接下来就开始搞如何封装吧
1、提到封装很多小伙伴就很怕,其实封装很简单的,就是我们把前面说到的一个个方法封装起来放在一个类中,当我们使用的时候直接调用这个类下面我们写好的一个个的方法就行,说到这可能还是很多小伙伴不懂,这不要紧,代码敲多了,自然而然的就懂封装思想了,所以不要把封装想的太难,这里就不要纠结会不会这个问题,所以我们就不在继续说这个话题了,直接上代码。


import os
import unittest
from HTMLTestRunnerHh import HTMLTestRunner
from datetime import datetime

# 获取测试用例
def getTestCases():
    loader = unittest.TestLoader()
    start_dir = os.path.dirname(os.path.abspath(__file__))
    suite = loader.discover(start_dir)
    return suite

# 时间戳,获取当前时间,主要是用来给自动生成的测试报告命名的
def getNowTime():
    # 注意导入的包是datetime.datetime(date)
    return datetime.now().strftime('%Y%m%d%H%M%S')

# 获取测试报告
def getReport():
    start_dir = os.path.dirname(os.path.abspath(__file__))
    # 获取报告目录
    report_dir = os.path.join(start_dir,'report')
    # 首先判断一下报告目录是否存在,存在就直接获取,不存在就先创建
    if not os.path.exists(report_dir):
        os.mkdir(report_dir)
    # 拼接一个完整的测试报告名字  报告目录,时间戳+.html后缀
    return os.path.join(report_dir, getNowTime() + '.html')


# 运行方法
def run():
    with open(getReport(),'wb') as f:
        runner = HTMLTestRunner(f,
                                verbosity=2,
                                title='浩浩的测试报告',
                                description='浩浩是单身狗',
                                tester='浩浩')
        runner.run(getTestCases())


if __name__ == '__main__':
    run()

运行,看一下结果:
3、Python接口自动化系列之unittest的封装使用_第1张图片
看一下会自动创建report目录,并且以时间戳的命名方式生成测试报告。
当然,我这样封装只是给各位小伙伴一个模板,也可以自己封装,毕竟我也是个菜鸟,大佬请忽略

好了到这里就整个unittest的讲解就已经结束了,剩下的就得需要各位小伙伴工作中拿来实战了,感觉作者写的还可以的就关注一下作者吧,后面有更多的干货哦。想了解更多干货的请加作者微信哈。
微信:18547673653

你可能感兴趣的:(3、Python接口自动化系列之unittest的封装使用)