当前位置: 首页 > 知识库问答 >
问题:

Junit5中启用并行执行时Selenium测试的屏幕截图

祖翰音
2023-03-14

我使用页面对象模式。我在Watcher类中实现了TestWatcher接口来处理测试用例结果。为了截屏通过/失败的测试用例,我需要一个WebDriver的实例,可用的驱动程序。如果我声明驱动程序为静态,那么它在顺序模式下工作良好,但在打开并行执行时失败。看起来JUnit对单个类中的所有测试方法都使用单线程。如果我不将驱动程序声明为静态,那么来自TestWatcher方法的ExecttionContext对象不会给我测试方法失败的类名。我只能在定义了@Test的地方得到类名。请建议是否有实现它的方法,如果我在这里错过了什么。谢谢。

我已经尝试将驱动程序声明为静态和非静态。

共有1个答案

姜鸿畴
2023-03-14

我删除了静态WebDriver声明和ale,以便从ExtensionContext获取WebDriver的实例

Field field = context.getRequiredTestInstance().getClass().getDeclaredField("driver");
field.setAccessible(true);
WebDriver driver = (WebDriver) field.get(context.getRequiredTestInstance());
 类似资料:
  • 问题内容: 我正在将 SpecFlow 与 Selenium WebDriver 和 SpecRun一起 用作测试运行器来创建和执行自动化测试用例,并且正在寻找一种在测试执行报告中插入屏幕截图的解决方案。 我编写了一种在每个函数之后创建屏幕截图的方法。图像保存到特定位置,但是当我进行结果分析时,我也必须遵循报告和图像。最好将它们放在相同的位置(恰好在报告html中)。 有什么方法可以执行此操作(类

  • 我一个类有5到6个方法,想在不同的节点上并行运行方法,我有网格2设置,里面有4个节点。 下面是我的测试。xml 我有一个测试工具,它初始化了login、common和utils类 在我的测试类中,我扩展了测试工具,在@Beforemethod中,我调用了inilze方法 如果我运行测试,我会看到以下问题 两个浏览器在每个节点中打开一个,但只有一个浏览器启动应用程序,另一个不启动。 如果我遗漏了什么

  • 我正在使用MSpec使用硒网络驱动程序驱动一些自动化的用户界面测试。很像我在网上找到的例子。当测试失败时,我很难让它截图。 我在另一个问题上看到了一个评论,因为他们在示例Web规范中有一个。然而,在最新版本的Mspec(0.9.1)中似乎不存在。 在最新版本的mspec中,有没有其他方法可以做到这一点?最终,我将作为TeamCity工件生成HTML报告,并包含任何失败规范的屏幕截图。

  • 问题内容: 我需要一种获取功能测试屏幕截图的方法。现在,我正在使用带有C#绑定的Selenium 2。我非常想在测试结束时截取屏幕截图,以确保显示所需的页面。你们知道我可以将任何特定工具合并到C#代码中来触发屏幕截图吗?我找不到内置的Selenium 2解决方案(无需查看)。 问题答案: 要在Selenium 2中制作屏幕截图,您需要执行以下操作 我很快在IronPython Repl中对其进行了

  • 右键点击Run可以很好地工作。我用 Intellijidea 2017.1.5, Gradle, JunitPlatformVersion='1.0.0-M6', JunitJupiterVersion='5.0.0-M6'

  • 我发现Junit5从5.3版本开始就支持并行性,但我找不到任何关于如何使用csv源代码运行并行测试的参考。你有什么建议吗?