BeautifulReport测试报告框架

BeautifulReport测试报告框架

##执行文件excute_case.py
import unittest
import os, datetime
from BeautifulReport import BeautifulReportroot_dir = os.path.dirname(os.path.abspath(__file__)).replace('\\', '/')
print('root_dir路径',root_dir)
#test_dir = root_dir + '/testcases'test_dir = root_dir + '/TestCases'
#report_dir = root_dir + '/test_report'
report_dir = root_dir + '/TestReport'discover = unittest.defaultTestLoader.discover(test_dir, 'Test*.py', None)
now = datetime.datetime.now().strftime('%Y-%m-%d %H_%M_%S')
filename = '测试报告' + str(now)
BeautifulReport(discover).report(description='测试', filename=filename, log_path=report_dir)
##用例文件TestbfReport.py
import unittest, time,os
from selenium import webdriver
from selenium .webdriver.common.by import By
from BeautifulReport import BeautifulReportclass test_remote(unittest.TestCase):def save_img(self, test_method):#失败截图方法(必须要定义在class中)#root_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__))).replace('\\','/')root_dir = os.path.dirname(os.path.abspath(__file__)).replace('\\','/')img_path = root_dir + '/img'self.driver.get_screenshot_as_file\('{}/{}.png'.format(img_path, test_method))def setUp(self):self.driver = webdriver.Chrome()time.sleep(5)@BeautifulReport.stop #不执行该用例def test_zhaolei(self):self.driver.get('https://www.baidu.com')self.driver.find_element(By.ID,'kw').send_keys('赵小虎')#元素定位新写法,通过By定位self.driver.find_element(By.ID,'su').click()time.sleep(5)@BeautifulReport.add_test_img('test_zhoujielun')#失败后会有报错截图def test_zhoujielun(self):self.driver.get('https://www.baidu.com')self.driver.find_element(By.ID,'su3').send_keys('周杰伦')#这里的id我故意写错来查看效果self.driver.find_element(By.ID,'su').click()time.sleep(5)def test_ig(self):self.driver.get('https://www.baidu.com')self.driver.find_element(By.ID,'kw').send_keys('IG')self.driver.find_element(By.ID,'su').click()time.sleep(5)
'''def tearDown(self):self.driver.close()
'''
'''
if __name__ == '__main__':unittest.main()'''

参考文档:https://blog.csdn.net/qq_37969201/article/details/86689940

这里注意:从git下载的zip文件,解压后BeautifulReport-master,后面master记得去掉,不然会报错

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/153158.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c语言从入门到实战——回调函数与qsort的讲解和模拟实现

回调函数与qsort的讲解和模拟实现 前言1. 回调函数是什么?2. qsort2.1 使用qsort函数排序整型数据2.2 使用qsort排序结构数据 3. qsort函数的模拟实现 前言 回调函数是一个函数,它作为参数传递给另一个函数,并且能够在该函数内部被调用。在C…

Nginx 可视化管理平台:nginx-proxy-manager

本心、输入输出、结果 文章目录 Nginx 可视化管理平台:nginx-proxy-manager前言nginx-proxy-managernginx-proxy-manager 特性快速开始使用 Docker 网络开启 Docker 健康检查相关可视化页面相关链接弘扬爱国精神Nginx 可视化管理平台:nginx-proxy-manager 编辑:简简单单 Onl…

Vue 路由器传参和取值 路径参数

Query参数取值 http://www.csdn/index?id10&age123 取值 this.$route.query.id//获取id值 this.$route.query.age//获取age值传值 <router-link :to"{path:/index,query:{ id:10,age:123 }}"></router-link>携带参数跳转到指定路由 this.$ro…

深入解析SSD Wear Leveling磨损均衡技术:如何让你的硬盘更长寿?

SSD的存储介质是什么&#xff0c;它就是NAND闪存。那你知道NAND闪存是怎么工作的吗&#xff1f;其实&#xff0c;它就是由很多个晶体管组成的。这些晶体管里面存储着电荷&#xff0c;代表着我们的二进制数据&#xff0c;要么是“0”&#xff0c;要么是“1”。NAND闪存原理上是一…

【DevOps】Git 图文详解(五):远程仓库

Git 图文详解&#xff08;五&#xff09;&#xff1a;远程仓库 1.远程用户登录1.1 &#x1f511; 远程用户登录&#xff1a;HTTS1.2 &#x1f511; 远程用户登录&#xff1a;SSH 2.远程仓库指令 &#x1f525;3.推送 push / 拉取 pull4.fetch 与 pull 有什么不同 &#xff1f; …

【汇编】“转移”综述、操作符offset、jmp指令

文章目录 前言一、转移综述1.1 :背景&#xff1a;1.2 转移指令1.3 转移指令的分类按转移行为根据指令对IP修改的范围不同 二、操作符offset2.1 offset操作符是干什么的&#xff1f;标号是什么&#xff1f; 2.2 nop是什么&#xff1f; 三、jmp指令3.1 jmp指令的功能3.2 jmp指令&…

【目标测距】雷达投影测距

文章目录 前言一、读取点云二、点云投影图片三、读取检测信息四、点云投影测距五、学习交流 前言 雷达点云投影相机。图片目标检测&#xff0c;通过检测框约束等等对目标赋予距离。计算消耗较大&#xff0c;适合离线验证操作。在线操作可以只投影雷达检测框。 一、读取点云 py…

