Java 两个测试一个接一个
我在WebDriver中的测试有问题 在第一个包中,我有两个类(页面)主页,LoginPage 在secound包中,我有test-goToLiginPageTest和LoginTest 在Gotoligini页面,我检查,我在主页上,并进入登录页面 在LoginTest中,我检查我是否在登录页面上,并登录 但来自goToLiginPageTest的两个测试通过,但来自LoginTest的测试失败 我不确定我的textng.xlm是否出了什么问题,或者我在哪里犯了错误。请帮帮我Java 两个测试一个接一个,java,selenium,selenium-webdriver,testng,Java,Selenium,Selenium Webdriver,Testng,我在WebDriver中的测试有问题 在第一个包中,我有两个类(页面)主页,LoginPage 在secound包中,我有test-goToLiginPageTest和LoginTest 在Gotoligini页面,我检查,我在主页上,并进入登录页面 在LoginTest中,我检查我是否在登录页面上,并登录 但来自goToLiginPageTest的两个测试通过,但来自LoginTest的测试失败 我不确定我的textng.xlm是否出了什么问题,或者我在哪里犯了错误。请帮帮我 publ
public class HomePage {
WebDriver driver;
public static final String PAGE_TITLE = "page title";
public static final String PAGE_URL = "www.blbl.pl";
@FindBy(xpath = "//*[@id='global-nav']/div/div/div[3]/ul/li[1]/a")
WebElement LogInLink;
public HomePage(WebDriver driver){
this.driver = driver;
}
public void isHomePage(){
String pageTitle = driver.getTitle();
Assert.assertEquals(pageTitle, PAGE_TITLE);
}
public void goToLoginPage(){
LogInLink.click();
}
}
登录页
public class LoginPage {
WebDriver driver;
public static final String PAGE_TITLE = "Login";
@FindBy(id="user_email")
WebElement inputUserEmail;
@FindBy(id="user_password")
WebElement inputUserPassword;
public LoginPage(WebDriver driver){
this.driver = driver;
}
public void isLoginPage(){
String pageTitle = driver.getTitle();
Assert.assertEquals(pageTitle, PAGE_TITLE);
}
public void fillUserEmail(){
inputUserEmail.sendKeys("asdfasd@gmail.com");
Assert.assertEquals(inputUserEmail.getAttribute("value"), "asdfasd@gmail.com");
}
public void fillUserPassword(){
inputUserPassword.sendKeys("123456");
Assert.assertEquals(inputUserPassword.getAttribute("value"), "123456");
}
}
哥特科尼帕格特酒店
import pages.HomePage;
public class GotoLoginPageTest {
WebDriver driver;
HomePage hp;
@BeforeClass
public void setup(){
this.driver = new FirefoxDriver();
hp = PageFactory.initElements(driver, HomePage.class);
driver.get(HomePage.PAGE_URL);
}
@Test(priority = 1)
public void isHomePage(){
hp.isHomePage();
}
@Test(dependsOnMethods = "isHomePage")
public void gotoLoginPage(){
hp.goToLoginPage();
}
}
逻辑测试
public class LoginTest {
WebDriver driver;
LoginPage lp = PageFactory.initElements(driver, LoginPage.class);
@Test
public void cheskIsLoginPage(){
lp.isLoginPage();
}
@Test
public void logInBase(){
lp.fillUserEmail();
lp.fillUserPassword();
}
}
我的testng.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Suite" parallel="none">
<test name="Test">
<classes>
<class name="tests.GotoLoginPageTest"/>
<class name="tests.LoginTest"/>
</classes>
</test> <!-- Test -->
</suite> <!-- Suite -->
您从未在
LoginTest
类中实例化过驱动程序。在那里实例化驱动程序,并将其传递到页面对象中。大概是这样的:
public class LoginTest {
WebDriver driver;
driver = new FirefoxDriver();
LoginPage lp = PageFactory.initElements(driver, LoginPage.class);
@Test
public void cheskIsLoginPage(){
lp.isLoginPage();
}
@Test
public void logInBase(){
lp.fillUserEmail();
lp.fillUserPassword();
}
}
您从未在
LoginTest
类中实例化过驱动程序。在那里实例化驱动程序,并将其传递到页面对象中。大概是这样的:
public class LoginTest {
WebDriver driver;
driver = new FirefoxDriver();
LoginPage lp = PageFactory.initElements(driver, LoginPage.class);
@Test
public void cheskIsLoginPage(){
lp.isLoginPage();
}
@Test
public void logInBase(){
lp.fillUserEmail();
lp.fillUserPassword();
}
}
您从未在
LoginTest
类中实例化过驱动程序。在那里实例化驱动程序,并将其传递到页面对象中。大概是这样的:
public class LoginTest {
WebDriver driver;
driver = new FirefoxDriver();
LoginPage lp = PageFactory.initElements(driver, LoginPage.class);
@Test
public void cheskIsLoginPage(){
lp.isLoginPage();
}
@Test
public void logInBase(){
lp.fillUserEmail();
lp.fillUserPassword();
}
}
您从未在
LoginTest
类中实例化过驱动程序。在那里实例化驱动程序,并将其传递到页面对象中。大概是这样的:
public class LoginTest {
WebDriver driver;
driver = new FirefoxDriver();
LoginPage lp = PageFactory.initElements(driver, LoginPage.class);
@Test
public void cheskIsLoginPage(){
lp.isLoginPage();
}
@Test
public void logInBase(){
lp.fillUserEmail();
lp.fillUserPassword();
}
}
但我不想创建新的FFdriver,我希望在进入登录页面后,登录到。在同一测试中。我只是想一个接一个地运行GotoLoginPageTest和LoginTest。我不确定,但我认为测试运行的顺序不好,首先是LoginTest,然后是GotoLoginPageTest。我把eclipse的屏幕放在这里,您必须这样做,否则您将向登录页面传递一个空驱动程序。另一方面,您应该全局创建驱动程序,而不是在每个测试对象中创建。请参阅示例,我的问题很抱歉,但我不想在每个测试中创建新的firefoxDriver对象。我只想做一个测试,在一个测试中运行两个案例。如果我创建了新的ffdriver,那么将打开新的浏览器,我想在一个浏览器中执行两种情况,一个接一个,然后将测试放在同一个类中,或者需要在两个类之间共享驱动程序,否则,我看不到第一个类的实例如何在没有任何额外代码的情况下被注入第二个类……但我不想创建新的FFdriver,我希望在进入登录页面后,登录到。在同一测试中。我只是想一个接一个地运行GotoLoginPageTest和LoginTest。我不确定,但我认为测试运行的顺序不好,首先是LoginTest,然后是GotoLoginPageTest。我把eclipse的屏幕放在这里,您必须这样做,否则您将向登录页面传递一个空驱动程序。另一方面,您应该全局创建驱动程序,而不是在每个测试对象中创建。请参阅示例,我的问题很抱歉,但我不想在每个测试中创建新的firefoxDriver对象。我只想做一个测试,在一个测试中运行两个案例。如果我创建了新的ffdriver,那么将打开新的浏览器,我想在一个浏览器中执行两种情况,一个接一个,然后将测试放在同一个类中,或者需要在两个类之间共享驱动程序,否则,我看不到第一个类的实例如何在没有任何额外代码的情况下被注入第二个类……但我不想创建新的FFdriver,我希望在进入登录页面后,登录到。在同一测试中。我只是想一个接一个地运行GotoLoginPageTest和LoginTest。我不确定,但我认为测试运行的顺序不好,首先是LoginTest,然后是GotoLoginPageTest。我把eclipse的屏幕放在这里,您必须这样做,否则您将向登录页面传递一个空驱动程序。另一方面,您应该全局创建驱动程序,而不是在每个测试对象中创建。请参阅示例,我的问题很抱歉,但我不想在每个测试中创建新的firefoxDriver对象。我只想做一个测试,在一个测试中运行两个案例。如果我创建了新的ffdriver,那么将打开新的浏览器,我想在一个浏览器中执行两种情况,一个接一个,然后将测试放在同一个类中,或者需要在两个类之间共享驱动程序,否则,我看不到第一个类的实例如何在没有任何额外代码的情况下被注入第二个类……但我不想创建新的FFdriver,我希望在进入登录页面后,登录到。在同一测试中。我只是想一个接一个地运行GotoLoginPageTest和LoginTest。我不确定,但我认为测试运行的顺序不好,首先是LoginTest,然后是GotoLoginPageTest。我把eclipse的屏幕放在这里,您必须这样做,否则您将向登录页面传递一个空驱动程序。另一方面,您应该全局创建驱动程序,而不是在每个测试对象中创建。请参阅示例,我的问题很抱歉,但我不想在每个测试中创建新的firefoxDriver对象。我只想做一个测试,在一个测试中运行两个案例。如果我创建了新的ffdriver,那么将打开新的浏览器,我想在一个浏览器中执行这两种情况,一个接一个,然后将测试放在同一个类中,或者您需要在两个类之间共享驱动程序,否则我看不到第一个类的实例如何在没有任何附加代码的情况下注入第二个类。。。