如何让领导轻松在本地查看Allure报告

问题描述

当我们把精心生成的Allure报告原始文件发送给领导后,领导直接打开index.html文件时,页面却一直处于加载状态,无法显示数据。

通过F12开发者工具检查,我们发现这是由于浏览器跨域请求问题导致的。具体来说,当尝试通过XMLHttpRequest对象从本地文件系统中访问文件时,现代浏览器出于安全原因,默认禁止了这种行为。

解决方案

为了解决这个问题,使用Python HTTP服务器或其他Web服务器来托管Allure报告是一个行之有效的方案(当然,还有其他方式)。通过这种方式,我们可以通过http://https://协议来访问报告,从而轻松绕过CORS策略的限制。

以下是Python HTTP服务器的代码实现:

import http.server
import socketserver
import os
from functools import partial
import sys class HttpServer:
def __init__(self, bind="127.0.0.1", port=9988, directory=os.getcwd()):
self.bind = bind
self.port = port
self.directory = directory
args = sys.argv
for i in range(1, len(args)):
if args[i] == "-port" and i + 1 < len(args):
self.port = int(args[i + 1])
if args[i] == "-dir" and i + 1 < len(args):
self.directory = args[i + 1]
if args[i] == "-bind" and i + 1 < len(args):
self.bind = args[i + 1] def run(self):
try:
with socketserver.TCPServer((self.bind, self.port), partial(http.server.SimpleHTTPRequestHandler, directory=self.directory)) as httpd:
print(f"工作目录: {self.directory}\nServing HTTP on {self.bind} port {self.port}\nhttp://{self.bind}:{self.port}/")
httpd.serve_forever()
except KeyboardInterrupt:
print("\nKeyboard interrupt received, exiting.")
sys.exit(0) if __name__ == '__main__':
server = HttpServer()
server.run()

操作步骤:

  1. 将上述脚本保存在与Allure报告的index.html文件相同的目录下。

  2. 执行脚本,并访问提供的地址。

通过这种方法,我们可以成功访问Allure报告,并且数据也能正确加载。

ok,接下来解决领导没有python环境的问题。

解决Python环境问题

考虑到领导可能没有Python环境,我们可以利用第三方库pyinstaller对代码进行打包,生成无需Python环境即可执行的程序。

安装pyinstaller

pip install pyinstaller

打包脚本:

pyinstaller -F http_server.py

打包完成后,在dist目录下会生成一个可执行文件(例如http_server.exe)。

将生成的.exe文件移动到index.html文件相同的目录下。运行.exe文件。

访问提供的地址,即可成功查看Allure报告。

http_server下载链接

对于没有Python环境的朋友,可以通过网页版阿里云盘直接下载http_server.exe文件: https://www.alipan.com/s/QNWwFz1QKAj

