Pytest-如何将allure报告发布至公司内网

原理简介

使用Python启动HTTP服务器,指定一个端口号port,内网用户可以使用ip+port访问报告。

本文章继续进阶,简单使用nginx进行一个代理,使用域名可以直接访问报告。

前情概述

Pytest-allure如何在测试完成后自动生成完整报告?-CSDN博客

代码一览 

conftest.py

# 报告使用的端口
port = 4965def send_test_report():# 获取代码的根目录current_dir = os.path.dirname(os.path.abspath(__file__))shell_path = os.path.join(current_dir, "start_allure_server.sh")report_dir = os.path.join(current_dir, "report")results_dir = os.path.join(current_dir, "results")# 传参report_dir和results_dir,给shell脚本os.system(f'{shell_path} {report_dir} {results_dir} {port}')

在conftest文件中增加如上代码。

主要作用:找到报告的目录,并且带上port参数一起传给下一步的shell脚本,指定到最后一行时,则会去继续执行shell脚本里面的内容。

start_allure_server.sh

#!/bin/bashreport_dir="$1"
results_dir="$2"
port="$3"# 生成 Allure 报告
allure generate "$results_dir" -o "$report_dir" --clean
cd "$report_dir"# 启动 HTTP 服务器
nohup python -m http.server "$port" &

这段代码意思很简单,获取前文传递的参数,并执行生成报告的命令。在这一步生成报告是为了防止还有用例没有执行完,和在conftest里面生成报告的效果一致。

初步效果展示

完成上述步骤后,至此就可以使用ip+port访问报告了。

在本地可以使用localhost+port访问。

使用nginx代理

下载nginx并安装

nginx: 下载 

安装后解压即可使用。

配置

在安装目录的conf中,有一个nginx.conf

使用如下配置

