您的位置:軟件測試 >> 測試技術 >> 測試精品文章
如何搭建自動化測試框架?
作者:網絡轉載 發(fā)布時間:[ 2015/10/21 17:07:27 ] 推薦標簽:自動化測試框架

  Vladimir Belorusets博士是Shocase公司(一家營銷人員的社交網絡)的QA主管。他擅長測試自動化和測試方法。Belorusets博士是一名認證的Scrum大師和認證的初級測試員。他是發(fā)表在Testing Experience, Agile Record, Software Test & Quality
Assurance, Software Test & Performance和StickyMinds.com上的很多文章的作者。Belorusets博士是Software Test Professionals的戰(zhàn)略咨詢委員會和會議程序委員會的一員。他曾在安達盧西亞峰會,HP Software Universe,Software Test Professionals和STARWEST上發(fā)過言。Vladimir 曾在Xerox, EMC, Siebel, CSAA及各種新興企業(yè)里負責過開發(fā)和QA管理。Belorusets博士獲得了俄羅斯科學院莫斯科研究所系統(tǒng)分析的控制系統(tǒng)博士學位和立陶宛維爾紐斯州立大學的理論物理的碩士學位。Vladimir 曾在多家舊金山海灣區(qū)計算機學校教授多門關于功能和性能測試的課程。
  簡介
  本文的前兩部分中,我描述了用于開發(fā)一個(作為測試多個應用程序接口的基礎的)統(tǒng)一測試自動化(UTA)框架的主要準則。在JUnit和JUnitParams上構建UTA。我展示了該如何在UTA框架中用開源Selenium WebDriver和Spring Framework測試瀏覽器GUI和REST API。這一部分中,我將描述連接到一個SSH服務器時實施命令行界面的自動化測試的細節(jié)。
  用于和CLI自動交互的流行工具是Expect。開始使用Tcl寫的,Java中有幾種開源Expect實施。UAT中,我使用下列程序:
  Ronnie Dong開發(fā)的Expect-for-Java。該API 大致基于Perl Expect library。
  用于SSH協(xié)議的JCraft JSch。
  CLI測試的結構
  一個簡單的CLI測試包含以下四個步驟:
  1. 與遠程服務器建立一個SSH理解
  2. 在CLI運行輸入命令
  3. 獲得并解析反應
  4. 對比真實結果和預期結果以驗證
  第一步通常每個測試類都要進行一次。其他的包含一個當我們處理各種命令時在一個測試里重復了很多次的障礙。使用JCraft JSch (Java Security Channel)類,SSH連接可以輕松地完成。因為建立了一次會話,相應的陳述放到了@BeforeClass method中。(列表1)。


  列表1. 創(chuàng)建一個SSH連接

  為了驗證連接,我們可以檢查命令提示符。Expect類包含expect()方法。處理針對一個模式的輸入流,將找到的匹配放到匹配字符串中,并更新isSuccess 邏輯運算。該圖案可以呈現(xiàn)為一個字符串或正則表達式。列表2中展示了代碼片段。


  列表2. 檢查命令提示符

  對于第二步,Expect 提供方法send()。
  測試命令選項
  如果測試下的命令有多個選擇,像UNIX中的IS或Windows中的dir,用JUnitParams library和JUnitParamsRunner并使用數據驅動方法測試它是有效的。當你需要匹配一個復雜的輸入時,可以使用java.util.regex.Pattern類。列表3表明了該如何為命令顯示創(chuàng)建一個數據驅動的測試。


  列表3. 有多個選項的測試命令

  數據文件showCommand.csv包含兩欄:一個是命令選項,一個是預期匹配的正則表達式模式。
  CLI測試
  多數CLI測試需要基于一些前面命令中列出的狀態(tài)來處理下一個命令。這種情況下,你需要創(chuàng)建一個關于描述預期結果的所有可能模式的列表。當你將列表傳到expect()方法中去時,將會返回匹配的模式索引。這將使你明白多個結果中會產生什么樣的結果。列表4中提供了執(zhí)行“展示hsm狀態(tài)”命令的例子,有兩種可能的結果:“加密用戶登錄:yes”和“加密用戶登錄:no”。


  列表4. 做出決策

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