Tag: testng

如何设置InternetExplorerDriver以使其正常工作

我正在使用WebDriver,我已经下载了InternetExplorerDriver,并想知道在下载后我用它做了什么? 这说是把司机放在我的路上。 不确定他们到底在说什么。 有没有人使用过这个,如果可以的话,你能提供一些如何设置它的详细步骤吗? 我收到以下错误: 必须通过webdriver.ie.driver系统属性设置驱动程序可执行文件的路径 我下载了IE和Chrome驱动程序的可执行文件。 我在哪里设置它?

使用maven-surefire运行测试时,在@BeforeClass之后发生Spring-Autowiring

我在dependency injection(Spring autowiring)和maven-surefire方面遇到了一些问题。 以下测试在使用TestNG在eclipse中运行时没有问题:注入service-object,然后调用@BeforeClass -method。 @TransactionConfiguration(defaultRollback=false) @ContextConfiguration(locations={“/testContext.xml”}) public class MyServiceTest extends AbstractTransactionalTestNGSpringContextTests { @Autowired private MyService service; @BeforeTest public void setup() { System.out.println(“*********************”+service); Assert.assertNotNull(service); } 但是,当我使用maven-surefire运行相同的测试用例时,首先调用setup(),这会导致测试失败: [INFO] — maven-surefire-plugin:2.7.2:test (default-test) @ myserver — [INFO] Surefire report directory: D:\… ——————————————————- TESTS ——————————————————- Running TestSuite **************************null 2011-03-04 11:08:57,462 DEBUG ionTestExecutionListener.prepareTestInstance – Performing dependency injection for test context […]

混合Hamcrest和TestNG

有没有人将Hamcrest与TestNG集成在一起,以便它的匹配器可以很容易地用于TestNG断言?

无法在testng.xml文件中为不同的浏览器运行回归组

我已经配置了testng.xml文件以在不同的浏览器中运行Regression组.Below是相同的testng.xml代码。 当我将鼠标hover在标签上时,它会显示一条错误消息“ 元素类型的内容”测试“必须匹配”(方法选择器?,参数*,组?,包?,类?) “。在测试中class level我已经为回归测试正确定义了所有参数。但是我仍然看到testng.xml文件中的错误。你们中的任何一个人都可以看看并帮助我! 请找到我用于自动化的测试用例 @Test(groups={“Regression”},dataProvider = “hashmapdataprovider”,dataProviderClass =Dataprovider.Dataprovider_Hashmap.class,priority=1 ) public void validLogin(Map hm) throws IOException { pageobjects.Signin(); driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS); OriginalExcelRW Excel = new OriginalExcelRW(“F:\\anand_acer\\selenium\\rediffbooks.xlsx”); XSSFSheet s1 = Excel.Setsheet(“Sheet1”); SoftAssert s_assert = new SoftAssert(); if (hm.get(“Executionflow”).contains(“anand”)) { pageobjects.Username1(hm.get(Excel.Readvalue(s1, 0, 2))); pageobjects.pass1(hm.get(Excel.Readvalue(s1, 0, 3))); //s_assert.assertEquals(hm.get(Excel.Readvalue(s1, 0, 2)), hm.get(Excel.Readvalue(s1, 0, 3)), “both the usssser Ideee and […]

Java TestNG跨多个测试进行数据驱动测试

我在电子商务平台上测试了一系列商店,每个商店都有一系列属性,我正在考虑自动化测试。 是否有可能让数据提供者在测试套件中提供数据,而不仅仅是在TestNG中进行测试? 我试图不使用testNG.xml文件作为机制,因为这些属性直接来自数据库调用。 [“StoreName”, “username”, “password”, “credit-enabled”, “items-store”, “shipping-location”, ] 我需要自动化做的是以下内容: @Test使用当前数据集行中的用户名和密码登录。 @TestvalidationStoreName和items-store @Test导航到管理,并根据items-store值validation商店的信用启用设置和商店的送货地点是否正确。 但是这里的每一步都必须是它的独立测试。

如何在AfterMethod中的TestNG测试失败?

我想在每次测试后检查一些外部日志文件,如果在执行期间出现ary错误。 在AfterMethod中抛出exception不起作用,因为TestNG对它的处理方式不同:它只会使配置方法失败而不是前面的测试。 我的方法是这样的: @AfterMethod(alwaysRun = true) protected void tearDown(ITestResult result) { if (thereWasAProblemDuringTestExecution()) { result.setStatus(ITestResult.FAILURE); result.setThrowable(getSomeThrowableSomebodyStoredAnywhere()); } // doing other cleanUp-tasks } 但是,我的Eclipse TestNG插件仍然表示测试通过了。 在配置方法中是否可能(以及如何)使测试失败(而不仅仅是配置方法)?

动态方法调度

在互联网上有很多关于动态调度的信息,我觉得自己像个鸡,因为我无法实现它。 请帮我。 这是我想要做的。 ClassA{ public void createReq(){ } public String postReq(){ } } ClassB{ @Test public void myTest(){ Class A = new ClassA(); a.createReq(); String test = a.getResponse(); /* Not sure how do i do this part */ } 所以,我在myTest方法中得到一个字符串’test’ 。 我想创建一个扩展ClassB的ClassC ,并编写一个方法,用于在步骤( a.getResponse() )之后很快validationmyTest返回的字符串。 如果没有实施ClassC ,我只想简单地结束测试。 如果只存在ClassC并实现validation方法,我希望validation完成。 我该怎么做呢? 请帮忙。 谢谢。

Selenium java浏览器会话重用

我的问题如下:如何将浏览器会话重用于不同java类的测试? 我的浏览器打开如下: public class OpenBrowser { public static WebDriver driver; @BeforeSuite public static void openb() { // Create a new instance of the Firefox driver driver = new FirefoxDriver(); driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); } } 然后我必须使用一些凭据登录到一个网站,并且在记录之后我想要执行其他测试,我不想为每个测试登录,因为我需要制作很多它们并为每个测试登录花了十年时间。 例如,流程如下所示:登录 – >推送某个组件 – >添加一些值 – >生成报告。 比之后我想生成另一个组件的其他报告但是当我尝试它时给出一个空指针exception。 有任何想法吗? 🙂

如何在Java中继续登录同一行?

这类似于这个问题,它涉及一个bash文件 。 我们创建了一个日志,在我们运行TestNG测试时输出到控制台: private Log log = LogFactory.getLog(xyz.class); 稍后,在测试期间,日志中充满了详细信息,以便让我们知道到底在做什么: log.info(“Setting browser…”); this.browser = browser; log.info(“Completed.”); 现在它按照您的预期打印出来: Setting browser… Completed. 我想在同一行打印出来: Setting browser… 几毫秒后: Setting browser…Completed. 这可能与LogFactory一起使用吗?

如何在Java代码中访问gradle参数

我有一些java的经验,我是gradle的新手,我加入了一个项目,我必须修改gradle文件。 这是我的build.gradle文件 apply plugin: ‘java’ apply plugin: ‘idea’ sourceCompatibility = 1.5 version = ‘1.0’ dependencies { testCompile ‘org.testng:testng:6.9.10’, ‘org.seleniumhq.selenium:selenium-java:2.53.0’ } test { useTestNG() testLogging.showStandardStreams = true } 然后我使用mac终端./build test的以下命令运行我的测试套件 我想传递一个名为environment的参数。根据这个参数的值,我需要配置我的url并为该环境运行测试。 像./build test environment=dev或./build test environment=qa 在我的java代码中,我会做这样的事情 if(env == ‘dev’) { url = “my dev url”; user = “my dev user name” } else if(env == […]