Selenium有效的电子邮件测试用例

时间:2015-07-28 05:53:52

标签: selenium selenium-webdriver webdriver automated-tests testcase

我已开始为项目编写测试用例,第一页是登录页面。

我已经开始为有效的电子邮件地址验证编写测试用例。

 public void LoginValidEmailProvided(string baseUrl)
    {
        _driver.Navigate().GoToUrl(baseUrl);
        UserIdField.Clear();
        UserIdField.SendKeys("abc.xyz.com");
        PasswordField.Clear();
        PasswordField.SendKeys("");
        LoginButton.Click();
    }

现在我的问题是我们是否需要针对有效的电子邮件地址检查为每个变体编写不同的函数。

喜欢手动测试测试通常做

  • some.com

  • @ some.com

  • @some

  • 一些@

  • 一些@@@。com

还有更多。

因此,我们必须为自动化测试中的上述变量编写测试用例。或者只是一种变化就足够了。因为我正在检查返回消息并与预期和我得到的内容进行比较。在每种情况下,它都会返回凭据无效。所以我刚刚检查过页面包含消息无效凭据然后传递了无效的Emaild地址测试用例。

请指教 谢谢

2 个答案:

答案 0 :(得分:1)

更好的方法是使用两种方法来检查有效的电子邮件地址,另一种方法是检查无效的电子邮件地址

有两种方法的优点

您可以在文件或数据提供程序(包含框架)中单独拥有有效凭据,并仅将有效凭据传递给检查valid_email方法,并将无效凭据传递给invalid_email方法,以便在出现任何错误时可以轻松找到它(例如:有效凭据抛出错误,表明凭据无效)如果您同时使用这两个凭据,那么您将很难找到哪个有效且哪个无效

pseudecode

public void correct_email(){

enter username and other details

click submit

Get the success page or page title of homepage to check email validation passed

}

public void wrong_email(){

enter username and other details

click submit

Get the error page and compare it with the actual error message

}

编辑

1.如果您将有效和无效的凭据保存在一起,并且有一种方法可以验证它,您如何知道有效的登录凭据是否无法登录,它也会抛出错误的无效凭证,您的测试将通过你不会注意到这个错误

2.此外,如果你正在使用像ex:testng这样的框架,你将在报告中获取这些数据,如果你参数化你的测试,那么在报告中它也可以让你清楚地看到传递和失败的数据。)参数使用有效的证书运行和参数使用无效凭证运行。如果您使用一种方法来验证vaiid和无效凭证,则所有凭据都将列为一个。

希望这会对你有所帮助。如果你有任何疑问,请回复

答案 1 :(得分:0)

    Do not create a different method you can use data provider for each test !!!

(you can write a rapper that the data provider will look nicer )

    http://testng.org/doc/documentation-main.html

    //This method will provide data to any test method that declares that its Data Provider
    //is named "test1"
    @DataProvider(name = "test1")
    public Object[][] createData1() {
     return new Object[][] {
       { "Cedric", new Integer(36) },
       { "Anne", new Integer(37)},
     };
    }

    //This test method declares that its data should be supplied by the Data Provider
    //named "test1"
    @Test(dataProvider = "test1")
    public void verifyData1(String n1, Integer n2) {
     System.out.println(n1 + " " + n2);
    }  

将打印

塞德里克36 安妮37