• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    用 TestNG-Abbot 實現自動化 GUI 測試

    發布: 2008-4-03 17:28 | 作者: Andrew Glover | 來源: IBM | 查看: 151次 | 進入軟件測試論壇討論

    領測軟件測試網

    了解 GUI

    圖 1 顯示了已啟動的 Word Finder GUI。記住該 GUI 之所以簡單只有一個原因:它演示了 TestNG-Abbot 的三個 fixture 類以及一些要引導的測試用例!


    圖 1. Word Finder GUI
    Word Finder GUI 啟動時的屏幕快照

    當使用 TestNG-Abbot 進行測試時,應該首先檢查 GUI 的組件。Word Finder GUI 由圖 2 所示的三個組件組成:


    圖 2. Word Finder GUI 的組件
    Word Finder GUI 示意圖

    如您所見,Word Finder GUI 由一個 JTextField(用來輸入要查詢的單詞)、一個 JButton(使 GUI 從字典數據庫中獲取釋義)和一個 JEditorPane (顯示釋義)組成。

    在良好的場景中,如果我輸入 pugnacious 然后單擊 Find Word 按鈕,JEditorPane 將顯示 “Combative in nature; belligerent”,如圖 3 所示:


    圖 3. 良好的場景 —— 工作良好!





    回頁首


    使用 TestNG-Abbot 進行測試

    要開始使用 TestNG-Abbot,需要創建一個常規的測試 fixture,它將使用 TestNG 的 BeforeMethodAfterMethod 注釋為您的 GUI 創建一個實例。TestNG-Abbot 框架附帶了一個方便的 AbbotFixture 對象,它簡化了 GUI 組件的使用,實際上也引導了整個測試過程。要在測試 fixture 中使用該對象,需要在測試前將一個 GUI 實例傳遞給 fixture 對象的 showWindow() 方法,然后使用名為 cleanUp() 的方法對 fixture 進行清理。

    在清單 1 中,我創建了一個 TestNG 測試(實際上并沒有對其做任何測試),該測試在 fixture 中使用 TestNG-Abbot 的 AbbotFixture 對象來存放 Word Finder GUI 的實例。


    清單 1. 使用 AbbotFixture 對象定義 WordFindGUITest
    public class WordFindGUITest { private AbbotFixture fixture; @BeforeMethod private void initializeGUI() {  fixture = new AbbotFixture();  fixture.showWindow(new WordFind(), new Dimension(269, 184)); } @AfterMethod public void tearDownGUI() {  fixture.cleanUp(); }}

    由于 Word Finder GUI 的用戶可見的行為會影響 圖 2 所示的三個組件,需要通過編程對其進行調整,以確保工作能正常進行。比如,驗證 圖 3 演示的良好的場景,需要執行下面三個步驟:

    1. 獲得對 JTextField 的引用并向其添加一些文本。
    2. 獲得 JButton 的句柄并單擊它。
    3. 獲得對 JLabel 組件的引用并檢驗是否顯示了正確的釋義。

    檢驗良好的場景

    使用 TestNG-Abbot,可以通過這三個方便的 fixture 類型執行上面所屬的三個步驟:TextComponentFixture 用于 JTextField;ButtonFixture 用于 Find Word 按鈕;LabelFixture 用來驗證 JLabel 中特定的文本。

    清單 2 顯示了用于驗證 圖 3 中演示的內容是否可以正常工作的代碼:


    清單 2. 測試一個良好場景
    @Testpublic void assertDefinitionPresent() { TextComponentFixture text1 = new TextComponentFixture(this.fixture,   "wordValue"); text1.enterText("pugnacious"); ButtonFixture bfix = new ButtonFixture(this.fixture, "findWord"); bfix.click(); LabelFixture fix = new LabelFixture(this.fixture, "definition"); fix.shouldHaveThisText("Combative in nature; belligerent.");}

    注意 fixture 對象通過一個邏輯名稱和特定的 GUI 組件連接在一起。例如,在 Word Finder GUI 中,通過編程將 JButton 對象與 “findWord” 名稱聯系起來。請注意在定義按鈕時,我是如何通過調用組件的 setName() 方法做到這點的,如清單 3 所示:


    清單 3. 定義 Find Word 按鈕
    findWordButton = new JButton();findWordButton.setBounds(new Rectangle(71, 113, 105, 29));findWordButton.setText("Find Word");findWordButton.setName("findWord");

    同樣要注意,在 清單 2 中,我是如何通過將 “findWord” 名稱傳遞給 TestNG-Abbot 的 ButtonFixture 對象而獲得對按鈕的引用!皢螕簟 按鈕(調用 click 方法)然后使用 TestNG-Abbot 的 LabelFixture 對象插入單詞的釋義,多么酷!不過不要就此滿足。


    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/

    32/3<123>

    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備2023014753號-2
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>