2012-12-12 48 views
1

我正在開發一個Selenium項目,並且在將一個手動測試用例轉換爲一個Selenium測試腳本時存在某些疑問。測試用例結構

假設我有2個測試案例如下, 第一種情況: 1.找到Gmail 2.登錄並使用有效的用戶名和密碼 3.檢查收件箱中新郵件的Gmail。 4.閱讀電子郵件 5 Signout

第二種情況: 1.找到Gmail 2.登錄Gmail,利用有效的用戶名和密碼 3.撰寫電子郵件 4.發送電子郵件 5 Signout

我的疑惑

  1. 是每個測試用例是Java一類?
  2. 是每個測試步驟是在java中的一種方法?

謝謝,一些投入會幫助我。

回答

0

它取決於你的java-selenium代碼的複雜性和可用性。

是否每個測試用例都是Java中的一個類?

--->在這種情況下,您可以編寫一個登錄功能的方法,您將在其中傳遞用戶名和密碼作爲該方法的參數。無論何時需要登錄時,都可以在任何類(您正在編寫的任何類中測試任何其他測試用例)內調用此方法。

所以,一個測試用例可以是一個類。如果它是一個類,它將有助於調試和維護目的。如果測試用例太複雜,可以將功能分成兩個或更多類。

是每個測試步驟是在java中的一種方法?

--->是的,可以。當您檢查登錄或登出功能時,您將分別調用登錄方法或登錄方法。有時候,如果方法不能被重用,而且只針對某個應用程序,那麼它就不是一種方法。你需要明確地寫出所有的邏輯,而不是調用已經存在的方法。

+0

謝謝你的解釋,喜歡你的答案。 – Fazy

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

+0

如果案件需要並行運行,上述解決方案可能會失敗。 –

+0

如果測試需要並行運行,應該如何實現?如果我需要創建一個測試用例的兩個實例,但使用不同的數據呢? – Fazy

+0

您可以使用TestNG的數據提供者或工廠。請參閱http://testng.org/doc/documentation-main.html –

0

我曾經有完全相同的問題(但我使用Python)。
所以這是我做了什麼:

1)每個class測試用例
2)每個method測試步驟
3)內class設置撕裂完全下降到到最初的點。 (所以它可以用於以後分發)
4)創建「如果一種方法失敗 - >類中的其餘方法不運行(自動失敗)」的邏輯「

5)(! )創建邏輯「如果該方法更改狀態然後添加一個」拆除「它」