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 ...
随机推荐
- Windows10安装UR_RTDE
------------恢复内容开始------------ 要使用UR_RTDE必须先配置电脑环境,目前使用的环境是电脑win10,配置环境需要VS2019+boost1_66_0+cmake2.3 ...
- 替换yum源
1.yum源进行备份 进入到yum源的配置文件中 执行命令如下:cd /etc/yum.repos.d 将yum源进行备份:mv Centos-Base.repo Centos-Base.repo.b ...
- Ubuntu NVIDIA显卡驱动+CUDA安装(多版本共存)
NVIDIA显卡驱动 1.禁止集成的nouveau驱动 solution 1 (recommand) # 直接移除这个驱动(备份出来) mv /lib/modules/3.0.0-12-generic ...
- 实验十 团队作业7:团队项目用户验收&Beta冲刺
项目 内容 课程班级博客链接 2018级卓越班 这个作业要求链接 实验十 团队名称 零基础619 团队成员分工描述 任务1:亚楠,桂婷任务2:团队合作任务3:团队合作任务4:荣娟,鑫 团队的课程学习目 ...
- Neo4j学习(2)--简单入门
1.Neo4j属性图数据模型 节点:包含多个属性和标签.一个节点就是一条数据 属性:键值对形式 关系:单向与双向,连接节点,也可包含多个属性和标签 标签:表示节点和关系的类型,可以有多个,同时可以通过 ...
- PXE(cobbler)搭建,自动系统安装
pxe pxe实现全自动安装操作系统,其中用到的软件包括(dhcp首先给客户端分配IP地址提供的系统引导安装系统指向tftp-server启动并加载网络repo仓库由http服务和系统镜像制作) dh ...
- Android笔记--通过MediaStore查询图片
相关描述 已经完成发送彩信功能之后,就来继续向前走一步,来到MediaStore查询图片界面啦! 具体步骤实现 1.简简单单地一个界面 <?xml version="1.0" ...
- MySQL 某一列的值加入到另一列
0.背景 文件url 文件名 /usr/local/img/goods/1/2021-12-22-e05bb433bc7a451ca5d7cc9d505d8ed8.jpg 酸枣糕.jpg /usr/l ...
- 声网Agora发布教育信息化解决方案 助力教育公平提效
4月23日-25日,由中国教育装备行业协会主办的第79届教育装备展在厦门国际会展中心举办.作为赋能教育信息化的实时互动PaaS服务商,声网Agora应邀参会.展会现场,声网展示了基于实时音视频互动能力 ...
- etcd详解
etcd原理详解 etcd概述 etcd的特点 etcd是一个Go言编写的分布式.高可用的一致性键值存储系统,用于提供可靠的分布式键值存储.配置共享和服务发现等功能 etcd具有以下特点: 简单: 易 ...