我将测试类定义为这样-
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)));
}
我的要求是-
这里是 Video 类的 Playwright for Java 文档,它展示了如何获取与页面关联的视频、删除视频(或决定应该删除视频)、另存为或告诉其使用什么文件名。
所以基本上在您的测试中的某个时刻或之前/之后挂钩,甚至可能在您的基类中,您可以告诉视频保存为测试名称(如果不确定如何获取该名称,请在下面添加资源),并在何时删除成功/没有失败(结合下面的资源来确定测试结果)。
希望有帮助!
我不太熟悉 Java 及其运行程序,但您可能已经知道如何执行其中一些操作。如果没有,这里是我找到的一些资源:
获取测试结果
查找测试名称
我想没有办法设置客户文件名。视频文件名都类似于“2b47a96bf34817179232490”,但您可以像这样设置文件的目录
Path videoDirectory = Paths.get("my-custom-path");
browser.newContext(new Browser.NewContextOptions().setRecordVideoDir(videoDirectory));
页面关闭后,您可以使用
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"));