当前位置: 首页 > news >正文

Unittest接口测试生成报告和日志

🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快     

 HTML报告

  1. 直接把HTMLTestRunner.py放入工程目录即可
  2. 报告脚本封装
#HTNL格式报告now = datetime.datetime.now().strftime('%Y-%m-%d_%H_%M_%S')htmlreport = reportpath + "/" + now + r"result.html"print("测试报告生成地址:%s"% htmlreport)fp = open(htmlreport, "wb")runner = HTMLTestRunner.HTMLTestRunner(stream=fp, verbosity=2, title="xxxx接口自动化测试报告", description="用例执行情况")runner.run(case) # case为所有的测试用例fp.close()

LOG日志

  1. 使用Python自带的logging
  2. 直接引用即可
import logging

log等级

logging.basicConfig()函数包含参数说明

logging模块中定义好的可以用于format格式字符串说明

  • 字段/属性名称    使用格式    描述
  • asctime    %(asctime)s    将日志的时间构造成可读的形式,默认情况下是‘2016-02-08 12:00:00,123’精确到毫秒
  • name    %(name)s    所使用的日志器名称,默认是'root',因为默认使用的是 rootLogger
  • filename    %(filename)s    调用日志输出函数的模块的文件名; pathname的文件名部分,包含文件后缀
  • funcName    %(funcName)s    由哪个function发出的log, 调用日志输出函数的函数名
  • levelname    %(levelname)s    日志的最终等级(被filter修改后的)
  • message    %(message)s    日志信息, 日志记录的文本内容
  • lineno    %(lineno)d    当前日志的行号, 调用日志输出函数的语句所在的代码行
  • levelno    %(levelno)s    该日志记录的数字形式的日志级别(10, 20, 30, 40, 50)
  • pathname    %(pathname)s    完整路径 ,调用日志输出函数的模块的完整路径名,可能没有
  • process    %(process)s    当前进程, 进程ID。可能没有
  • processName    %(processName)s    进程名称,Python 3.1新增
  • thread    %(thread)s    当前线程, 线程ID。可能没有
  • threadName    %(thread)s    线程名称
  • module    %(module)s    调用日志输出函数的模块名, filename的名称部分,不包含后缀即不包含文件后缀的文件名
  • created    %(created)f    当前时间,用UNIX标准的表示时间的浮点数表示; 日志事件发生的时间--时间戳,就是当时调用time.time()函数返回的值
  • relativeCreated    %(relativeCreated)d    输出日志信息时的,自Logger创建以 来的毫秒数; 日志事件发生的时间相对于logging模块加载时间的相对毫秒数
  • msecs    %(msecs)d    日志事件发生事件的毫秒部分。logging.basicConfig()中用了参数datefmt,将会去掉asctime中产生的毫秒部分,可以用这个加上

生成log脚本封装

#LOG日志记录logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s',datefmt='%a, %d %b %Y %H:%M:%S',filename=log_path + '/' + now + r"result.log",filemode='w')logger = logging.getLogger()logger.info(case)

Unittest函数入口集成报告和日志

# coding=utf-8
import unittest
import time,datetime
from common import HTMLTestRunner
from common.send_mail import sendmain
import os
import loggingnow_path = os.path.dirname(os.path.realpath(__file__)) # 获取当前路径report_path = os.path.join(now_path , "../report") # HTML报告存储路径
log_path = os.path.join(now_path , "../log") # LOG日志存储路径if not os.path.exists(report_path): os.mkdir(report_path)
case_path = os.path.join(now_path , "../case") # 测试用例路径def load_case(casepath=case_path, rule="test*.py"):'''加载所有的测试用例'''discover = unittest.defaultTestLoader.discover(casepath, pattern=rule,) # 定义discover方法的参数return discoverdef run_case(test_case, reportpath=report_path):'''执行所有的用例, 并把结果写入测试报告'''#HTNL格式报告now = datetime.datetime.now().strftime('%Y-%m-%d_%H_%M_%S')report = reportpath + "/" + now + r"result.html"print("测试报告生成地址:%s"% report)fp = open(report, "wb")runner = HTMLTestRunner.HTMLTestRunner(stream=fp, verbosity=2, title="xxxx接口自动化测试报告", description="用例执行情况")#LOG日志记录logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s',datefmt='%a, %d %b %Y %H:%M:%S',filename=log_path + '/' + now + r"result.log",filemode='w')logger = logging.getLogger()logger.info(test_case)# 调用load_case函数返回值runner.run(test_case)fp.close()time.sleep(2)sendmain(report, mail_to=['yyyyyy@qq.com'])print("发送测试报告邮件OK")if __name__ == "__main__":my_cases = load_case()run_case(my_cases)

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。

http://www.dtcms.com/a/582287.html

相关文章:

  • Vue3 状态管理 + Pinia
  • 2025重新出发!中小物流仓配一体化平台的技术选型建设手记
  • 记录 RTPEngine Dockerfile 的调试过程
  • 阜新网站seo做软装的网站
  • 微信公众号微网站开发中国装修网官方网站
  • 学做预算网站wordpress编辑器
  • 盲盒抽赏小程序爬塔玩法分析:技术实现 + 留存破局,打造长效抽赏生态
  • 基于springboot的学院班级回忆录的设计与实现
  • 重庆专业网站建设公司响应式框架
  • day10(11.7)——leetcode面试经典150
  • 特定网站开发个人主页网站设计
  • flink 1.20 物化表(Materialized Tables)
  • html网站建设流程图只做一页的网站多少钱
  • 百度上能收到的企业名称网站怎么做wordpress theme api
  • asp.net网站开发案例教程做图片模板
  • 大庆门户网站做外贸接私单的网站
  • 企业项目级医院随访系统源码,患者随访管理系统,技术框架:Java+Spring boot,Vue,Ant-Design+MySQL5
  • 上蔡网站建设WordPress导出静态网页
  • 成都网站制作怎么样设计企业网站内容
  • 互联网做网站地推WordPress全局屏蔽谷歌
  • RV1126 NO.40:OPENCV图形计算面积、弧长API讲解
  • 威海网站建设哪家好哪有个人免费云服务器
  • 【Redis】02 基本数据类型
  • Rust内存问题检测
  • 娄底市网站建设课程资源网站开发
  • 写 CSDN 文章的体会
  • Vibe Coding - 免费使用claude code 、gpt-5、grok-code-fast-1进行氛围编程
  • 【NOI】C++一维数组之数组计数法
  • flash xml网站wordpress 表单数据
  • 事业单位建立网站wordpress后台慢