将数据从一个类调用到另一个类 - JUnit的框架

时间:2014-04-25 11:16:08

标签: selenium-webdriver junit4

请原谅我,因为我对测试自动化世界还很陌生。我已经开始使用Selenium WebDriver和JUnit4,主要是在Windows操作系统上,虽然我修改了我的脚本并在Mac上运行它们。

我希望能够创建一组包含设置数据的类,例如用户名,密码,默认网址。甚至可能从excel文件中调用它们,但是现在我很乐意将数据存储在类中,然后将该数据传递给其他测试类。我猜这将是某种框架。

目前我正在编写类似以下内容的课程:

public class ExampleSQATest{

    public static Chromedriver chrome;

    @BeforeClass
    public static void launchBrowser(){
    System.setProperty("webdriver.chrome.driver", "chromedriver/chromedriver.exe");

    chrome = new ChromeDrievr();
    }
    @Test
    public void aLogin(){

    chrome.manage().window().maximize();

    chrome.navigate().to("http://mydummywebsite.com");

    new WebDriverWait(chrome, 10).until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector
                    ("input#UserName")));

    WebElement username = chrome.findElementByCssSelector("input#UserName");

    username.sendKeys("username");

    WebElement password = chrome.findElementByCssSelector("input#Password");
    password.sendKeys("password");
    WebElement submit = chrome.findElementByCssSelector("input[type='submit']");
    submit.click();
    }
}

然后我将继续编写需要输入数据的其他测试方法,但我希望能够从已经预定义的其他地方调用这些数据。

任何人都可以提供任何合适的调查建议,以便我可以学习。作为指南或教程的东西。没有什么太高级,只是通过建议我如何设置一类方法被其他类调用以及它们如何作为框架链接在一起来帮助我开始。

非常感谢提前。

2 个答案:

答案 0 :(得分:0)

一种方法

public abstract class TestBase
{

    private readonly INavigationManager navMgr;
    private readonly IWindowNavigator windowNav;
    private readonly ILoginManager loginMgr;
    // All your stuff that is common for all the tests
    protected TestBase()
    {
        this.navMgr = WebDriverManager.Get<INavigationManager>();
        this.windowNav = WebDriverManager.Get<IWindowNavigator>();
        this.loginMgr = WebDriverManager.Get<ILoginManager>();
    }}

 [TestFixture]
internal class QueriesTest : TestBase
{
    private QueryTests queryTests;

    [SetUp]
    public void Setup()
    {
        this.queryTests = WebDriverManager.Get<QueryTests>();
      // all the stuff you run specific before tests in this test class.
    }

}

答案 1 :(得分:0)

假设您已在webdriver-junit4中创建了测试类,请使用以下两个类来调用您的测试类(Note-Import junit annotations)

1)创建测试套件类 -

@RunWith(Suite.class)
@Suite.SuiteClasses({
YourTestClass1.class,
YourTestClass2.class,[you can add more tests you have created...]
})
public class TestSuiteJU {   
} 

2)创建类来调用上面创建的套件 -

public class TestExecution {
public static void main(String[] args) {
Result result = JUnitCore.runClasses(TestSuiteJU .class);
}
}