如何在playwright java和testng框架中录制以自定义文件名作为测试方法名称的测试视频

问题描述 投票:0回答:3

我将测试类定义为这样-

public class Sample extends BaseTest {
private LoginPage loginPage;

@Override
public void initialize() {
    loginPage = createInstance(LoginPage.class)
    browserContext = getBrowserContext();
}
@Test(testName = "sampleTestName", retryAnalyzer = RerunFailedTestCases.class)
public void sampleTestName() {
    loginPage.performLogin();
    loginPage.validateLogInSuccessful();
}

在 BaseTest 中,我正在初始化 BrowserContext 并启用测试视频录制 -

public abstract class BaseTest {
protected BrowserContext browserContext = browser.newContext(new Browser.NewContextOptions()
        .setIgnoreHTTPSErrors(true)
        .setPermissions(Arrays.asList("geolocation"))
        .setRecordVideoDir(Paths.get(VIDEOS_DIR)));
}

我的要求是-

  1. 用测试方法名称录制测试视频
  2. 仅保留失败测试的视频
java testng playwright playwright-java
3个回答
0
投票

这里是 Video 类的 Playwright for Java 文档,它展示了如何获取与页面关联的视频、删除视频(或决定应该删除视频)、另存为或告诉其使用什么文件名。

所以基本上在您的测试中的某个时刻或之前/之后挂钩,甚至可能在您的基类中,您可以告诉视频保存为测试名称(如果不确定如何获取该名称,请在下面添加资源),并在何时删除成功/没有失败(结合下面的资源来确定测试结果)。

希望有帮助!

一些资源

我不太熟悉 Java 及其运行程序,但您可能已经知道如何执行其中一些操作。如果没有,这里是我找到的一些资源:

获取测试结果

查找测试名称


0
投票

我想没有办法设置客户文件名。视频文件名都类似于“2b47a96bf34817179232490”,但您可以像这样设置文件的目录

Path videoDirectory = Paths.get("my-custom-path");
browser.newContext(new Browser.NewContextOptions().setRecordVideoDir(videoDirectory));

0
投票

页面关闭后,您可以使用

page.video().saveAs()
将视频保存到自定义路径。

BrowserContext context = browser
                    .newContext(new Browser.NewContextOptions()
                          .setRecordVideoDir(Paths.get("videos/")));

Page page = context.newPage();


page.close(); // Make sure the page is closed before calling page.video()
page.video().saveAs(Paths.get("abc.webm")); 
© www.soinside.com 2019 - 2024. All rights reserved.