Python-BeautifulReport的简单使用
一、简介
- BeautifulReport.report
report ( filename -> 测试报告名称, 如果不指定默认文件名为report.html description -> 测试报告用例名称展示 log_path='.' -> log文件写入路径 )
- BeautifulReport.add_test_img
如果使用报告过程中需要把测试报告的截图放在报告中, 可以使用add_test_img方法
- add_test_img ( *pargs )
可以在测试用例上挂载一个装饰器
- 默认存放的图片路径是img, 需要在当前测试项目的启动路径下, 创建一个img文件夹
- 传递给装饰器的图片,在运行测试前可以不存在, 运行测试之后生成即可.
- 当文件在报告中展示后, 想要看到原图, 可以点击报告中的缩略图查看完整的截图
二、工具包下载
1、https://github.com/TesterlifeRaymond/BeautifulReport(出自此大神)

2、下载后把BeautifulReport整个包放到python的/Lib/site-packages/目录下

三、使用方式
1、项目结构
- test_case:存放测试用例
- test_report:存放生成的测试报告
- run.py:运行测试脚本
- img:存放测试截图

2、测试脚本
测试脚本test_a_bd.py参考代码
# -*- coding:UTF-8 -*-
import unittest
from selenium import webdriver
from time import sleep class Test_a(unittest.TestCase):
"""测试类A""" @classmethod
def setUpClass(self):
self.driver = webdriver.Chrome() self.driver.get("https://www.baidu.com/") def test_b_dubai(self):
"""用例1"""
print("1", self.driver.title)
sleep(2)
self.driver.close()
测试脚本test_b_db.py参考代码
# -*- coding:UTF-8 -*-
import unittest
from selenium import webdriver
from selenium.webdriver.common.by import By
from BeautifulReport import BeautifulReport
import os
from time import sleep class Test_b(unittest.TestCase):
"""测试类B""" img_path = 'img' def save_img(self, img_name):
"""
传入一个img_name, 并存储到默认的文件路径下
:param img_name:
:return:
"""
self.driver.get_screenshot_as_file('{}/{}.png'.format(os.path.abspath(self.img_path), img_name)) @classmethod
def setUpClass(self):
self.driver = webdriver.Chrome()
self.driver.get("https://www.baidu.com/") @BeautifulReport.add_test_img('搜索前', '搜索后')
def test_a_baidu(self):
"""用例2"""
self.save_img('搜索前')
self.driver.find_element(By.ID, "kw").send_keys("博客园")
self.driver.find_element(By.ID, "su").click()
self.save_img('搜索后')
print("2", self.driver.title)
self.driver.close()
run.py参考脚本
# -*- coding:UTF-8 -*-
import unittest
from BeautifulReport import BeautifulReport
import os
from tomorrow import threads
import datetime # 定义目录
BASE_DIR = os.path.dirname(os.path.realpath(__file__))
TEST_DIR = os.path.join(BASE_DIR, "test_case")
REPORT_DIR = os.path.join(BASE_DIR, "test_report") # kill 所有chromedriver进程
os.system("taskkill /f /im chromedriver.exe") def add_case():
'''加载所有的测试用例'''
discover = unittest.defaultTestLoader.discover(
TEST_DIR,
pattern="test_*.py"
)
return discover @threads(3)
def run(test_suit): # 定义测试报告名称
now_time = str(datetime.datetime.now().strftime('%Y%m%d%H%M'))
report_name = "report_" + now_time result = BeautifulReport(test_suit)
result.report(filename=f'{report_name}.html', description='平台报告', log_path='test_report') if __name__ == "__main__":
# 用例集合
cases = add_case() print(cases)
for i in cases:
print(i)
run(i)
3、报告效果


