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

  主頁的頁面對(duì)象可能會(huì)是這個(gè)樣子:

/**
 * 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)在,使用上述兩個(gè)頁面對(duì)象的登錄測試代碼,如下所示。

/***
 * 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");
        }
}

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

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

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

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

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

  數(shù)據(jù)驅(qū)動(dòng)測試是指相同的測試(或測試集)可以使用不同的數(shù)據(jù)多次執(zhí)行。這些數(shù)據(jù)集往往來自外部文件,如csv文件,文本文件,或者是從數(shù)據(jù)庫加載。數(shù)據(jù)驅(qū)動(dòng)測試是一種常用的自動(dòng)化測試技術(shù),使用不同的輸入對(duì)應(yīng)用程序進(jìn)行多次驗(yàn)證。當(dāng)測試被針對(duì)不同的數(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)系我們 | 投訴建議 | 誠聘英才 | 申請(qǐng)使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd