亚洲好骚综合-亚洲黄色录像-亚洲黄色网址-亚洲黄色网址大全-99久久99久久-99久久99久久精品国产

您的位置:軟件測試 > 開源軟件測試 > 開源單元測試工具 > TestNG
單元測試框架TestNg使用總結
作者:網絡轉載 發布時間:[ 2015/2/3 15:17:09 ] 推薦標簽:單元測試 TestNG

  測試的依賴與分組
  我們在將依賴與分組放在一起描述,是因為他們之間有著緊密的聯系。
  測試依賴
  測試方法之間的依賴是一種很常見的需求,您也許認為,測試之間的依賴不是破壞了測試方法之間的隔離性嗎?確實是這樣的,但是有時為了這種隔離性,在彼此隔離的測試方法當中要付出很大的代價去相互模擬,所以為了方便起見,testng提供了這種依賴的方式。
  Testng當中通過@Test的屬性dependsOnMethods,dependsOnGroups來實現針對方法和分組的依賴。
  依賴還包括軟依賴和硬依賴。硬依賴是很強的關聯,如果被依賴的測試失敗,那么依賴它的測試會跳過。而軟依賴則不會跳過。通過給@Test設定alwaysRun=true來實現軟依賴。使用依賴時需要注意的是要避免循環依賴
  測試分組
  Testing當中提供的組名,與java當中包的概念有些類似,都是將包含相似點的類歸為一組。
  分組的重要的目標是:使固定的測試代碼和執行哪些測試實現清晰的分離。當你需要指定執行哪些組的測試時,在動態執行時指定組即可。
  關于分組的語法是非常簡單的,@Test,@BeforeClass,@AfterClass,@BeforeMethod等都可以屬于分組。相關的語法是@Test(groups=”group1”),一個@Test的groups還可以指定多個組名,如@Test(groups=”group1,groups2”)。
  定義好的組名,其實是給運行時使用的,也是在testng.xml文件當中可以配置。前面的testng.xml說明當中提到了<groups>的用法。
  Group的組織可以根據各種維度來進行劃分,如單元測試,集成測試,性能測試。或者是框架分層來劃分如action,service,dao等。在配置文件當中還可以定義組中組,通過define標簽來實現,前面也有所說明。
  在一般項目中,我建議組分類可按照架構分層來定義,分為基礎功能,service業務以及dao層。
  expectedExceptions
  用expectedExceptions來測試異常有兩個好處:其一,它消除了try/catch語句給代碼帶來的干擾。其二,使得測試代碼表達的意圖更加清楚。只要看到@Test注釋當中定義的expectedExceptions屬性,知道該測試方法的意圖,把Exception的用例和預期業務功能的用例分到不同測試方法中。
  語法很簡單,@Test(expectedExceptions=”XXXException.class”) ,異常類可以有多個,用逗號隔開。
  異步與并發測試
  異步與并發在單元測試當中通常都比較困難。
  關于異步測試,如JMS,發送和接收是解耦的,如果是測試發送消息的方法,當收到響應時,會有返回值。根據這個場景,測試代碼通常是這樣:
Private volatile Boolean success=”false”;
@Test(groups=”send”)
Public void sendMessage(){
//send message code
}
@Test(timeOut=10000,invocationCount=1000,successPercentage=98,dependsOnGroups={“send”})
Public void waitForAnser(){
While(!success){
Thread.sleep(1000);
}
}
@Test(timeOut = 10000, invocationCount = 1000,successPercentage = 98),是用于測試系統的可用性和響應速度所設的值。這里告訴testng調用該方法1000次,如果98%的調用是成功的,認為是通過測試。當然,前面也要調用sendMessage方法1000次。timeOut是防止死鎖而產生的。
  Testing內建了對并發的支持,可以分為兩種
  1,并發測試
  Testng在做并發測試時提供了threadPoolSize,invocationCount和timeOut三個屬性來完成。threadPoolSize可以指定多個線程池來執行測試方法。
  2,并發執行測試
  Testing還可以通過testng.xml來設置并發執行。testng.xml默認是單線程執行的。
  <suite>標簽可以設置parallel屬性。Thread-count指定線程數
  parallel=”methods”:每個測試方法都在它自己的線程中執行(以方法為粒度)。
  parallel=”tests”:在某個<test>標簽內的所有測試方法都在它自己的線程中執行(以<test>為粒度)。

上一頁12下一頁
軟件測試工具 | 聯系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網站地圖
滬ICP備07036474 2003-2017 版權所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd
主站蜘蛛池模板: 日韩射吧| 日韩一区二区视频在线观看 | 国内不卡1区2区 | 中文字幕2019年中文字幕 | 五月丁色| 国产精品天天在线 | 国产精久久一区二区三区 | 欧美极度极品另类 | 暴力调教抖s浪荡总裁受文 白洁性荡生活l六 | 久久天天躁狠狠躁夜夜不卡 | 亚洲国产激情 | 国产桃色在线成免费视频 | 一本大道香蕉最新在线视频 | 黄色网址最新 | 免费簧网站永久在线播放国产 | 1024手机在线看 | 黄色一级片在线播放 | 国产欧美日韩另类一区乌克兰 | 午夜片网站 | 精品国产一区二区三区香蕉 | 成人午夜爽爽爽免费视频 | 亚洲一区二区高清 | 午夜yy | 人人草视频在线观看 | 大香伊人网| 青青草成人在线 | 国产精品久久久久久久久免费hd | www.99精品视频在线播放 | 色噜噜狠狠狠狠色综合久 | 午夜aaa| 奇米影视777四色米奇影院 | 男女羞羞网站 | 一级特黄录像播放 | 欧美视频第一页 | 九九免费观看全部免费视频 | aaa一级| 日韩高清中文字幕 | 日韩一区二区超清视频 | 亚洲欧洲高清 | 日日夜夜天天干干 | 99久久亚洲综合精品网站 |