Python-BeautifulReport的简单使用的更多相关文章
- 用Python写一个简单的Web框架
一.概述 二.从demo_app开始 三.WSGI中的application 四.区分URL 五.重构 1.正则匹配URL 2.DRY 3.抽象出框架 六.参考 一.概述 在Python中,WSGI( ...
- Python django实现简单的邮件系统发送邮件功能
Python django实现简单的邮件系统发送邮件功能 本文实例讲述了Python django实现简单的邮件系统发送邮件功能. django邮件系统 Django发送邮件官方中文文档 总结如下: ...
- python shutil模块简单介绍
python shutil模块简单介绍 简介 shutil模块提供了大量的文件的高级操作.特别针对文件拷贝和删除,主要功能为目录和文件操作以及压缩操作. shutil 模块方法: copy(src, ...
- python之pandas简单介绍及使用(一)
python之pandas简单介绍及使用(一) 一. Pandas简介1.Python Data Analysis Library 或 pandas 是基于NumPy 的一种工具,该工具是为了解决数据 ...
- python之simplejson,Python版的简单、 快速、 可扩展 JSON 编码器/解码器
python之simplejson,Python版的简单. 快速. 可扩展 JSON 编码器/解码器 simplejson Python版的简单. 快速. 可扩展 JSON 编码器/解码器 编码基本的 ...
- 用Python编写一个简单的Http Server
用Python编写一个简单的Http Server Python内置了支持HTTP协议的模块,我们可以用来开发单机版功能较少的Web服务器.Python支持该功能的实现模块是BaseFTTPServe ...
- Python -- Scrapy 框架简单介绍(Scrapy 安装及项目创建)
Python -- Scrapy 框架简单介绍 最近在学习python 爬虫,先后了解学习urllib.urllib2.requests等,后来发现爬虫也有很多框架,而推荐学习最多就是Scrapy框架 ...
- C#调用Python脚本的简单示例
C#调用Python脚本的简单示例 分类:Python (2311) (0) 举报 收藏 IronPython是一种在 .NET及 Mono上的 Python实现,由微软的 Jim Huguni ...
- python和mongodb简单交互
python和mongodb简单交互 1.安装pymongo: pip3 install pymongo 2.pymongo的简单用法: # /usr/bin/env python3 import p ...
- python和redis简单交互
python和redis简单交互 1.安装redis模块 pip3 install redis 2.redis模块简单使用: # /usr/bin/env python3 import redis c ...
随机推荐
- density plot
FIN=read.table("/Users/zhongyuantian/macshare/workSpace2021/1.TFY/1.3.TFY20201215/1.3.1.TFY1C_T ...
- Iview Table 图片、超链接
columns = [ { title: "照片", key: "attach_url", align:'center', width: 170, render ...
- 2022.07.25 TypeScript基础类型介绍
基础类型: 字符串(string)(String) let first: string = 'niu' // 直接赋值 let fourth: string = `niu` // 模板字符串 let ...
- vs2022和wsl2开发和调试c++代码(转载)
看见一个不错的帖子(知乎) https://zhuanlan.zhihu.com/p/390757559 里面最主要就是要保证wsl里面安装的东西够了,第二就是vs2022已经安装了linux的相关模 ...
- 【ASP.NET Core】修改Blazor.Server的Hub地址后引发的问题
Blazor Server,即运行在服务器上的 Blazor 应用程序,它的优点是应用程序在首次运行时,客户端不需要下载运行时.但它的代码是在服务器上执行的,然后通过 SignalR 通信来更新客户端 ...
- 对利用jsp模板编写登录、注册界面的方法言
使用模板的相关操作步骤详解 1.可以在相关的网站上面找相关的css或者js文件,下载到一个特定的文件夹里面,以备使用 2.然后,将存有相关代码的文件夹直接复制粘贴到web文件下,就会直接保存,可以根据 ...
- 2021 技术展望丨AV1 在 RTC 应用实践中的现状与展望
线上会议.在线教育.电商直播等多个场景的兴起,也使得实时互动技术从幕后走到台前,得到了更多人的关注.编解码.网络传输.计算机视觉等 RTE 相关的一系列技术也正焕发出更强的生命力.2021 年,在深度 ...
- Simulink的MATLAB function使用
note 2021-02-21 下面的文章来自我的公众号 yhm同学 note 2021-04-01 今天审稿,发现存在着一些我没有发现的错误,但是我不想修改了. 原文链接 https://mp.we ...
- 前端开发工具 VS Code 安裝及使用
一.下载地址 https://code.visualstudio.com/ 下载完后,傻瓜式安装即可 关注公众号"Java程序员进阶"回复"vs"也可获取 二. ...
- H5-生成二维码
<div class="poster-qr"> <div class="qrWrapper"> <!-- 放置二维码的容器 --& ...