我目前正致力于使用Selenium与TestNg和Java自动化我的测试。我可以在测试运行时截取屏幕截图,但在某些情况下,测试会在理想情况下通过,但应该失败。
那么,是否有任何java工具可以帮助记录正在运行的Selenium测试?
基本上,我想在我的框架中添加screen-cast。我在web / SO上搜索了很多但是找不到任何相关的资源。欢迎任何帮助或建议。
答案 0 :(得分:4)
您可以使用java代码记录您的测试视频,要运行此代码,您还需要将jar文件添加到您的项目中: 参考:Road to automation
@BeforeSuite
public void startRecording() throws Exception {
GraphicsConfiguration gc = GraphicsEnvironment
.getLocalGraphicsEnvironment()
.getDefaultScreenDevice()
.getDefaultConfiguration();
this.screenRecorder = new ScreenRecorder(gc,
new Format(MediaTypeKey, MediaType.FILE, MimeTypeKey, MIME_AVI),
new Format(MediaTypeKey, MediaType.VIDEO, EncodingKey, ENCODING_AVI_TECHSMITH_SCREEN_CAPTURE,
CompressorNameKey, ENCODING_AVI_TECHSMITH_SCREEN_CAPTURE,
DepthKey, 24, FrameRateKey, Rational.valueOf(15),
QualityKey, 1.0f,
KeyFrameIntervalKey, 15 * 60),
new Format(MediaTypeKey, MediaType.VIDEO, EncodingKey, "black",
FrameRateKey, Rational.valueOf(30)),
null);
this.screenRecorder.start();
}
@AfterSuite
public void stopRecording() throws Exception {
this.screenRecorder.stop();
}
答案 1 :(得分:3)
另一种选择是在BrowserStack或Sauce Labs上远程运行测试 - 这两项服务都提供了测试运行视频录制功能。
答案 2 :(得分:2)
一种方法是在每个步骤后进行屏幕截图,然后将它们组合成视频。 this questions的答案为此任务提供了几个候选库。
另一个想法是使用一些浏览器插件在执行测试时实际进行截屏视频。但我不确定如何开始录制过程。也许可以用硒发送开始/停止记录的捷径,但我不确定这是否有效。 For such plugins I can't offer more than a google search
答案 3 :(得分:2)
您可以查看由Groupon创建和使用的Selenium-Grid-Extras。他们构建了一个能够使用Selenium Grid进行描述的框架。我曾经尝试过一次,似乎工作正常。也许它适合您的需求。
答案 4 :(得分:1)
我将进一步采取 thebobblob的答案。我用 groupon's Selenium-Grid_Extras 重新配置了selenium grid-hub环境,它就像魅力一样。第一次设置节点/集线器时,您需要回答几个问题。在某个时刻运行java -jar Selenium-Grid-Extras-Jar.jar
之后,它会询问您要记录的视频数量,默认情况下为20.之后,测试运行所有记录都可通过hub:port访问,如图所示here
更进一步,您可以使用groupon api控制测试中的录音。你有灵活性。有一个开放的issue但它可以让你选择通过休息服务
来操纵它答案 5 :(得分:0)
您可以使用Robot类在需要时从您的java代码中自动截取屏幕截图。它是java标准库的一部分。
在测试的开始时创建机器人:
Rectangle screen = new Rectangle(Toolkit.getDefaultToolkit().getScreenSize());
Robot robot = new Robot();
然后,当您需要截取屏幕截图(测试中的每一步)时,请致电:
BufferedImage capture = robot.createScreenCapture(screen);
ImageIO.write(capture, "jpg", new File("c:/some_distinct_name_designating_test_phase_and_number.jpg"));