Tag: testng

如何在TestNG中生成具有不同名称的测试?

我正在使用TestNG在Java中运行基于Selenium的测试。 我有一堆重复测试。 通常,除测试名称和一个参数外,它们都是相同的。 我想自动生成它。 我在考虑使用工厂。 有没有办法生成不同名称的测试? 最好的办法是什么? 至于现在我有类似下面的东西,我想创建像LinkOfInterestIsActiveAfterClick这样的10个测试 @Test(dependsOnGroups=”loggedin”) public class SmokeTest extends BrowserStartingStoping{ public void LinkOfInterestIsActiveAfterClick(){ String link = “link_of_interest”; browser.click(“*”,link); Assert.assertTrue(browser.isLinkActive(link)); } } 我的XML套件是从Java代码自动生成的。 测试名称对于记录哪个链接处于活动状态以及哪个链接不活动至关重要。

Selenium Java(maven项目):TestNG结果与ReportNG不同

我尝试运行testng.xml ,结果如下: =============================================== 默认测试 测试运行:14,失败:6,跳过:0 默认套件 总测试运行:14,失败:6,跳过:0 =============================================== 现在,我禁用了deafult TestNG监听器并在testng.xml添加了ReportNG testng.xml 。 testng.xml 。 看起来像这样: 按照这些步骤,我在maven的pom.xml添加了velocity , guice和reportng依赖项。 执行testsuite testng.xml ,创建了以下文件夹(标记为红色框)。 打开index.html ,结果如下: 正如预期的那样,ReportNG应该创建一个输出文件夹,在我的场景中没有注意到。 其次,结果不同。 另外,报告index.html看起来不应该是它应该是多少。 有人能说出什么问题吗? 一些细节供您参考: 操作系统:Windows 7 Guice.jar版本: guice-4.1.0 ReportNG版本: reportng-1.1.4 速度版本: velocity-dep-1.4 TestNG版本: testng-6.11 Selenium版本: selenium-java-3.5.3 Eclipse: eclipse oxygen 我的测试用例如下: public class MwSites { WebDriver driver; @BeforeTest public void setup () […]

Java运行时环境检测到致命错误。 EXCEPTION_ACCESS_VIOLATION

我有java 1.6,maven 2,activeMQ 5.5和testngfunction测试。 当我在Idea中启动它然后确定,但是当我尝试从控制台使用maven启动它们时,然后在尝试通过activeMQ发送消息后进程暂停,并且在一段时间后崩溃并在日志中出现以下错误: # # A fatal error has been detected by the Java Runtime Environment: # # EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x000000006d92f7a6, pid=5716, tid=7000 # # JRE version: 6.0_27-b07 # Java VM: Java HotSpot(TM) 64-Bit Server VM (20.2-b06 mixed mode windows-amd64 compressed oops) # Problematic frame: # V [jvm.dll+0x9f7a6] # # If you […]

TestNG.xml套件包含所有包的所有文件

即将用Maven + TestNG + Selenium实现测试框架。 如何声明一个告诉TestNG运行所有测试的suite.xml? 我已经尝试了所有这些无济于事: 我需要指定具有不同参数的不同套件配置,但所有测试都运行。 我可以明确地挖掘的每个例子都列出了每个对我来说都不太理智的类或包。

使用testng中的DataProvider从文件中读取数据

假设我有一个包含以下数据的文本文件 username=testuser password=testpassword email=test@test.com address=testaddress zipcode=12345 或者我有一个包含以下数据的XML testuser testpassword test@test.com testaddress 我有一个测试如下 public class DPTest { @Test(dataprovider=”testdp”) public void userTest_01(String username, String Password) { //Test goes here } } 另一堂课 public class DPTest2 { @Test(dataprovider=”testdp”) public void userTest_02(String email, String address, String password) { //Test goes here } } 我的dataprovider可以读取上面提到的文本文件或XML中的值并将其提供给测试方法吗? 根据我的理解,数据提供程序将读取文本文件中的所有行并将其提供给测试方法,并抛出错误说“数据提供程序正在尝试提供6个参数,但测试只能接受2个参数”? 请帮帮我。

软断言的工作原理

我知道继续测试,即使一个或多个断言在TestNG中失败。 我在下面提到了链接,以便在我的项目中实现软断言。 http://beust.com/weblog/2012/07/29/reinventing-assertions/ http://seleniumexamples.com/blog/guide/using-soft-assertions-in-testng/ http://www.seleniumtests.com/2008/09/soft-assertion-is-check-which-doesnt.html 但我不理解代码执行的流程,如函数调用,FLOW。 请帮助我理解柔软的工作流程。 码: import org.testng.asserts.Assertion; import org.testng.asserts.IAssert; //Implementation Of Soft Assertion public class SoftAssertions extends Assertion{ @Override public void executeAssert(IAssert a){ try{ a.doAssert(); } catch(AssertionError ex){ System.out.println(a.getMessage()); } } } //Calling Soft Assertion SoftAssertions sa = new SoftAssertions(); sa.assertTrue(actualTitle.equals(expectedTitle), “Login Success, But Uname and Pwd are wrong”); 注意:即使上面的断言失败,执行也会继续 谢谢Mahesh

如何在Selenium WebDriver中使用@FindBy注释

我想知道我的代码有什么问题,因为当我尝试测试我的代码时,我什么也得不到。 public class SeleniumTest { private WebDriver driver; private String nome; private String idade; @FindBy(id = “j_idt5:nome”) private WebElement inputNome; @FindBy(id = “j_idt5:idade”) private WebElement inputIdade; @BeforeClass public void criarDriver() throws InterruptedException { driver = new FirefoxDriver(); driver.get(“http://localhost:8080/SeleniumWeb/index.xhtml”); PageFactory.initElements(driver, this); } @Test(priority = 0) public void digitarTexto() { inputNome.sendKeys(“Diego”); inputIdade.sendKeys(“29”); } @Test(priority = 1) public […]

在运行时跳过TestNg测试

我没有很多使用TestNG的经验,所以你知道在Java Runtime中跳过或忽略一些测试。 我的想法是编写@ Before-annotiation测试,如果失败,将忽略传入的测试。 我尝试使用JUnit和assume方法,但我不喜欢它,因为如果“before-test”失败,传入的测试将突出显示为已通过,并且它不是一个可靠的解决方案,因为它具有模糊的含义。 如果您对TestNG有任何经验,请帮助我,我将不胜感激。

如何运行带有故障安全的TestNG套件而无需解压缩依赖jar?

我想使用包含在依赖jar中的TestNG套件文件来执行集成测试。 这里将讨论设置pom.xml的详细信息 这是我目前拥有的pom文件。 问题在于我需要定义套件文件的部分: 4.0.0 test test-runner 1.0.0-SNAPSHOT ${test.library.groupId} ${test.library.artifactId} ${test.library.version} ${test.library.groupId} ${test.library.artifactId} ${test.library.version} tests org.apache.maven.plugins maven-failsafe-plugin 2.18 integration-test verify ${test.suite}.xml <!– << ${test.library.groupId}:${test.library.artifactId} 可以通过为Jenkins作业中的参数提供值来执行测试: -Dtest.library.groupId=com.example.test -Dtest.library.artifactId=example -Dtest.library.version=2.0.1 -Dtest.suite=smoke 如果套件文件在本地可用,这一切都可以正常工作,但我想使它只能在jar中使用套件文件(与测试类相同)。 没有拆包。 所以问题是:如何定义套件文件的位置(包含在依赖项中)? 这是有问题的部分: [whatComesHere?]${test.suite}.xml 如何在测试jar中包含的套件文件中指出failsafe / surefire? 或者这是不可能的,我只需要为了能够运行特定的套件文件而解压缩jar?

如何测试.class文件是否已创建?

我想对我的代码进行unit testing,必须创建一个.java文件来编译它,然后创建相应的.class文件。 如何创建测试以查看是否创建了“.class”文件? 我已经为它的存在添加了测试,现在我正在尝试测试该文件是一个有效的类文件。 我试过了 try { Class.forName(“Hello”); throw AssertError(); } catch( ClassNotFoundException e ) { } program.createClass(); Class.forName(“Hello”); 但我真的不知道如何动态地将创建文件的路径添加到类路径中。 编辑 加载的URL类可以完成工作。 这就是我的测试现在的样子。 @Test void testHello() throws MalformedURLException, ClassNotFoundException { URL[] url = { new URL(“file:/home/oreyes/testwork/”) }; try { new URLClassLoader(url).loadClass(“Hello”); throw new AssertionError(“Should’ve thrown ClassNotFoundException”); } catch ( ClassNotFoundException cnfe ){ } c.process(); new […]