我正在研究Selenium项目,并且在将手动测试案例转换为Selenium测试脚本方面存在一定的疑虑。
假设我有2个测试用例如下, 第一种情况: 1.使用GMAIL 2.使用有效的用户名和密码登录Gmail 3.检查收件箱中的新电子邮件。 4.阅读电子邮件 5.退出
第二种情况: 1.使用GMAIL 2.使用有效的用户名和密码登录Gmail 3.撰写电子邮件 4.发送电子邮件 5.退出
我的怀疑
谢谢,一些意见可以帮助我。
答案 0 :(得分:0)
它取决于你的java-selenium代码的复杂性和可用性。
每个测试用例是否是Java中的一个类?
--->在这种情况下,您可以编写一个登录功能的方法,您可以将用户名和密码作为参数传递给该方法。无论何时需要登录,都可以在任何类(您正在编写任何其他测试用例的类)中调用此方法。
因此,测试用例可以是一个类。如果它是一个单独的类,它将有助于调试和维护目的。如果测试用例过于复杂,您可以将功能分为两个或更多类。
每个测试步骤是java中的方法吗?
--->是的,它可以。当您检查登录或注销功能时,您将分别调用登录方法或注销方法。有时,如果该方法无法重复使用且仅适用于某个应用程序,那么它将不是一种方法。您需要显式编写所有逻辑,而不是调用已存在的方法。
答案 1 :(得分:0)
这是基于你的要求。
例如
public class gmailTest()
{
@BeforeClass
public void beforeClass()
{
1. Navigate to Gmail
2. sign in
}
@BeforeMethod
public void beforeMethod()
{
}
@Test
public void testInbox()
{
Check Inbox for New Emails , Read the email
}
@Test
public void testInbox()
{
Compose an email , send the email
}
@AfterMethod
public void afterMethod()
{
}
@BeforeClass
public void afterClass()
{
signout
}
}
@BeforeClass:在调用当前类中的第一个测试方法之前,将运行带注释的方法。
@AfterClass:在运行当前类中的所有测试方法之后,将运行带注释的方法。
@BeforeMethod:带注释的方法将在每个测试方法之前运行。
@AfterMethod:带注释的方法将在每个测试方法之后运行。
有关testng的更多信息,请点击here
答案 2 :(得分:0)
我曾经遇到过完全相同的问题(但我使用的是Python) 所以这就是我所做的:
1)每个class
是测试用例
2)每个method
是测试步骤
3)在class
设置和拆除内完全到达初始点。 (所以它可以用于以后分发)
4)创建“如果一个方法失败 - >该类中其余方法未运行(自动失败)”的逻辑“
5)(!!)创建“如果方法改变状态然后为其添加'拆除'”的逻辑“