4

我已经编写了使用 selenium 进行功能测试的测试。我正在使用 Java。我希望能够在测试之间创建结构。是否可以使用 jUnit 或 TestNG 来完成?

希望能够创建将产生如下报告的测试结构:

Top test FAIL
- Module1 test PASS
-- Module1Class1 test PASS
-- Module1Class2 test PASS
--- Module1Class3Method1 test PASS
--- Module1Class3Method2 test PASS
- Module2 test FAIL
-- Module2Class1 test FAIL
--- Module2Class1Method1 test PASS
--- Module2Class1Method2 test FAIL
--- Module2Class1Method3 test PASS
4

7 回答 7

3

我见过的用于组织 selenium 测试背后的代码的最佳模式是页面对象模式:

http://blog.m.artins.net/acceptance-tests-with-jbehave-selenium-page-objects/

这是一个 Java 帮助程序库:

http://code.google.com/p/webdriver/wiki/PageFactory

于 2009-08-26T05:52:40.317 回答
1

我刚刚找到了这个问题的解决方案,所以我把链接放在这里,以便其他人可以从中受益。 beust.com 不过 ,我还没有尝试过。

更新: 尝试后,我可以生成如下结果:

Module1.Class3.Method1 PASS
Module1.Class3.Method2 PASS
Module2.Class1.Method1 PASS
Module2.Class1.Method2 FAIL
Module2.Class1.Method3 PASS

失败的方法名称是“Method2”,它位于类“Class1”中,它是包“Module2”。

我已经使用了 TestNG 的所有标准可能性(很多)+ 我已经使用 ITestResult 方法覆盖了 TestListenerAdapter:getName() 和 getTestClass().getName()

这不是我真正想要的结构,但一点点解析可以告诉我失败的地方。另外,我不必用类名和包名来命名方法。

于 2009-08-28T12:36:02.677 回答
1

你不能,因为这不是 Selenium 解释测试的格式。Selenium 支持几种不同的语言语法,其中最简单的是 JS 和 HTML 表格行。如果您不想手写测试以适应某种语言语法,您可以使用 Firefox 的 Selenium IDE 的记录功能。

于 2009-08-25T08:25:21.053 回答
1

我建议查看 JUnit 或 TestNG XML 报告。您应该能够使用一些 XSLT 来转换它们,以提供具有您所需格式的新 HTML 报告。

于 2009-08-25T09:55:10.840 回答
1

你考虑过使用 Selenium 遥控器吗? http://seleniumhq.org/projects/remote-control/

于 2009-08-25T08:46:11.730 回答
1

在 TestNG 中,您可以通过配置文件 (testng.xml) 定义符合您需求的套件。您可以将其构建为每个模块都有一个测试组。测试组中的失败会使整个测试失败。但我认为你也可以在我不太熟悉的 JUnit 中做到这一点。

TestNG 的好处在于,您可以定义依赖关系。这些将强制执行测试的特定逻辑顺序,并将跳过依赖于失败测试的测试,而不是让它们也失败。使分析更容易,测试更早结束,因为所有那些可能注定要失败的测试都将被搁置一旁。

但就像我之前说的,我认为你也可以在 JUnit 中做到这一点。这更多的是品味问题。如果您另有决定,从 JUnit 转换为 TestNG 或反之亦然,这并不是一项艰巨的任务。

于 2009-10-07T06:18:37.543 回答
0

我不完全确定我是否在这里..但我认为这可以帮助你: http ://www.jamesnetherton.com/blog/2007/07/02/Creating-a-Selenium-test-suite/

你可以用它以一种非常简单的结构化方式对你的测试进行分组。

于 2009-08-25T11:59:21.807 回答