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

原理简介

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

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

前情概述

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

代码一览

conftest.py

复制代码
# 报告使用的端口
port = 4965

def 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/bash

report_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替换,再指定你需要的域名,即可实现。

相关推荐
A小辣椒2 天前
TShark:Wireshark CLI 功能
linux
A小辣椒2 天前
TShark:基础知识
linux
AlfredZhao2 天前
OCI 明明分配了 200G 系统盘,为什么 df 只看到 30G?
linux·oci
AlfredZhao3 天前
vi 删除指定范围的行,不用再反复按 dd
linux·vi
用户9718356334663 天前
银河麒麟 KY10 申威(SW64) 安装 nginx-1.16.1-2.p01.ky10.sw_64.rpm 详细步骤
linux
猪脚踏浪3 天前
linux 拷贝文件或目录到指定的位置
linux
大树884 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠4 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
bush44 天前
嵌入式linux学习记录十四、术语
linux·嵌入式
载数而行5204 天前
Linux 11 动态监控指令top
linux