ZStack 技術(shù)白皮書自動(dòng)化測試系統(tǒng)_第1頁
ZStack 技術(shù)白皮書自動(dòng)化測試系統(tǒng)_第2頁
ZStack 技術(shù)白皮書自動(dòng)化測試系統(tǒng)_第3頁
ZStack 技術(shù)白皮書自動(dòng)化測試系統(tǒng)_第4頁
ZStack 技術(shù)白皮書自動(dòng)化測試系統(tǒng)_第5頁
已閱讀5頁,還剩64頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

自動(dòng)化測試系統(tǒng)0102目錄目錄 3 3ZSTACKZSTACK--自動(dòng)化測試系統(tǒng)1:集成測試基于模塊的測試。其中集成測試構(gòu)建于Junit之統(tǒng)提供的各種各樣的功能,開發(fā)人員可以快速的寫出測試用例,用于驗(yàn)證一個(gè)新特性或者04基于模塊的測試系統(tǒng)構(gòu)建于基于模塊的測試這么一個(gè)理論,是zstack-好奇的讀者可能已經(jīng)在他們的心中問了這么一個(gè)問題,為什么我們沒有提到單元測用在命令中的命名類似于:UnitTestbalabala,但在這篇文章中被命名為的單元測試概念有所不同,傳統(tǒng)的方式是測試一小段代碼,通常是針對(duì)內(nèi)部結(jié)構(gòu)的白試用例,因?yàn)闀?huì)加載多個(gè)依賴的服務(wù)、組件用以執(zhí)行一個(gè)測試這對(duì)單元測試的定義而言,這就是傾向于集成測試的黑盒測試?;谶@些事實(shí),我05從我們先前的經(jīng)驗(yàn)中,我們深刻地意識(shí)到,開發(fā)人員持續(xù)忽視測試的一個(gè)對(duì)于幾乎所有的測試用例而言,有兩種重復(fù)性的工作。其中一個(gè)是準(zhǔn)備一個(gè)最小的但6con.addXml("PortalForUnitTest.xml").addXml("ZoneManager.xml").addXml("AccountManagerdbf=loader.getComponent(DatabaseFac}為了幫助測試人員準(zhǔn)備一個(gè)環(huán)境,包含將被測試的活動(dòng)的所有必須依賴,我7Deployer("deployerXml/vm/TestCrealoader=deployer.gebus=loader.getComponentdbf=loader.getComponent(DatabaseFac}publicvoidtest()throwsApiSenderException,InterruptedException{api.listInstanceOfferingImageInventoryiminv=api.listIVmInstanceInventoryinv=Assert.assertEquals(inv.getInstanceOfferingUuid(),Assert.assertEquals(inv.getImageUuid(),Assert.assertEquals(VmInstanceState.Running.toString(),Assert.assertEquals(3,inv.getVmNics().size());VmInstanceVOvm=dbf.findByUuid(inv.getUuid(),VmInstanceVO.class);Assert.assertNotNull(vm);Assert.assertEquals(VmInstanceState.Running,VmNicVOnvo=dbf.findByUuid(niVmNicVO.class);Assert.assertNotNull(nvo);}VolumeVOroot=dbf.findByUuid(inv.getRootVolumeUuid(),VolumeVO.class);9AssertAssert.assertNotNull(root);{VolumeVOdata=dbf.findByUuid(v.getUuid(),VolumeVO.class);Assert.assertNotNull(data);}}}}<?xml<?xmlversion="1.0"encodi<deployerConfigxmlns="/schema<instanceOfferingname="TestInstandescription="Test"memoryCapacity="3G"<simulatorBackupStoragename="TestBackdescription="Test"url="nfs://t<imagename="TestImage"descripformat="simulator"><backupStorageRef>TestBackupStorage</backupS<diskOfferingname="TestRootDi<diskOffering<diskOfferingname="TestDataDi<userVmname="TestVm"descript<rootDiskOfferingRef>TestRootDiskOffering</rootDiskO><imageRef>TestImage<instanceOfferingRef>TestInstanceOffering</instanceO><l3NetworkRef>TestL3Network1</l3N<l3NetworkRef>TestL3Network2</l3N<l3NetworkRef>TestL3Network3</l3N<defaultL3NetworkRef>TestL3Network1</defaultL3N<diskOfferingRef>TestDataDiskOffering</diskOf<zonename="TestZone"descript<clustername="TestCluster"descripti<simulatorHostnamemanagementIp="1"memoryCapacity="8G"cpuNum="4"cpuSpeed="260<simulatorHostnamemanagementIp="2"memoryCapacity="4G"cpuNum="4"cpuSpeed="260<primaryStorageRef>TestPrimaryStorage</primaryS<l2NetworkRef>TestL2Network</l2<l2NoVlanNetworkname="TesphysicalInterfacephysicalInterface="eth0"><l3BasicNetworkname="Testdescription="Test"startIp="00"endIp="00"gateway=""netmask="255.0.0<l3BasicNetworkname="Testdescription="Test"startIp="00"endIp="00"gateway=""netmask="255.0.0.<l3BasicNetworkname="Testdescription="Test"startIp="00"endIp="00"gateway=""netmask="255.0.0.description="Test"totalC<backupStorageRef>TestBackupStorage</backupS@@RequestMapping(value=KVMConstant.KVM_MERGE_SNAPSHOT_PATH,mergeSnapshot(HttpServletRequestreq){HttpEntity<String>entity=restf.httpServletReqJSONObjectUtil.toObjeMergeSnapshotRsprsp=newsnapshotKvmSimulator.mercmd.getDestPath(),cmd}}@RequestMapping@RequestMapping(value=KVMConstant.KVM_TAKE_VOLUME_SNAPSHOT_PATpublic@ResponseBodyStringtakeSnapshot(HttpHttpEntity<String>entity=restf.httpServletReqJSONObjectUtil.toObjeTakeSnapshotResponsersp=newTakeSrsp=snapshotKvmSimulat}}0每一個(gè)模擬器都有一個(gè)配置對(duì)象,像KVMSimulatorConfig,可以Dconfig=unitTestSui0<?xml<?xmlversion="1.0"encodi<UnitTestSuiteConfigxmlns="/schema/zstack"class="org.zstack.test.eip.TestViclass="org.zstack.test.eip.TestVirclass="org.zstack.test.eip.TestVirclass="org.zstack.test.eip.TestVirclass="org.zstack.test.eip.TestVirclass="org.zstack.test.eip.TestVirclass="org.zstack.test.eip.TestVirclass="org.zstack.test.eip.TestVirclass="org.zstack.test.eip.TestVirclass="org.zstack.test.eip.TestVirclass="org.zstack.test.eip.TestVirtclass="org.zstack.test.eip.TestVirtclass="org.zstack.test.eip.TestVirtclass="org.zstack.test.eip.TestVirtclass="org.zstack.test.eip.TestVirtclass="org.zstack.test.eip.TestVirtclass="org.zstack.test.eip.TestVirtclass="org.zstack.test.eip.TestVirtclass="org.zstack.test.eip.TestVirtclass="org.zstack.test.eip.TestVirtclass="org.zstack.test.eip.TestVirtclass="org.zstack.test.eip.TestVirtclass="org.zstack.test.eip.TestVirtclass="org.zstack.test.eip.TestVirtclass="org.zstack.test.eip.TestVirtclass="org.zstack.test.eip.TestVirt<TestCaseclass="org.zstack.test.eip.TestQueclass="org.zstack.test.eip.TestEipPortForwardDcases=TestAddImage,TestCreateTemplateFromRootVolum00ZSTACKZSTACK——自動(dòng)化測試系統(tǒng)2:系統(tǒng)測試樣,這個(gè)系統(tǒng)測試也是全自動(dòng)的,而且覆蓋的層面包括成測試用例主要關(guān)注一個(gè)簡單的場景,在一個(gè)簡單的人造的環(huán)境中;舉個(gè)例子,還是創(chuàng)建2.易于編寫和維護(hù)測試用例:就像集成測試系統(tǒng),系統(tǒng)測試系統(tǒng)接管了0zstack-woodpecker完全由我們自己創(chuàng)建;在決0敏銳的讀者可能會(huì)注意到一些參數(shù)是在其他的測試框架中看第一個(gè)是timeout;每一個(gè)測試用例可以定義自己第二個(gè)是repeat,允許你在測試套件中指定這000一旦所有的測試用例完成,一個(gè)報(bào)告將會(huì)被生成并被打話。為了在一般的日志中記錄更多的細(xì)節(jié),有一種特殊的日志act本來源,而不用被測試框架的日志分散注意力。另外,它是一種重要的工具,可以自生成一個(gè)新的用例用于重現(xiàn)失敗,這是一個(gè)我們所使用的魔法武器,用于在基于模型的測0環(huán)境。例如:zstack-cli-dzstack-這里的XML配置文件的格式類似于集成測0注意:正如你可能會(huì)猜測的,這個(gè)工具可以被管理0在系統(tǒng)測試中測試用例可以被高度模塊化。每一個(gè)用例本質(zhì)上執(zhí)行以下三Zstack-woodpecker本身提供一個(gè)完整的庫用于幫助測試人像集成測試一樣,測試人員可以僅以十幾行便寫出一個(gè)測試用例。模塊化不只簡化測試用例的編寫,也為基于模型的測試構(gòu)建了一個(gè)堅(jiān)實(shí)的基礎(chǔ),下篇0ZSTACKZSTACK——自動(dòng)化測試系統(tǒng)3:基于模型的測試基于模型的測試可以克服人類邏輯思考的缺陷來執(zhí)行一些,看起來反人類邏輯,但完全正確的測試,幫助發(fā)現(xiàn)難以被人類主導(dǎo)的測試發(fā)現(xiàn)的0測試用例這么做。這就是機(jī)器思考閃光的地方,因?yàn)樗鼪]有人類的感情,會(huì)做人類在基于模型的測試系統(tǒng)中,每一個(gè)資源的每一個(gè)狀態(tài)都預(yù)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論