【发布时间】:2016-10-26 08:21:45
【问题描述】:
我想创建一个 .xml 文件(将来我将创建批处理文件以从 Jenkins 运行它)以便能够按顺序运行每个测试类。我应该如何编写每个测试?
这是我的脚本示例:
package CRM;
import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
public class logowanie {
WebDriver driver = new FirefoxDriver();
@Test
public void test() throws InterruptedException {
driver.findElement(By.id("username")).sendKeys("***");
driver.findElement(By.id("password")).sendKeys("***");
driver.manage().timeouts().implicitlyWait(6, TimeUnit.SECONDS);
driver.findElement(By.id("_submit")).click();
driver.manage().timeouts().pageLoadTimeout(10, TimeUnit.SECONDS);
}
@BeforeMethod
public void beforeTest() {
driver.manage().window().maximize();
driver.get("http://crm.serwis-grupowy-vgp.pl/login");
}
@AfterMethod
public void afterTest() throws InterruptedException {
driver.findElement(By.xpath("//a[@href='/logout']")).click();
driver.quit();
}}
这是 .xml 脚本:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Suite" parallel="false" preserve-order="true">
<test name="Test">
<classes>
<class name="PP_MartynaDealer.podstrona_mcall_MI"/>
<class name="PP_MartynaDealer.podstrona_HTG_czerw_sierp_MI"/>
<class name="PP_MartynaDealer.podstrona_rbp_tab_wykresy_MI"/>
<class name="PP_MartynaDealer.podstrona_cnptool_MI"/>
<class name="PP_MartynaDealer.podstrona_zakup_MI"/>
<class name="PP_MartynaDealer.podstrona_materialy_info_MI"/>
<class name="PP_MartynaDealer.podstrona_raporty_od_0110_MI"/>
<class name="PP_MartynaDealer.podstrona_HTG_wrze_gru_MI"/>
<class name="PP_MartynaDealer.podstrona_materialy_z_wydarzen_MI"/>
<class name="PP_MartynaDealer.podstrona_bonus_MI"/>
<class name="PP_MartynaDealer.podstrona_bonus_tabele_MI"/>
<class name="PP_MartynaDealer.podstrona_akcesoria_podstrony_MI"/>
<class name="PP_MartynaDealer.podstrona_nora_podstrony_MI"/>
<class name="PP_MartynaDealer.podstrona_moj_kalendarz_MI"/>
<class name="PP_MartynaDealer.podstrona_akcesoria_MI"/>
<class name="PP_MartynaDealer.podstrona_nora_MI"/>
<class name="PP_MartynaDealer.podstrona_autopart_MI"/>
<class name="PP_MartynaDealer.podstrona_wydarzenia_MI"/>
<class name="PP_MartynaDealer.podstrona_pisma_okolne_MI"/>
<class name="PP_MartynaDealer.podstrona_raporty_do_3009_MI"/>
<class name="PP_MartynaDealer.podstrona_baza_marketingowa_MI"/>
<class name="PP_MartynaDealer.logowanie_MartynaDealer"/>
<class name="PP_MartynaDealer.podstrona_uzytkownicy_MI"/>
</classes>
</test> <!-- Test -->
</suite> <!-- Suite -->
在每个执行的每个测试都打开一个浏览器窗口的那一刻,在最后一个浏览器窗口打开后,测试从第一个窗口开始,并按顺序进行。 我应该以不同的方式编写测试,以便我可以按顺序运行它们吗?
【问题讨论】:
-
我不明白你的问题。您的套件中已经有保留顺序,因此所有测试都将按照套件中提到的顺序运行...
-
问题是 selenium 同时打开了与测试一样多的浏览器窗口,我希望它打开一个窗口执行测试关闭窗口并为套件中包含的每个测试重复该操作
-
你不应该真的依赖订单:stackoverflow.com/questions/40349496
标签: java eclipse selenium selenium-webdriver testng