worker_processes 1;# 错误日志配置
error_log logs/error.log info;# PID 文件配置
pid logs/nginx.pid;events {worker_connections 1024;
}http {include       mime.types;default_type  application/octet-stream;sendfile        on;keepalive_timeout  65;server {listen 80;server_name xxxxx; # 替换成你需要的域名# 临时重定向所有请求到/services/location / {return 302 /services/;}# 代理 /services/ 到 http://localhost:4965 location /services/ {proxy_pass http://localhost:4965/;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header X-Forwarded-Proto $scheme;}}
}

 简单来说,只需要把你使用的port替换,再指定你需要的域名,即可实现。

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Axure大屏可视化模板:跨领域数据分析平台原型案例

随着信息技术的飞速发展,数据可视化已成为各行各业提升管理效率、优化决策过程的重要手段。Axure作为一款强大的原型设计工具,其大屏可视化模板在农业、园区、城市、企业数据可视化、医疗等多个领域得到了广泛应用。本文将通过几个具体案例,展…

生成PPT时支持上传本地的PPT模板了!

制作 PPT 时想要使用特定的 PPT 模板? 现在,歌者 PPT 的「自定义模板功能」已全面升级!你可以轻松上传自己的本地 PPT 模板,无论是公司统一风格的模板,还是带有个人设计风格的模板,都能无缝导入歌者 PPT。…

什么是大数据?初学者快速入门手册

“大数据”这个词有点用词不当,因为它意味着预先存在的数据在某种程度上是小的(事实并非如此),或者唯一的挑战是其庞大的规模(规模是其中之一,但通常还有更多)。简而言之,“大数据”…

预计2030年全球GO电工钢市场规模将达到120.6亿美元

GO电工钢,又称为冷轧取向电工钢。GO电工钢按重量计含硅量至少为0.6%,含碳量不超过0.08%,可含有不超过1.0%的铝,所含其他元素的比例并不使其具有其他合金钢的特性;厚度不超过0.56毫米;呈卷状的,则…

Mac端口扫描工具

文章目录 端口扫描工具域名/ip转换Lookupping功能端口扫描 端口扫描工具 Mac内置了一个网络工具 网络使用工具 按住 Command 空格 然后搜索 “网络实用工具” 或 “Network Utility” 即可 域名/ip转换Lookup ping功能 端口扫描 参考文献 端口扫描工具

小柴冲刺软考中级嵌入式系统设计师系列二、嵌入式系统硬件基础知识(1)数字电路基础

目录 一、信号特征 二、组合逻辑电路和时序逻辑电路 1、组合逻辑电路 2、时序逻辑线路 三、信号转换 1、数字集成电路的分类 2、常用电平接口技术 四、可编程逻辑器件 flechazohttps://www.zhihu.com/people/jiu_sheng 小柴冲刺嵌入式系统设计师系列总目录https://blo…

使用 TypeScript 接口优化数据结构

在现代软件开发中,数据结构的设计至关重要,它直接影响到程序的性能和可维护性。TypeScript 作为一种静态类型的超集,为 JavaScript 带来了类型系统,使得开发者可以在编译时期就发现潜在的类型错误。本文将探讨如何利用 TypeScript…

uboot无法使用nfs下载文件的问题

一、系统环境 见这篇博客。 二、问题描述 uboot使用nfs下载文件出现 “T T T”,一直无法下载 三、解决方法 编辑/etc/nfs.conf文件: sudo xed /etc/nfs.conf开启udp: udpy之后重启nfs服务器: sudo /etc/init.d/nfs-kernel-server re…

使用GLib进行C语言编程的实例

本文将讨论使用GLib进行编程的基本步骤,GLib是一个跨平台的,用C语言编写的3个底层库(以前是5个)的集合,GLib提供了多种高级的数据结构,如内存块、双向和单向链表、哈希表等,GLib还实现了线程相关的函数、多线程编程以及…

知识库管理系统的未来趋势:从单一平台到生态系统

在数字化浪潮的推动下,知识库管理系统(Knowledge Base Management System, KBMS)正逐步从传统的单一平台向更加开放、灵活、智能的生态系统转变。这一转变不仅体现了技术进步的必然结果,也深刻反映了市场需求的变化。本文将分析随…

如何使用GLib的单向链表GSList

单向链表是一种基础的数据结构,也是一种简单而灵活的数据结构,本文讨论单向链表的基本概念及实现方法,并着重介绍使用GLib的GList实现单向链表的方法及步骤,本文给出了多个实际范例源代码,旨在帮助学习基于GLib编程的读…

基于飞腾平台的OpenCV的编译与安装

【写在前面】 飞腾开发者平台是基于飞腾自身强大的技术基础和开放能力,聚合行业内优秀资源而打造的。该平台覆盖了操作系统、算法、数据库、安全、平台工具、虚拟化、存储、网络、固件等多个前沿技术领域,包含了应用使能套件、软件仓库、软件支持、软件适…

【LIO-SAM】LIO-SAM论文翻译(2020年)

【LIO】LIO-SAM论文翻译(2020年) 1.Abstract2.INTRODUCTION4.通过平滑和映射实现激光雷达惯性里程计A. 系统概述B. IMU Preintegration Factor(推导过程参阅)C. Lidar Od…

【我的 PWN 学习手札】fastbin reverse into tcache —— tcache key 绕过

目录 前言 一、tcache reverse into tcache 二、测试与模板 前言 之前提到过,较高版本的 glibc,设置了 key 对 tcachebin 内的 double free 进行了检查。 除了前面几篇手札罗列的绕过方法,今天又遇到一个,特此记录。之前利用…

Go 1.19.4 序列化和反序列化-Day 16

1. 序列化和反序列化 1.1 序列化 1.1.1 什么是序列化 序列化它是一种将程序中的数据结构(map、slice、array等)或对象状态转换成一系列字节序列的过程,这些字节可以被存储或通过网络发送。 在GO中,序列化通常涉及到将结构体或其…

VirtualBox+Vagrant快速搭建Centos7系统【最新详细教程】

VirtualBoxVagrant快速搭建Centos7系统 📖1.安装VirtualBox✅下载VirtualBox✅安装 📖2.安装Vagrant✅下载Vagrant✅安装 📖3.搭建Centos7系✅初始化Vagrantfile文件生成✅启动Vagrantfile文件✅解决 vagrant up下载太慢的问题✅配置网络ip地…

Apache Iceberg Architecture—Iceberg 架构详解

Apache Iceberg Architecture Apache Iceberg 的架构可以分为三个主要层次:Iceberg Catalog、元数据层和数据层。 一、 Iceberg Catalog(目录) Iceberg Catalog 是 Iceberg 的顶层组件,负责管理所有 Iceberg 表的元数据和元数据操…

HTML常用的文本标签

常用文本标签 <span>: 元素没有特定含义 <b>: 定义粗体文字 <i>: 定义斜体文字 <em>: 定义着重文字 <strong>: 定义加重语气 <del>: 定义删除字 <span>文本标签</span><br><b>文本标签</b><b…

Java框架学习(Spring)(tx)(03)

简介&#xff1a;以本片记录在尚硅谷学习ssm-spring-tx时遇到的小知识 详情移步&#xff1a;想参考的朋友建议全部打开相互配合学习&#xff01; 视频&#xff1a; 057-spring-tx-编程式和声明式事务理解_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1AP411s7D7?p5…

MySQL tinyint(1)类型数据在经过flink cdc同步到doris后只有0/1问题定位与解决

背景&#xff1a; 近期在负责公司数据仓库搭建事宜&#xff0c;踩了一些坑后&#xff0c;终于通了&#xff0c;目标报表也成功迁移到了新方案上&#xff0c;可在数据验收的时候发现&#xff0c;同一个订单查询出了多条记录&#xff0c;原本以为只是简单的left join出多条记录问…