Tag: testng

参数化selenium测试与TestNG并行

首先,对不起我的英语,它不是那么完美:) 所以我面临以下问题:我正在尝试使用Selenium Grid和TestNg在不同的浏览器中运行并行测试,并且我在@BeforeTest方法中传递参数。 我的问题是,当每个测试都被初始化时,似乎他们将使用最后一个测试的参数。 因此,在此示例中,当我运行测试时,它将打开两个Chrome,而不是一个Firefox和一个Chrome。 (browser.getDriver()方法返回一个RemoteWebDriver) testng.xml文件: AbstractTest类: public class SeleniumTest { private static List webDriverPool = Collections.synchronizedList(new ArrayList()); private static ThreadLocal driverThread; public static BrowserSetup browser; @Parameters({ “browserName”, “browserVersion”, “platform”}) @BeforeTest() public static void beforeTest(String browserName, @Optional(“none”) String browserVersion, String platform) throws WrongBrowserException, WrongPlatformException { final BrowserSetup browser = new BrowserSetup(browserName, browserVersion, platform); driverThread […]

如何获取在testng拆卸方法中运行的测试方法的名称?

基本上,我有一个拆解方法,我想登录到控制台,测试刚刚运行。 如何获得该字符串? 我可以获取类名,但我想要刚刚执行的实际方法。 public class TestSomething { @AfterMethod public void tearDown() { system.out.println(‘The test that just ran was….’ + getTestThatJustRanMethodName()’); } @Test public void testCase() { assertTrue(1==1); } } 应该输出到屏幕:“刚刚运行的测试是…. testCase” 但是,我不知道getTestThatJustRanMethodName实际上应该是什么魔法。

TestNG报告中的自定义测试方法名称

我正在开发一个项目,我需要以编程方式调用TestNG(使用数据提供程序)。 一切都很好,除了在报告中,我们得到@Test方法的名称,这是一个处理许多情况的通用方法。 我们希望在报告中获得一个有意义的名称。 我正在研究这个并发现了3种方法,但不幸的是,所有方法都失败了。 1)实施ITest 我在这里和这里找到了这个 我一进入@Test方法就设置了我想要的名称(对于我试过的所有3种方式,这就是我设置名称的方式)。这个名字是从getTestName()返回的。 我观察到的是getTestName()在我的@Test之前和之后被调用。 最初,它返回null(为了处理NullPointerException,我返回“”而不是null),之后它返回正确的值。 但我不认为这会在报告中反映出来 编辑 :还尝试按照artdanil的建议从@ BeforeMethod设置名称 2和3 两者都基于上面第二个链接中给出的解决方案 通过覆盖XmlSuite中的setName,我得到了 Exception in thread “main” java.lang.AssertionError: l should not be null at org.testng.ClassMethodMap.removeAndCheckIfLast(ClassMethodMap.java:58) at org.testng.internal.TestMethodWorker.invokeAfterClassMethods(TestMethodWorker.java:208) at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:114) at org.testng.TestRunner.privateRun(TestRunner.java:767) … 通过重写toString(),我在日志中看到这些(带有我的注释),但报告中没有更新 [2013-03-05 14:53:22,174] (Main.java:30) – calling execute [2013-03-05 14:53:22,346] GenericFunctionTest.(GenericFunctionTest.java:52) – inside constructor [2013-03-05 14:53:22,372] GenericFunctionTest.toString(GenericFunctionTest.java:276) – returning **//this followed […]

将一种测试方法的输出传递给另一种方法testng

我必须在testng中编写以下unit testing用例: saveProductTest,如果产品详细信息在DB中成功保存,将返回productId。 modifyProductTest,它应该使用以前保存的productId作为参数。 我正在使用testNg数据提供程序从XML文件中获取saveProductTest和modifyProductTest方法的产品详细信息输入(PrdouctName,ReleaseDate)。因为productId是在save方法中生成的,所以我必须将它传递给modify方法。 将一个测试方法的输出传递给testng中的另一个方法的最佳方法是什么?

TestNG ERROR在类路径中找不到类

我正在尝试通过命令行运行testng,我在类路径中有以下内容: testng jar,jar编译的测试用例文件和其他必需的jar。 testng.xml指向层次结构中的适当类。 Testng不运行而是抛出: [TestNG] [ERROR] Cannot find class in classpath: (name of testcase file) 之前我遇到过同样的问题,我刚才补充道。 在classpath它解决了这个问题。 但这一次它似乎没有解决它。 有任何变通方法吗? 提前致谢。

java中的静态Webdriver实例同步

GlobalVariables类包含在我的框架中使用的不同变量,其中一个是WebDriver实例: public class GlobalVariables { public static WebDriver driver; //Some other static global variables required across my framework public GlobalVariables(String propertiesFile) { initializeVariables(propertiesFile); } public void initializeVariables(String propertiesFile) { GlobalInitializer obj=new GlobalInitializer(); obj.initialize(String propertiesFile); } } GlobalInitializer包含初始化所有GlobalVariables的方法: public class GlobalInitializer extends GlobalVariables { public void initialize(String propertiesFile) { //Some logic to read properties file and […]

如何在Jenkins上运行TestNG测试

我正试图从Jenkins运行TestNG测试(在一个包含的Java项目中),但没有运气。 似乎Jenkins的TestNG插件( https://wiki.jenkins-ci.org/display/JENKINS/testng-plugin )只发布了TestNG测试的结果,但实际上并没有运行测试类……或者我错了吗? 在任何情况下,我如何在Jenkins的TestNG项目中实际运行TestNG测试,或者甚至可能? 例如,我是否必须使用命令行语句或批处理文件(在Windows Server 2008上)? 任何帮助非常感谢。 PS我尝试在Jenkins中输入一个post-build命令行,以便运行TestNG测试项目,但很难找到TestNG的类路径。 我发布了一个关于从命令行运行TestNG的早期问题,我无法正常工作,所以我放弃了这条路线: 如何从命令行运行TestNG

TestNG启动期间发生内部错误

我创建了一个TestNG类(FirstTest.java),当我将测试用例作为TestNG Test运行时,我收到以下错误。 在“启动FirstTest”期间发生内部错误。 显示java.lang.NullPointerException Eclipse版本:Luna Service Release 2(4.4.2) 如果有人知道请帮忙!

Assertion失败时如何继续执行

我正在使用Selenium RC使用Java与eclipse和TestNG框架。 我有以下代码片段: assertTrue(selenium.isTextPresent(“Please enter Email ID”)); assertTrue(selenium.isTextPresent(“Please enter Password”)); 第一个断言失败,执行停止。 但我想继续进一步的代码片段。

如何从命令行运行TestNG

我究竟如何从命令行运行.java TestNG项目? 我已阅读TestNG文档,并尝试以下无效: C:\projectfred> java org.testng.TestNG testng.xml …在我的项目中使用以下testng.xml文件: 我得到的错误是这样的: Exception in thread “main” java.lang.NoClassDefFoundError: org/testng/TestNG Caused by: java.lang.ClassNotFoundException: org.testng.TestNG at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) Could not find the main class: org.testng.TestNG. Program will exit. 显然,我没有在命令行中正确引用TestNG。 有谁知道如何使这个工作?