IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> python中unittest框架+htmlrunner来实现测试报告生成 -> 正文阅读

[开发测试]python中unittest框架+htmlrunner来实现测试报告生成

大家熟知python中很多测试框架,经常使用的就是unittest、pytest、seldom等等。

而在做UI自动化或者接口自动化时,不知道怎么去美化你的报告。

1.当我们需要调试一部分用例,可以根据用例名称数字进行拼接然后加入测试套件,进行执行


```python
if __name__ == '__main__':
    suite = unittest.TestSuite()
    ids = 165
    while ids < 173:
        basename = 'test_' + str(ids) + '_LCL'
        suite.addTest(CreditLoanMarket(basename))
        print '执行的用例为:{}'.format(basename)
        ids += 1
    suite.debug()

2.执行多个文件的用例
比如文件1,序号是1-50 文件2是序号51-100
文件3是序号101-150 你想一起执行这三个用例文件。并打印出日志**


```python
# -*-coding:utf-8 -*-
"""
根据用例文件特征执行多个用例文件
"""
import logging
import os

from public.Login_logout import *
from public.htmlrunner import *

filepath = os.path.normpath(os.path.join(os.path.join(os.path.dirname(os.path.dirname(__file__)), "test_case")))

logpath = os.path.normpath(os.path.join(os.path.join(os.path.dirname(os.path.dirname(__file__)))))
print logpath
reload(sys)
sys.setdefaultencoding('utf-8')


def all_case():
    logger = logging.getLogger()
    logger.setLevel(logging.INFO)  # log等级总开关
    # 第二步,创建一个handler,用于写入日志文件
    nowtime = time.strftime('%Y%m%d_%H%M%S', time.localtime(time.time()))
    log_name = nowtime + '.log'
    logfile = os.path.join(logpath+'/logs', log_name)
    # 创建文件handle 以及输出控制台handle
    fh = logging.FileHandler(logfile, mode='w')
    fh.setLevel(logging.DEBUG)  # 输出到file的log等级的开关
    ch = logging.StreamHandler()
    ch.setLevel(logging.INFO)  # 输出到console的log等级的开关
    # 第三步,定义handler的输出格式
    formatter = logging.Formatter("%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s")
    fh.setFormatter(formatter)
    ch.setFormatter(formatter)
    # 第四步,将logger添加到handler里面
    logger.addHandler(fh)
    logger.addHandler(ch)
    testcase = unittest.TestSuite()  # 加载测试套件
    # 用例的目录,关键字进行匹配
    discover = unittest.defaultTestLoader.discover(filepath, pattern='test_*.py', top_level_dir=None)
    testcase.addTest(discover)
    print testcase
    fp = file(filepath + '/report/report.html', 'wb')
    runner = HTMLTestRunner(stream=fp, title=r'UI自动化测试报告', description=r'商城')
    runner.run(testcase)
    fp.close()
    pass


if __name__ == '__main__':
    all_case()


3.用装饰器来实现报告

import unittest
from functools import wraps
import os
# from inspect import isfunction
from htmlrunner import HTMLTestRunner

filepath = os.path.normpath(os.path.join(os.path.join(os.path.dirname(os.path.dirname(__file__)), "Automation/Tcase")))


def UI_Report(testcase, ReportPath):
    """
    根据传入的testcase 来判断执行哪种报告生成方式。
    """

    def Report(s):
        @wraps(s)
        def Great_report():
            AA = hasattr(testcase, '__call__')
            # AA = isfunction(testcase)
            if AA:
                suite = unittest.makeSuite(testcase)
                fp = file(ReportPath, 'wb')
                runner = HTMLTestRunner(stream=fp, title=r'UI自动化', description=r'接口自动化测试报告')
                runner.run(suite)
                fp.close()
            else:
                fp = file(ReportPath, 'wb')
                runner = HTMLTestRunner(stream=fp, title=r'UI自动化测试报告', description=r'商城')
                runner.run(testcase)
                fp.close()

        return Great_report

    return Report

我们在实际使用过程中就可以

if __name__ == "__main__":
    @UI_Report(testcase=CreditHomePage, ReportPath='./report/result.html')
    def ass():
        pass
    ass()

python3的htmlrunner

https://download.csdn.net/download/zhu942100/21147135

python2的htmlrunner

https://download.csdn.net/download/zhu942100/21146985

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2021-08-19 12:21:43  更:2021-08-19 12:22:01 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/17 20:43:08-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码