如何让领导轻松在本地查看Allure报告的更多相关文章

  1. 如何利用jenkins插件查看allure报告-----完整篇(解决404和无数据问题)

    背景: python3+appium+pytest+allure写了安卓的自动化脚本,在windows本机pycharm上跑通过后生成了allure报告.  公司jenkins搭建在linux服务器上 ...

  2. pytest框架之allure报告生成

    一.关于安装 allure是跟pytest一起集成使用的,所以需要同时安装pytest以及allure-pytest插件: pip install pytest pip install allure- ...

  3. Jenkins(5)生成allure报告

    前言 jenkins集成了allure插件,安装插件后运行pytest+allure的脚本即可在jenkins上查看allure报告了. allure安装 在运行代码的服务器本机,我这里是用的dock ...

  4. store.js - 轻松实现本地存储(LocalStorage)

    store.js 是一个兼容所有浏览器的 LocalStorage 包装器,不需要借助 Cookie 或者 Flash.store.js 会根据浏览器自动选择使用 localStorage.globa ...

  5. git 远程新建分支后,本地查看不到

    使用以下命令同步 git remote # 列出所有远程主机git remote update origin --prune # 更新远程主机origin 整理分支git branch -r # 列出 ...

  6. npm run build 打包后,如何运行在本地查看效果(Nginx服务)

    这段时间,研究了一下vue 打包的很慢的问题.但是当我 npm run build 打包后,在本地查看效果的时候,活生生被我老大鄙视了,因为我打开了XAMPP.他说:你怎么不用Nginx啊?用这个一堆 ...

  7. allure报告定制(pytest+jenkins)

    环境及安装可查看 pytest+jenkins安装+allure导出报告 要让allure报告更漂亮,更直观,需要在脚本中写入allure特性 一开始allure调用step().story().fe ...

  8. pytest系列(四)- pytest+allure+jenkins - 持续集成平台生成allure报告

    pytest是什么 pytest是python的一款测试框架,拥有unittest的功能并比它更丰富. allure是什么 有非常多的优秀的测试框架,但却是有非常少优秀的报告工具可以展示非常清楚的用例 ...

  9. java版集成Allure报告--注释使用说明

    testNG集成Allure报告--注释使用说明 前置条件 首先需要下载allure的zip包解压,然后配置环境变量即可(win).allure的GitHub下载地址: 然后执行testn.xml或者 ...

  10. Docker DevOps实战:Docker+Jenkins+Python+Pytest+Allure(1)- 创建Jenkins容器、安装Python环境、安装项目依赖类库、安装Allure报告插件

    前言: 本文实操笔记参照菠萝笔记,安装过程中的坑大家可以参考下 创建Jenkins容器 # 下载Jenkins镜像 [root@localhost ~]# docker pull jenkins/je ...

随机推荐

  1. (Python基础教程之十五)Python开箱Tuple–太多值无法解压

    Python示例,用于unpack元组或序列或可迭代,以便该元组可能长于N个元素,从而导致" 太多的值无法unpack "异常. 1.打开任意长度的元组 Python" ...

  2. 解密Facebook产品的开发流程

    作者: 王淮  来源: <程序员>  发布时间: 2013-03-25 17:22  阅读: 3750 次  推荐: 6   原文链接   [收藏]   [编者注]王淮是Facebook第 ...

  3. 双语对照的 PDF 翻译工具「GitHub 热点速览」

    在 OpenAI 举办的「12天12场」发布会上,ChatGPT 的多项新功能正式亮相,包括 GPT-o1 正式版和 ChatGPT Pro(200 美元/月).强化微调(Reinforcement ...

  4. mysql 创建字段createtime 自动添加时间

    1. 创建createtime字段 类型选为timestamp 2.  添加默认值 CURRENT_TIMESTAMP

  5. 断言、drf之请求与响应

    目录 一.断言 二.drf之请求 2.1 Request能够解析的前端传入的编码格式 2.2 Request类有哪些属性和方法(学过) 常用参数 Response类的实例化参数 三.drf之响应 3. ...

  6. ajax请求与前后端交互的数据编码格式

    目录 一.Ajax AJAX简介 应用场景 AJAX的优点 语法实现 二.数据编码格式(Content-Type) 写在前面 form表单 几种数据编码格式介绍 三.ajax携带文件数据 四.ajax ...

  7. C#获得本地IP地址的各种方法

    网上有很多种方法可以获取到本地的IP地址.一线常用的有这么些: 枚举本地网卡 using System.Net.NetworkInformation; using System.Net.Sockets ...

  8. 解决httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0

    httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for Se ...

  9. 龙哥量化:期货软件中红红绿绿的"多开,空开,空平,多平,多换,空换,双开,双平,换手"是什么意思?(转载的)

    期货投资者在看盘时,会看到红红绿绿的"多开,空开,空平,多平,多换,空换,双开,双平,换手",以快期专业版为例,如下图1所示: 图1.红绿开平数据(快期专业版) 这些数据里面的红色 ...

  10. Qt/C++开发经验小技巧306-310

    远程过很多人电脑远程分析问题,发现一个通病,比如明明修改了某个数据库或者配置文件,结果运行程序一看,还是旧的数据,死活都不行,查了半天程序,始终找不到问题所在.最终查到原来是程序读取的文件根本不是修改 ...