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 ...
随机推荐
- restfull风格传参
- Oracle数据库安装时,安装报错ins_emagent.mk
安装oracle数据库过程中,通过图形界面安装,出现ins_emagent.mk报错提示 解决方法 修改$ORACLE_HOME/sysman/lib/ins_emagent.mk,将$(MK_EMA ...
- maven插件汇总
编译Java源码,一般只需设置编译的jdk版本 <plugin> <groupId>org.apache.maven.plugins</groupId> <a ...
- Android笔记--图像显示
imageView 具体实现: 注意:图片名称应当为小写的英文字母与数字的结合,当然,二者可以只存在其一 图片的放置的比例:(通过scaleType属性设置) ImageButton ImageBut ...
- 开发者实践丨Agora Home AI 音视频的未来
本文作者是本届 RTE 2021 创新编程挑战赛获奖者,来自上海交通大学的李新春.他分享了本次参赛作品的构思.系统设计和开发的心得. 01 不得忽略的背景 从国家层面上讲,十四五期间我国人工智能发展的 ...
- 基于Admin.NET框架的前端的一些改进和代码生成处理(1)
Admin.NET 是一套基于Furion/.NET 6实现的通用管理平台,模块插件式开发,框架包含了常规的权限管理.字典等管理模块,以及一些Vue3的Demo案例,框架前后端分离.后端基于基于Fur ...
- react webpack自定义配置
在react当中,webpack的配置是被隐藏了的,如果想要配置webpack,有两种方法: 一.暴露出webpack的配置文件(不推荐) 执行 npm run eject 二.使用craco添加配置 ...
- '林子雨大数据' 实验3 HBase操作与接口编程
"林子雨大数据" 实验3 HBase操作与接口编程 环境搭建 VM虚拟机和Ubuntu系统的安装 在Windows中使用VirtualBox安装Ubuntu虚拟机(2020年7月版 ...
- 自己动手从零写桌面操作系统GrapeOS系列教程——1.2 GrapeOS真机演示
学习操作系统原理最好的方法是自己写一个简单的操作系统. GrapeOS操作系统之前一直运行在模拟器和虚拟机中,今天我们来演示一下GrapeOS在真机上运行的情况. 一.物理机真机 今天演示用的真机是一 ...
- 3.载荷和结果实体类以及Jwt
1.昨天为了将两个项目推送到远程仓库,了解了一下分支,将一个小工程作为一个分支,这是发生在git add .,git commit -m "描述"以及git reomte add ...