如何让领导轻松在本地查看Allure报告
如何让领导轻松在本地查看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()
操作步骤:
- 将上述脚本保存在与Allure报告的
index.html
文件相同的目录下。
- 执行脚本,并访问提供的地址。
通过这种方法,我们可以成功访问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报告的更多相关文章
- 如何利用jenkins插件查看allure报告-----完整篇(解决404和无数据问题)
背景: python3+appium+pytest+allure写了安卓的自动化脚本,在windows本机pycharm上跑通过后生成了allure报告. 公司jenkins搭建在linux服务器上 ...
- pytest框架之allure报告生成
一.关于安装 allure是跟pytest一起集成使用的,所以需要同时安装pytest以及allure-pytest插件: pip install pytest pip install allure- ...
- Jenkins(5)生成allure报告
前言 jenkins集成了allure插件,安装插件后运行pytest+allure的脚本即可在jenkins上查看allure报告了. allure安装 在运行代码的服务器本机,我这里是用的dock ...
- store.js - 轻松实现本地存储(LocalStorage)
store.js 是一个兼容所有浏览器的 LocalStorage 包装器,不需要借助 Cookie 或者 Flash.store.js 会根据浏览器自动选择使用 localStorage.globa ...
- git 远程新建分支后,本地查看不到
使用以下命令同步 git remote # 列出所有远程主机git remote update origin --prune # 更新远程主机origin 整理分支git branch -r # 列出 ...
- npm run build 打包后,如何运行在本地查看效果(Nginx服务)
这段时间,研究了一下vue 打包的很慢的问题.但是当我 npm run build 打包后,在本地查看效果的时候,活生生被我老大鄙视了,因为我打开了XAMPP.他说:你怎么不用Nginx啊?用这个一堆 ...
- allure报告定制(pytest+jenkins)
环境及安装可查看 pytest+jenkins安装+allure导出报告 要让allure报告更漂亮,更直观,需要在脚本中写入allure特性 一开始allure调用step().story().fe ...
- pytest系列(四)- pytest+allure+jenkins - 持续集成平台生成allure报告
pytest是什么 pytest是python的一款测试框架,拥有unittest的功能并比它更丰富. allure是什么 有非常多的优秀的测试框架,但却是有非常少优秀的报告工具可以展示非常清楚的用例 ...
- java版集成Allure报告--注释使用说明
testNG集成Allure报告--注释使用说明 前置条件 首先需要下载allure的zip包解压,然后配置环境变量即可(win).allure的GitHub下载地址: 然后执行testn.xml或者 ...
- Docker DevOps实战:Docker+Jenkins+Python+Pytest+Allure(1)- 创建Jenkins容器、安装Python环境、安装项目依赖类库、安装Allure报告插件
前言: 本文实操笔记参照菠萝笔记,安装过程中的坑大家可以参考下 创建Jenkins容器 # 下载Jenkins镜像 [root@localhost ~]# docker pull jenkins/je ...
随机推荐
- Git之实战命令
相关概念: HEAD: 说简单一点,HEAD就是当前活跃分支的游标. 形象的记忆就是:你现在在哪儿,HEAD就指向哪儿,所以Git才知道你在那儿! 不过HEAD并非只能指向分支的最顶端(时间节点距今最 ...
- golang之操作kafka
安装第三方包: go get github.com/IBM/sarama 生产者实例: package main import ( "fmt" "github.com/I ...
- Centos7下的开机自启动
记录服务器每次重启之后启动一些服务. systemd systemd简介 CentOS7已不再使用chkconfig管理启动项,而是使用systemd.关于systemd的衍生和发展,可以参见< ...
- Threejs的三维坐标系
在三维空间中,所有的物体和相机都需要基于一个统一的坐标系来进行定位和操作.理解坐标系的基本概念,对于创建稳定.准确的三维效果至关重要. 基础 Three.js 采用的是右手坐标系,这意味着如果你将右手 ...
- 深入理解 Task.Delay 的定时精度及其影响因素
1. 原因 在日常开发中,Task.Delay 是一个常用的异步延迟方法.然而,Task.Delay 的定时并不总是非常准确.例如: 系统负载 Task.Delay 的定时精度可能会受到系统负载的影响 ...
- 一款渗透测试信息收集集成工具--mitan密探
本工具仅供安全测试人员运用于授权测试, 禁止用于未授权测试, 违者责任自负.作者及本公众号相关负责人不对您使用该工具所产生的任何后果负任何法律责任,在扫描模块使用多线程,在测试过程中根据目标的实际情况 ...
- 聊一聊 C#后台线程 如何阻塞程序退出
一:背景 1. 讲故事 这篇文章起源于我的 C#内功修炼训练营里的一位朋友提的问题:后台线程的内部是如何运转的 ? ,犹记得C# Via CLR这本书中 Jeffery 就聊到了他曾经给别人解决一个程 ...
- Failed to start bean 'webServerStartStop'; nested exception is org.springframework.beans.FatalBeanException: ServletWebServerFactory implementation
使用jeecgboot报错 jeecg单测跑不起来,报错如下 Failed to start bean 'webServerStartStop'; nested exception is org.sp ...
- 转载 OKHttp使用详解
一,OKHttp介绍 okhttp是一个第三方类库,用于android中请求网络. 这是一个开源项目,是安卓端最火热的轻量级框架,由移动支付Square公司贡献(该公司还贡献了Picasso和Le ...
- Qt数据库应用19-图片转pdf
一.前言 用户的需求真的是千奇百怪,刚做完不同页面横向纵向排版的需求,又来个需要图片转pdf的需求,提供静态函数直接使用. 经过这么些年的社会的毒打,我的原则是:用户是上帝和大爷,尽量站在用户的角度换 ...