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

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


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

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


  列表2. 檢查命令提示符

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


  列表3. 有多個(gè)選項(xiàng)的測試命令

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


  列表4. 做出決策

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