您的位置:軟件測試 > 開源軟件測試 > 開源功能測試工具 > Selenium
Selenium自動化測試用例設(shè)計(jì)注意事項(xiàng)(二)
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時(shí)間:[ 2013/1/28 10:52:45 ] 推薦標(biāo)簽:

  主頁的頁面對象可能會是這個樣子:

/**
 * Page Object encapsulates the Home Page
 */
public class HomePage {
 
        private Selenium selenium;
 
        public HomePage(Selenium selenium) {
                if (!selenium.getTitle().equals("Home Page of logged in user")) {
                        throw new IllegalStateException("This is not Home Page of logged in user, current page" +
                                        "is: " +selenium.getLocation());
                }
        }
 
        public HomePage manageProfile() {
                // Page encapsulation to manage profile functionality
                return new HomePage(selenium);
        }
 
        /*More methods offering the services represented by Home Page
        of Logged User. These methods in turn might return more Page Objects
        for example click on Compose mail button could return ComposeMail class object*/
 
}

  現(xiàn)在,使用上述兩個頁面對象的登錄測試代碼,如下所示。

/***
 * Tests login feature
 */
public class TestLogin {
 
        public void testLogin() {
                SignInPage signInPage = new SignInPage(selenium);
                HomePage homePage = signInPage.loginValidUser("userName", "password");
                Assert.assertTrue(selenium.isElementPresent("compose button"),
                                "Login was unsuccessful");
        }
}

  怎么樣使用頁面對象進(jìn)行設(shè)計(jì)有很大的靈活性,但也有一些基本的規(guī)則以保證得到測試代碼具有所需的可維護(hù)性。頁面對象本身不應(yīng)該被驗(yàn)證或斷言。這應(yīng)該是測試的一部分,并應(yīng)始終在測試代碼中去驗(yàn)證或斷言,而不要放在頁面對象內(nèi)。頁面對象將包含頁面展現(xiàn),方法的形式表示頁面提供的服務(wù),但不需要包含應(yīng)該在測試代碼中維護(hù)的代碼。

  的應(yīng)該存在頁面對象中的驗(yàn)證方法是,驗(yàn)證頁面、頁面上的重要元素,被正確的加載。這這個驗(yàn)證應(yīng)該在頁面初始化時(shí)進(jìn)行。在上面的例子中,SignInPage 和 HomePage 的構(gòu)造函數(shù)檢查了期望的頁面是否可用,是否準(zhǔn)備好接受測試代碼的請求。

  頁面對象并不一定要代表整個頁面。頁面對象設(shè)計(jì)模式可用于表示頁面上組件。在待測應(yīng)用上的一個頁面若有多個組件,每個組件對應(yīng)一個頁面對象可以提高可維護(hù)性。

  在測試時(shí),還會遇到其他的測試設(shè)計(jì)模式。有些人用一個頁面工廠模式來實(shí)例化頁面對象。討論所有的這些測試模式,超出了本文檔的的范圍。在這里,我們只為大家介紹概念,使讀者知道這些東西可以些什么。正如前面提到的,很多人都在博客上討論這個話題,我們鼓勵讀者搜索這些話題。

  數(shù)據(jù)驅(qū)動測試

  數(shù)據(jù)驅(qū)動測試是指相同的測試(或測試集)可以使用不同的數(shù)據(jù)多次執(zhí)行。這些數(shù)據(jù)集往往來自外部文件,如csv文件,文本文件,或者是從數(shù)據(jù)庫加載。數(shù)據(jù)驅(qū)動測試是一種常用的自動化測試技術(shù),使用不同的輸入對應(yīng)用程序進(jìn)行多次驗(yàn)證。當(dāng)測試被針對不同的數(shù)據(jù)進(jìn)行設(shè)計(jì)時(shí),所輸入的數(shù)據(jù)可以擴(kuò)展,基本上不需要修改測試代碼可以進(jìn)行更多的測試。

# Collection of String values
source = open("input_file.txt", "r")
values = source.readlines()
source.close()
# Execute For loop for each String in the values array
for search in values:
    sel.open("/")
    sel.type("q", search)
    sel.click("btnG")
    sel.waitForPageToLoad("30000")
    self.failUnless(sel.is_text_present("Results * for " + search))

上一頁1234下一頁
軟件測試工具 | 聯(lián)系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd