我正在开发一个用selenium自动测试网站的项目。这是我想要运行的主要课程:
package Login;
import static org.junit.Assert.assertTrue;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.ie.InternetExplorerDriver;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
import org.testng.annotations.Parameters;
import org.testng.annotations.Test;
public class Test{
WebDriver driver;
String baseUrl;
private StringBuffer verificationErrors = new StringBuffer();
@Test
@Parameters("browser")
public void LoginDebiteurVerkeerdPage(String browserName) {
if(browserName.equalsIgnoreCase("firefox"))
{
System.setProperty("webdriver.gecko.driver","C:\\Users\\cursus\\Downloads\\geckodriver.exe");
driver=new FirefoxDriver();
}
else if(browserName.equalsIgnoreCase("chrome"))
{
System.setProperty("webdriver.chrome.driver", "C:\\Users\\cursus\\Downloads\\chromedriver.exe");
driver=new ChromeDriver();
}
else if(browserName.equalsIgnoreCase("IE"))
{
System.setProperty("webdriver.ie.driver", "C:\\Users\\cursus\\Downloads\\IEDriverServer_x64_2.53.1\\IEDriverServer.exe");
driver=new InternetExplorerDriver();
}
driver.manage().window().maximize();
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
baseUrl = "https://www.l.nl/";
driver.get(baseUrl + "/");
// Testscases
Here i wanna invoke a few testcases that are in other classes.
// For example: LoginLogout (class LoginLogout)
// For example: LoginWrongusername (class LoginWrongusername)
// For example: LoginWrongpassword (class Loginwrongpassword)
driver.close();
}
}
我希望将测试用例放在另一个类中,以便它具有结构化和可维护性。
我如何在我的"测试"中调用这些类(我的测试用例)。类?
谢谢, 皮特
答案 0 :(得分:0)
您可以在要在Test中执行的任何类中定义一些静态方法,并在其上添加所有方案。例如。
public class LoginLogout (){
public static executeScenarios(Driver driver){
//your code here
}
}
在您的测试课程中:
LoginLogout.executeScenarios(driver);
LoginWrongusername.executeScenarios(driver);
...
即使您可以使用场景的所有类扩展来自初始化驱动程序的公共类,并且您只需将浏览器传递给方法。
希望它可以帮到你