【问题标题】:Recording Selenium test execution with Expression Encoder 4 SDK fails on build server在构建服务器上使用 Expression Encoder 4 SDK 记录 Selenium 测试执行失败
【发布时间】:2023-03-31 13:59:01
【问题描述】:

我们每晚在 TeamCity 构建服务器上运行 Selenium 测试。

我们有一些测试在夜间运行期间间歇性地失败。

失败测试的截图并没有真正给出答案,所以我想记录下失败测试的执行情况。

我已经实现了以下内容来记录我想要调查的测试的执行情况。

        ScreenCaptureJob = new ScreenCaptureJob
        {
            CaptureRectangle = Screen.PrimaryScreen.Bounds,
            ShowFlashingBoundary = true,
            OutputPath = outputPath
        };

        ScreenCaptureJob.Start();

        Debug.WriteLine($"Status: {ScreenCaptureJob.Status}");

        Test code...

        ScreenCaptureJob.Stop();

如果测试失败,我会对捕获的视频进行编码并保存。 当我在本地运行测试时,这工作正常。

但是,当我在构建服务器上运行它时,ScreenCaptureJob 的状态为 NotStarted。

没有临时文件写入磁盘,因此当测试失败时没有任何要编码的内容。

        MediaItem mediaItem = new MediaItem(fileName);
        Job job = new Job();
        job.MediaItems.Add(mediaItem);
        job.ApplyPreset(Presets.VC1HD720pVBR);
        job.OutputDirectory = outputPath;
        job.Encode();

当我尝试从临时文件创建新的 MediaItem 时发生异常。

TestCleanup method UITests.FailingTest.TestCleanup threw exception. Microsoft.Expression.Encoder.InvalidMediaFileException: Microsoft.Expression.Encoder.InvalidMediaFileException: File not found.

EE4 安装在构建服务器上,我已经用 EE4 程序本身测试了捕获。

有人知道为什么 ScreenCaptureJob 无法在服务器上启动吗?

【问题讨论】:

  • 我也遇到了与 ScreenCaptureJob 相同的问题。

标签: c# selenium teamcity windows-server-2012-r2 expression-encoder-4


【解决方案1】:

在 Windows Server 上运行测试需要您添加该功能

用户界面

基础架构 > 桌面体验

安装 Microsoft Expression Encoder 所需的缺失依赖项。

如果您已经这样做但它不起作用,请阅读 this article,它非常有帮助,并且有一个指向 GitHub 配置文件的链接,其中包含用于视频录制的代码。作者通过界面使用 ScreenCaptureJob,听起来很棒。

【讨论】:

  • 感谢您的回复。这两个功能都在服务器上启用。正如我最初所说,测试正在构建服务器上运行。在本地运行测试时,使用 ScreenCaptureJob 进行录制可以正常工作。它只是在服务器上不起作用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-27
  • 2011-10-09
  • 2018-05-22
  • 1970-01-01
  • 1970-01-01
  • 2021-03-28
相关资源
最近更新 更多