[microsoft/playwright][问题] Playwright Trace Viewer 作为 Kubernetes 中的自托管服务

2024-02-19 708 views
9

下午好 !我将 Playwright Trace Viewer 作为 kubernetes 集群中的一项服务提出,我希望能够通过 GET 参数打开其中的跟踪,如此处所示 - https://playwright.dev/docs/trace-viewer#viewing-该服务使用 HTTPS路由 启动,并且可以正常工作以手动上传跟踪,但是当我尝试通过 GET 参数上传跟踪时,页面只会重新加载(参见视频)此外,当我尝试上传跟踪时这样,我在网络请求中看到奇怪的 404 错误,也许这是有某种联系的。我将整个会话作为 har 文件附加 - https://raw.githubusercontent.com/StasGrishaevTutu/files/main/playwright-trace-viewer.har 我还附加了 Dockerfile 的屏幕截图和服务的入口点.sh在 kubernets 中提出。我在这里缺少什么? 图像

https://github.com/microsoft/playwright/assets/115224622/80cee601-0324-4236-baf6-de1aebeeed81

回答

9

有趣的方法。我正在做的是将刚刚构建的跟踪部署到 Kubernetes,而不是使用整个 Playwright docker 镜像。基本上,您可以创建 Playwright 报告,然后从中获取跟踪文件夹并将其部署为 Web 服务器。这对我行得通。

9

实际上,我正在使用Allure TestOps作为报告服务,并尝试弄清楚如何将 URI 附加到那里的自托管 PW 跟踪查看器服务:)

9

啊,基本上,如果您启用跟踪并生成 Playwright html 报告,那么报告文件夹中将有一个跟踪文件夹,它是您可以部署的独立跟踪查看器。我认为这是获取跟踪查看器的最简单方法,但也可以从节点模块获取它。我猜您遇到的问题源于您正在使用的入口点。

4

@MindaugasMateika 明白了,我也会尝试在 Allure TestOps 中附加 PW html 报告,谢谢!尽管如此,我还没有结束这个问题,也许 PW 团队可以提出一些建议。

6

manifest.webmanifest 似乎无关,它不应该引起任何问题。

它重定向到这里:

图像

通过服务请求的实际网络服务器。这就是我们不保留 / 重定向的 searchParams 的地方。我在这里创建了一个修复程序:https ://github.com/microsoft/playwright/pull/27956

如果你使用这个,它会起作用:

https://playwright-trace-viewer.tutu.rc.rus.tutu.pro/trace/index.html?trace =...

如上所述,我们推荐不同的东西:

  • Playwright HTML 报告包含跟踪查看器和更多报告,在理想的情况下,您在每次测试运行后将 playwright-report 文件夹上传到某个存储服务器(例如 S3),然后粘贴到您的 GitHub PR 的链接,这就是我们正在做的事情在剧作家请参阅此处
  • 自托管跟踪查看器也是一种选择。您可以通过查看 NPM 包文件夹、自行构建或像您一样执行 show-trace 来获取最新的跟踪查看器。在您的场景中,Docker 映像非常大,因为它是我们的 Docker 映像,其中包括浏览器等。因此普通的 Node.js alpine Docker 映像也可以工作,并且与 1GB 相比可能只有 200MB 大。

我希望这有帮助!

2

@mxschmitt 感谢您的详细回答!带有地址的选项playwright-trace-viewer.tutu.rc.rus.tutu.pro/trace/index.html?trace=...给了我一个稍微不同的图片,即网络请求中的 500 错误。也许 CORS 有问题,或者我发送的链接不包含邮政编码扩展名?以防万一,我将附上更新的 har 文件(https://github.com/StasGrishaevTutu/files/raw/main/playwright-trace-viewer_2.har)和屏幕截图。 图像

6

您能帮我分类这个问题吗?这是错误还是功能请求?

5

@pavelfeldman我认为问题很可能出在我这边,我配置了一些东西或者做错了一些事情,我不认为这是一个错误。

7

我建议在网络面板的 DevTools 中向下滚动一点。您应该立即找到对跟踪文件的请求contexts?(可能不是跟踪),并查看它是否成功(2xx 状态代码)。此外,控制台可能会产生更有用的输出。

8

好的,我会继续努力。我会在搜索时关闭它,如果我得到一些东西,我会发布:)