关于node安装和nvm安装的问题

node 1.已经自定义路径安装了node&#xff0c;但是在cmd输入node -v显示不是内部命令 路径问题&#xff1a;确保 Node.js 已经被添加到了系统的环境变量 PATH 中。PATH 环境变量包含了操作系统用来查找命令的位置。你可以通过以下步骤检查 Node.js 是否已被添加到 PATH&#x…

校园报修抢修小程序系统开发 物业小区报修预约上门维修工单系统

开发的功能模块有&#xff1a; 1.报修工单提交&#xff1a;学生、教职员工等可以使用小程序提交报修请求。这通常包括选择报修的问题类型&#xff08;如水漏、电器故障、照明问题等&#xff09;&#xff0c;地点&#xff0c;报修联系人&#xff0c;联系电话等&#xff0c;并提供…

【5k字长文 | Vue学习笔记】#1 认识Vue对象和基础语法

Vue是一个非常流行的渐进式JavaScript框架&#xff0c;渐进式指的是自底向上&#xff0c;从小组件逐渐向上构成整个项目&#xff0c;渐进式还可以理解为&#xff1a;用什么就拿什么&#xff0c;每个组件只做自己的事&#xff0c;尽可能解耦合。 本节我们将学习简单的Vue实例&a…

Thales安全解决方案:国家网络安全的关键

随着信息技术的飞速发展&#xff0c;网络安全问题日益凸显。在这个背景下&#xff0c;Thales安全解决方案正成为提高国家网络安全的关键。本文将探讨Thales安全解决方案如何为国家网络安全保驾护航。 一、Thales安全解决方案概述 Thales安全解决方案是一种全方位的网络安全防护…

upload-labs关卡11(双写后缀名绕过)通关思路

文章目录 前言一、回顾前几关知识点二、靶场第十一关通关思路1、看源代码2、bp抓包双写后缀名绕过3、检查文件是否成功上传 总结 前言 此文章只用于学习和反思巩固文件上传漏洞知识&#xff0c;禁止用于做非法攻击。注意靶场是可以练习的平台&#xff0c;不能随意去尚未授权的…

细思极恐!5秒钟克隆你的声音

Mocking Bird 是开发者 babysor 开源的比较火的 AI 拟声开源项目&#xff0c;目前在 GitHub 已经获得了 32K 的 Star&#xff0c;它能在 5 秒内克隆你的声音并生成任意语音内容&#xff0c;支持中文普通话。 01 功能特性 支持中文普通话拟声&#xff0c;并且在多个中文数据集…

小程序授权获取头像

wxml <view class"header"><text>头像</text><button class"butt" plain"true" open-type"chooseAvatar" bind:chooseavatar"chooseAvatar"><image src"{{HeadUrl}}" mode"&quo…

初刷leetcode题目(5)——数据结构与算法

&#x1f636;‍&#x1f32b;️&#x1f636;‍&#x1f32b;️&#x1f636;‍&#x1f32b;️&#x1f636;‍&#x1f32b;️Take your time ! &#x1f636;‍&#x1f32b;️&#x1f636;‍&#x1f32b;️&#x1f636;‍&#x1f32b;️&#x1f636;‍&#x1f32b;️…

工具及方法 - 多邻国: Duolingo

网站&#xff1a;Duolingo 有iOS和Android应用&#xff0c;在App Store和Google Play上都能下载。也可以使用网页版。我就在iOS上安装了付费版&#xff0c;为了小朋友学习英语&#xff0c;一年的费用&#xffe5;588。 目前学习中的课程是英语、日语和粤语。英语是小学课程&a…

GPU Microarch 学习笔记【3】Tensor Core

目录 1. 指令与架构 2. Load 3. 计算MMA 4. Set, Step 与thread group 5. OCTET 6. Tensor Core微架构 7. Final Nvidia自从Volta/Turing&#xff08;2018&#xff09;架构开始&#xff0c;在stream multi processor中加入了tensor core&#xff0c;用于加速矩阵计算。如…

代码随想录算法训练营Day36 —— 435. 无重叠区间、763.划分字母区间、56. 合并区间

435. 无重叠区间 思路&#xff1a; 按照左边排序&#xff0c;按照452引爆气球的思路即可&#xff0c;统计重叠区间个数就是最小删除个数&#xff0c; 直接改点就好。 代码&#xff1a; //手搓 class Solution { private:static bool cmp(const vector<int>& a, c…

闭包和类的分析

闭包和类是两种不同的概念&#xff0c;它们在编程中有着不同的用途和特点。 闭包&#xff08;Closure&#xff09;是指可以在其词法作用域之外执行的函数&#xff0c;但仍然保持对其作用域内变量的引用。换句话说&#xff0c;闭包是函数及其相关的引用环境的组合。闭包可以用来…

用Java实现简单的俄罗斯方块

一、创建新项目 1.首先新建一个项目&#xff0c;并命名为俄罗斯方块。 2.其次新建一个类&#xff0c;命名为Main&#xff0c;或其他的。 二、运行代码package 俄罗斯方块; import java.awt.BorderLayout; import java.awt.Color; import java.awt.GridLayout; import java…