![STAX腳本編寫(xiě)文檔_第1頁(yè)](http://file4.renrendoc.com/view/824fb78afc2c74bed84afe7a7198579e/824fb78afc2c74bed84afe7a7198579e1.gif)
![STAX腳本編寫(xiě)文檔_第2頁(yè)](http://file4.renrendoc.com/view/824fb78afc2c74bed84afe7a7198579e/824fb78afc2c74bed84afe7a7198579e2.gif)
![STAX腳本編寫(xiě)文檔_第3頁(yè)](http://file4.renrendoc.com/view/824fb78afc2c74bed84afe7a7198579e/824fb78afc2c74bed84afe7a7198579e3.gif)
![STAX腳本編寫(xiě)文檔_第4頁(yè)](http://file4.renrendoc.com/view/824fb78afc2c74bed84afe7a7198579e/824fb78afc2c74bed84afe7a7198579e4.gif)
![STAX腳本編寫(xiě)文檔_第5頁(yè)](http://file4.renrendoc.com/view/824fb78afc2c74bed84afe7a7198579e/824fb78afc2c74bed84afe7a7198579e5.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
STAX腳本編寫(xiě)STAX介紹
STAF(SoftwareTestAutomationFramework)是開(kāi)源、跨平臺(tái)、支持多語(yǔ)言并且基于可重用的組件來(lái)構(gòu)建的自動(dòng)化測(cè)試框架。它為自動(dòng)化測(cè)試建立了基礎(chǔ),并且提供了一種可插拔的機(jī)制支持不同的語(yǔ)言平臺(tái)。STAF采用點(diǎn)對(duì)點(diǎn)的實(shí)現(xiàn)機(jī)制,被用來(lái)減輕自動(dòng)化測(cè)試的工作負(fù)擔(dān),加快自動(dòng)化測(cè)試的進(jìn)程。在STAF環(huán)境中,所有的機(jī)器都是對(duì)等的,沒(méi)有客戶端和服務(wù)區(qū)的區(qū)分。STAX(SoftwareTestAutomationeXecutionEngire)是基于STAF的執(zhí)行引擎。它在STAF基礎(chǔ)上,幫助用戶實(shí)現(xiàn)測(cè)試用例的分發(fā)、部署、執(zhí)行以及結(jié)構(gòu)分析。STAX使用了三種技術(shù):STAF、XML和Python。簡(jiǎn)單來(lái)說(shuō),STAX在STAF之上提供了一些接口,方便用戶來(lái)操縱STAF進(jìn)行自動(dòng)化測(cè)試的實(shí)現(xiàn)。STAF和STAX的官方網(wǎng)站是:/。XML簡(jiǎn)單教程XML是英文Extensiblemarkuplanguage的縮寫(xiě),中文意思是“可擴(kuò)展標(biāo)記語(yǔ)言”。XML的主要功能是幫助系統(tǒng)信息通過(guò)互聯(lián)網(wǎng)共享結(jié)構(gòu)化的數(shù)據(jù)。XML不是一個(gè)軟件,也不是編程語(yǔ)言,XML只是一個(gè)標(biāo)記語(yǔ)言的標(biāo)準(zhǔn)。用XML標(biāo)準(zhǔn)編寫(xiě)的文件,我們稱為XML文件。下面是一個(gè)簡(jiǎn)單的XML文件。<booksISBN="9787544238212">
<title>Thebookthief</title>
<price>25</price>
<quantity>10</quantity></books>編寫(xiě)XML必須遵循一些簡(jiǎn)單的語(yǔ)法規(guī)則:(1)、每個(gè)開(kāi)始標(biāo)記必須有結(jié)束標(biāo)記(2)、每個(gè)XML文檔只能有一個(gè)根元素(3)、所有XML元素必須正確嵌套(4)、屬性值必須加引號(hào)STAX腳本采用基于XML的腳本語(yǔ)言進(jìn)行編寫(xiě),這是專(zhuān)門(mén)為STAX測(cè)試設(shè)計(jì)的一種語(yǔ)言。在STAX腳本中,根元素是<stax>。一個(gè)STAX腳本的基本格式是這樣的:<?xmlversion=’1.0”encoding=”UTF-8”standalone=”no”?><!DOCTYPEstaxSYSTEM‘stax.dtd”><stax></stax>腳本的頭兩行是固定的,主要指名我們采用的XML版本和編碼規(guī)則,我們不進(jìn)行詳細(xì)講解。我們需要將自己的代碼寫(xiě)在<stax>和</stax>之間。XML的官方網(wǎng)站是。參考文獻(xiàn)1是XML的簡(jiǎn)明教程。Python簡(jiǎn)單教程Python是一種腳本語(yǔ)言,STAX利用Python定義變量和表達(dá)式。變量命名規(guī)則:(1)、變量由字母、數(shù)字和下劃線組成,第一個(gè)字符必須是字母或者下劃線。(2)、變量區(qū)分大小寫(xiě)。(3)、Python中的關(guān)鍵字不能用作STAX的變量名(4)、STAX的保留字也不能用作變量名。STAX的保留字包括:RC、以”STAF’開(kāi)頭的單詞、以”STAX”開(kāi)頭的單詞。<script>testName="CoolTest1"</script><script>testName='CoolTest1'</script>這兩條語(yǔ)句作用相同,都是將字符串CoolTest1賦值給變量testName。<script>testName=CoolTest1</script>這條語(yǔ)句的作用是將變量CoolTest1的值賦給變量testName。如果變量CoolTest1在前面沒(méi)有定義,腳本出錯(cuò)。<testcasename="'Test1'">這條語(yǔ)句的作用是將字符串Test1賦值給變量name。注意這里是雙引號(hào)里面包含單引號(hào)?!罕硎締我?hào)“:表示雙引號(hào)"':表示雙引號(hào)嵌套單引號(hào)<testcasename="testName">這條語(yǔ)句的作用是將變量testName的值賦給變量name。由于XML中屬性值必須用引號(hào)引起來(lái),因此這里的testName不是字符串,而是變量。<script>testName="CoolTest1"</script><testcasename="testName">這樣,name的值是字符串CoolTest1。<script>testName=“Test1”MachineName=“l(fā)ocal”</script><testcasename="'%sPartA'%testName"><testcasename="'%sPartAonmachine%s'%(testName,machineName)">我們可以用%引用一個(gè)變量的值。上面這段腳本相當(dāng)于<testcasename=”’Test1partA’”><testcasename=”’Test1partAonmachinelocal’”>Python的官方網(wǎng)站是/。參考文件2是Python的簡(jiǎn)明教程。STAX腳本教程有了前面的知識(shí),我們來(lái)正式介紹stax腳本的編寫(xiě)規(guī)則。一個(gè)stax腳本的基本模板是這樣的:<?xmlversion=’1.0”encoding=”UTF-8”standalone=”no”?><!DOCTYPEstaxSYSTEM“stax.dtd”><stax><defaultcallfunction=”FunctionA”/><functionname=”FunctionA”>……</function><functionname=”FunctionB”>……</function><functionname=”FunctionC”>……</function></stax>腳本開(kāi)頭兩行是關(guān)于腳本的說(shuō)明,stax是腳本的根標(biāo)簽,除去腳本說(shuō)明以外的所有標(biāo)簽必須包含在根標(biāo)簽中。defaultcall是腳本執(zhí)行時(shí)首先執(zhí)行的語(yǔ)句。這個(gè)標(biāo)簽有個(gè)屬性function=”FunctionA”,表示默認(rèn)執(zhí)行函數(shù)FunctionA,相當(dāng)于C語(yǔ)言中的main函數(shù)。<functionname=”FunctionA”>……</function>是函數(shù)FunctionA的定義,標(biāo)簽function表示一個(gè)函數(shù),這個(gè)元素有一個(gè)屬性name指名了函數(shù)的名字。函數(shù)體定義在<function>和</function>中間。我們看到,這個(gè)腳本中一共定義了三個(gè)函數(shù)FunctionA、FunctionB、FunctionC。我們可以通過(guò)FunctionA去調(diào)用函數(shù)FunctionB和FunctionC。下面是一個(gè)更加詳細(xì)的例子。?xmlversion="1.0"encoding="UTF-8"standalone="no"?><!DOCTYPEstaxSYSTEM"stax.dtd"><stax><defaultcallfunction="FunctionA"/><functionname="FunctionA"><process><location>'local'</location><command>'ls'</command><parms>'-l/'</parms></process></function><functionname="FunctionB"><stafcmd><location>'local'</location><service>'misc'</service><request>'version'</request></stafcmd></function><functionname="FunctionC"><log>'Thisfunctionlogsthismessage'</log></function></stax>FunctionA中包含一個(gè)process元素。process代表一個(gè)STAF進(jìn)程,這個(gè)進(jìn)程調(diào)用STAFPROCESS服務(wù)在指定的機(jī)器上執(zhí)行指定的命令。因此,F(xiàn)unctionA的作用是在本地執(zhí)行命令”ls-l/”。FunctionB中包含一個(gè)元素stafcmd。stafcmd表示要請(qǐng)用一個(gè)服務(wù)。因此,F(xiàn)unctionB相當(dāng)于命令”staflocalmiscversion”。Function包含一個(gè)元素log,產(chǎn)生日志信息。4.1python代碼4.4.1<script>標(biāo)簽說(shuō)明:stax腳本中,標(biāo)簽script中的語(yǔ)句是Python語(yǔ)句,我們可以在這里定義XML文件解析和執(zhí)行時(shí)用到的一些變量。我們還可以在這里加載python模塊,執(zhí)行python函數(shù)。<stax>中包含的<script>在文件執(zhí)行前被初始化,<stax>中所有函數(shù)都可以用<script>中定義的變量,這些變量相當(dāng)于其他語(yǔ)言中的全局函數(shù)。其他標(biāo)簽中包含的<script>中定義的變量只能在特定范圍內(nèi)有效,相當(dāng)于其他函數(shù)中的局部變量。例子:<script>testName="CoolTest1"</script>這條語(yǔ)句的作用是將字符串CoolTest1賦給變量testName。<script>machName=STAFResult</script>這條語(yǔ)句的作用是將變量STARTResult的值賦給變量machName。<script>fromrandomimportrandomr=random()</script>這條語(yǔ)句的作用是加載random模塊,然后產(chǎn)生0-1之間的隨機(jī)數(shù)。4.2服務(wù)調(diào)用4.2.1<process>標(biāo)簽作用:為了編寫(xiě)STAX腳本方便,STAX定義了process標(biāo)簽用來(lái)調(diào)用STAF中的進(jìn)程(process)服務(wù)。<process>標(biāo)簽會(huì)向process服務(wù)提交start需求,然后等待process執(zhí)行。返回值:process服務(wù)調(diào)用結(jié)束后會(huì)產(chǎn)生以下返回值。返回值說(shuō)明RC本次執(zhí)行的錯(cuò)誤碼,0表示正常,非0值表示執(zhí)行出錯(cuò)。STAFResult本次執(zhí)行的錯(cuò)誤信息,成功為None,不成功STAFResult中包含具體出錯(cuò)信息。STAXResult本次執(zhí)行的返回信息,參見(jiàn)下面的例子。子標(biāo)簽:process包含以下子標(biāo)簽子標(biāo)簽名稱屬性說(shuō)明locationrequiredprocess執(zhí)行的機(jī)器。local表示本機(jī)2表示在IP地址為2的機(jī)器上執(zhí)行。commandrequired執(zhí)行的命令parmsoptional執(zhí)行命令需要的參數(shù),其他參數(shù)不再介紹。returnstdoutoptional標(biāo)準(zhǔn)輸出例子:<processname="'TestProcess'"><location>'local'</location><command>'ls’</command><parms>'-l'</parms><returnstdout/></process><ifexpr="RC==0"><message>STAXResult</message></if>上面這段程序中,我們執(zhí)行了一條指令ls-l/,STAXResult將包含根目錄下所有目錄的列表。4.2.2<stafcmd>標(biāo)簽作用:標(biāo)簽stafcmd用于調(diào)用STAF的命令。返回值:調(diào)用結(jié)束后有以下返回值供我們使用返回值說(shuō)明RC本次執(zhí)行的錯(cuò)誤碼,0表示正常,非0值表示執(zhí)行出錯(cuò)。STAFResult本次執(zhí)行的錯(cuò)誤信息,成功為None,不成功STAFResult中包含具體出錯(cuò)信息。STAXResult本次執(zhí)行的返回信息。子標(biāo)簽:stafcmd包含以下子標(biāo)簽:子標(biāo)簽屬性說(shuō)明locationrequiredSTAF命令在哪臺(tái)機(jī)器上執(zhí)行servicerequired接收request的服務(wù)的名稱requestrequired我們提交的需求例子:<stafcmd><location>'2'</location><service>'PING'</service><request>'PING'</request></stafcmd><ifexpr="RC!=0"><log>'STAF%sPINGPINGrequestfailedwithRC:%s,Result:%s'%(RC,STAFResult)</log></if>上面是stafcmd的一個(gè)例子,這個(gè)例子的作用是向機(jī)器2的PING服務(wù)提交PING需求,判斷機(jī)器2的STAF是否正常運(yùn)行。當(dāng)命令執(zhí)行結(jié)束后,if標(biāo)簽檢測(cè)返回值,如果返回值不是0表明192。168.0.42上STAF運(yùn)行不正常,錯(cuò)誤信息寫(xiě)入日志中。<stafcmd>
<location>'local'</location>
<service>'process'</service>
<request>'startcommand"ls"parms"-l"wait'</request></stafcmd>上面這段程序和4.2.1節(jié)中的例子作用完全一樣。4.3并行執(zhí)行STAF可以執(zhí)行并行操作,即多個(gè)操作可以同時(shí)進(jìn)行。4.3.1<parallel>標(biāo)簽作用:parallel標(biāo)簽可以包含子標(biāo)簽,這些子標(biāo)簽將并行執(zhí)行。當(dāng)所有的子標(biāo)簽執(zhí)行結(jié)束后,parallel標(biāo)簽執(zhí)行結(jié)束。例子:<parallel><stafcmd>...</stafcmd><process>...</process><callfunction="'VerifyRC'"/></parallel>在這個(gè)例子中,stafcmd、process、call三個(gè)操作同時(shí)執(zhí)行。4.3.2<paralleliterate>標(biāo)簽作用:paralleliterate標(biāo)簽是并行執(zhí)行的另一種方法。在使用paralleliterate前需要定義一個(gè)列表,paralleliterate標(biāo)簽中只包含一個(gè)執(zhí)行子標(biāo)簽,列表中的每一個(gè)元素都要執(zhí)行子標(biāo)簽中指定的任務(wù),而且是并行執(zhí)行的。當(dāng)列表中所有的元素任務(wù)執(zhí)行完畢時(shí),paralleliterate結(jié)束。屬性:paralleliterate標(biāo)簽含有以下幾個(gè)屬性:屬性說(shuō)明var列表中的元素in我們定義好的列表,列表中的元素將進(jìn)行并行操作例子:<script>machineList=[’2’,’3’,’4’]</script><paralleliteratevar=”machineName”in=”machineList”><stafcmd><location>’local’</location><service>’PING’</service><request>’PINGMACHINE%s’%machineName</request></stafcmd></paralleliterate>在這個(gè)例子中,我們將會(huì)從本機(jī)同時(shí)ping42、43、44三臺(tái)機(jī)器。4.4函數(shù)創(chuàng)建和調(diào)用這一節(jié)中,我們來(lái)談?wù)凷TAX中如何創(chuàng)建函數(shù),如何調(diào)用函數(shù)。4.4.1<function>標(biāo)簽作用:我們采用標(biāo)簽<function>創(chuàng)建函數(shù)。屬性:function有一個(gè)屬性name指名這個(gè)function的名字。屬性說(shuō)明name函數(shù)的名字例子:<functionname=”FunctionA”>……</function>4.4.2<function-map-args>標(biāo)簽作用:我們用<function-map-args>創(chuàng)建帶有參數(shù)的函數(shù)。我們?cè)?.4.1中創(chuàng)建的函數(shù)沒(méi)有參數(shù),若想創(chuàng)建帶參數(shù)的函數(shù),需要在<function>標(biāo)簽中使用<function-map-args>標(biāo)簽。例子:<functionname=”FunctionA”><function-map-args><function-required-argname="parms"/><function-optional-argname="machine"default="'local'"/><function-optional-argname="command"default="'ls'"/></function-map-args>……</function>我們將所有的參數(shù)放在標(biāo)簽<function-map-args>中,變量分為兩種類(lèi)型:<function-required-arg>:這種變量在函數(shù)調(diào)用時(shí)必須傳遞值。<function-optional-arg>:這種變量有默認(rèn)值,函數(shù)調(diào)用時(shí)可以傳值,可以不傳值。如果不傳遞值就使用默認(rèn)值。4.4.3<function-list-args>標(biāo)簽作用:<function-list-args>標(biāo)簽和<function-map-args>標(biāo)簽作用類(lèi)似,也是用來(lái)創(chuàng)建帶有參數(shù)的函數(shù)。這兩個(gè)標(biāo)簽的主要區(qū)別時(shí)函數(shù)調(diào)用時(shí)參數(shù)的形式有差異。例子:<functionname=”FunctionA”><function-list-args><function-required-argname="parms"/><function-optional-argname="machine"default="'local'"/><function-optional-argname="command"default="'ls'"/></function-list-args>……</function>4.4.4<call>標(biāo)簽作用:我們用<call>標(biāo)簽調(diào)用前面定義的函數(shù)。例子:調(diào)用不帶參數(shù)的函數(shù)<functionname=”FunctionA”>……</function><functionname=”FunctionB”><callfunction=”’FunctionA’”/></function>調(diào)用<function-map-args>標(biāo)簽定義的帶參數(shù)的函數(shù)<functionname=”FunctionB”><callfunction="'FunctionA'">{'parms':'aaa','machine':'97'}</call></function>調(diào)用<function-map-args>標(biāo)簽定義的才參數(shù)的函數(shù),我們需要將參數(shù)寫(xiě)成字典的形式。鍵值就是函數(shù)定義時(shí)的參數(shù)名稱。我們傳遞給parms的值是字符串a(chǎn)aa,我們傳遞給machine的值是字符串2,參數(shù)command沒(méi)有傳遞值就采用默認(rèn)值ls。調(diào)用<function-list-args>標(biāo)簽定義的帶參數(shù)的函數(shù)<functionname=”FunctionB”><callfunction="'FunctionA'">’aaa’,‘2’</call></function>我們按照變量定義的順序進(jìn)行賦值,第一個(gè)值aaa賦給第一個(gè)變量parms,第二個(gè)值賦給第二個(gè)變量machine,第三個(gè)變量采用默認(rèn)值ls。4.4.5<call-with-map>標(biāo)簽作用:<call-with-map>標(biāo)簽是調(diào)用<function-map-args>標(biāo)簽定義的帶參函數(shù)的另一種方式。作用與采用<call>標(biāo)簽調(diào)用<function-map-args>標(biāo)簽定義的帶參函數(shù)一樣。例子:<functionname=”FunctionB”><call-with-mapfunction="'FunctionA'"><call-map-argname="'parms'">'aaa'</call-map-arg><call-map-argname=”’machine’”>’2’</call-map-arg></call-with-map></function>name屬性對(duì)應(yīng)函數(shù)定義時(shí)指定的參數(shù)名稱,<call-map-arg>與</call-map-arg>中間的值就是參數(shù)值。4.4.6<defaultcall>標(biāo)簽作用:這個(gè)標(biāo)簽指名腳本執(zhí)行時(shí)默認(rèn)調(diào)用的函數(shù)。例子:<defaultcallfunction="main"/><functionname=”main”>……</function>腳本啟動(dòng)時(shí)默認(rèn)調(diào)用main函數(shù)。4.4.7<return>標(biāo)簽作用:我們可以用<return>標(biāo)簽指定函數(shù)返回值。函數(shù)執(zhí)行到return語(yǔ)句就返回主調(diào)函數(shù),不再向下執(zhí)行。如果函數(shù)中沒(méi)有return語(yǔ)句,那么執(zhí)行完所有的函數(shù)語(yǔ)句返回主調(diào)函數(shù)。在主調(diào)函數(shù)中,我們可以用變量STAXResult獲取函數(shù)返回值。這個(gè)變量可以表示任何類(lèi)型,如整型、字符串、列表等等。例子:<?xmlversion="1.0"encoding="UTF-8"standalone="no"?><!DOCTYPEstaxSYSTEM"stax.dtd"><stax><defaultcallfunction="main"/><functionname="FunctionA"><function-list-args><function-required-argname="x"/><function-required-argname="y"/></function-list-args><sequence><script>x=x+2y.append('test3')</script><return>x,y</return></sequence></function><functionname="main"><sequence><script>A=1B=['test1','test2']</script><callfunction="'FunctionA'">A,B</call><script>A,B=STAXResult</script><message>'A=%s,B=%s'%(A,B)</message></sequence></function></stax>這是一個(gè)完整的腳本,這個(gè)腳本中我們定義了兩個(gè)函數(shù)FunctionA和main,F(xiàn)unctionA帶有兩個(gè)參數(shù)x和y,在函數(shù)FunctionA內(nèi)部,我們讓x的值加2,y增加一個(gè)元素’test3’,然后返回x和y的值。main是主調(diào)函數(shù),定義了兩個(gè)變量A=1B=[’test1’,’test2’],然后調(diào)用函數(shù)FunctionA,調(diào)用結(jié)束后查看返回值,最終結(jié)果應(yīng)該是:A=3,B=[’test1’,’test2’,’test3’]。4.4.8<import>標(biāo)簽作用:import標(biāo)簽用于加載其他STAX腳本中定義的函數(shù),這個(gè)標(biāo)簽有下面兩個(gè)屬性屬性說(shuō)明machineSTAX腳本在哪臺(tái)機(jī)器上machine=”’2’”表示STAX腳本在2這臺(tái)機(jī)器上。file我們要引入的腳本file=”’/usr/local/staf/samples/test1.xml表示我們要引入的是test1.xml這個(gè)STAX腳本。例子:文件test1.xml中定義了如下函數(shù)<functionname="FunctionA"><function-list-args><function-required-argname="x"/><function-required-argname="y"/></function-list-args><sequence><script>x=x+2y.append('test3')</script><return>x,y</return></sequence></function>我們?cè)谖募est2.xml中想調(diào)用函數(shù)FunctionA<functionname=”main”><sequence><script>A=1B=['test1','test2']</script><importmachine=”’local’”file=”’/usr/local/staf/samples/test1.xml’”><callfunction="'FunctionA'">A,B</call><script>A,B=STAXResult</script><message>'A=%s,B=%s'%(A,B)</message></sequence>4.5流程控制STAX腳本中也有if、loop等標(biāo)簽控制語(yǔ)句流程。4.5.1<loop>標(biāo)簽作用:<loop>標(biāo)簽表示語(yǔ)句循環(huán),被loop包含的語(yǔ)句將執(zhí)行若干次。屬性:<loop>標(biāo)簽有幾個(gè)屬性。屬性說(shuō)明var循環(huán)過(guò)程中的變量from循環(huán)的起點(diǎn)to循環(huán)的終點(diǎn)<loopvar=”i”from=”0”to=”5”>相當(dāng)于C語(yǔ)言中的for(i=0,i<=5,i++)。例子:<loopfrom=”0”to=”5”><stafcmd><location>'2'</location><service>'PING'</service><request>'PING'</request></stafcmd></loop>上面這段語(yǔ)句表示執(zhí)行6次PING服務(wù)。4.5.2<iterate>標(biāo)簽作用:這個(gè)標(biāo)簽表示迭代,在迭代之前我們要先定義一個(gè)迭代的范圍machineList=[’2’,‘3’,‘4’]。<iterate>會(huì)依次獲取列表中的每一個(gè)元素執(zhí)行指定的操作。屬性:<iterate>標(biāo)簽有三個(gè)屬性。屬性說(shuō)明var表示正在迭代的變量in表示迭代范圍indexvar表示正在迭代的變量在迭代范圍中的編號(hào)例子:<script>machineList=[’2’,‘3’,‘4’]</script><iteratevar=”machineName”in=”machineList”><stafcmd><location>’local’</location><service>'PING'</service><request>'PINGMACHINE%s'%machineName</request></stafcmd></iterate>上面這段語(yǔ)句表示在本機(jī)依次PING42、43、44三臺(tái)機(jī)器。4.5.3<if>標(biāo)簽作用:STAX中有三個(gè)標(biāo)簽用于選擇流程:<if>、<elseif>、<else>,相當(dāng)于C語(yǔ)言中的if、elseif、else語(yǔ)句。例子:<script>fromrandomimportrandom</script><script>r=random()*100</script><ifexpr="r>75"><callfunction="'Function1'"/><elseifexpr="r>50"><callfunction="'Function2'"/></elseif><elseifexpr="r>25"><callfunction="'Function3'"/></elseif><else><callfunction="'Function4'"/></else></if>fromrandomimportrandom表示加載random模塊中的random函數(shù),第一個(gè)random是Python中的一個(gè)模塊名稱,第二個(gè)random是random模塊中的一個(gè)函數(shù)的名稱。random函數(shù)生成0-1之間的隨機(jī)數(shù)。我們看到,上面這段程序?qū)Σ煌那闆r進(jìn)行了不同的處理。如果r大于75執(zhí)行函數(shù)function1,如果r在50-75之間執(zhí)行函數(shù)Function2,如果r在25-50之間執(zhí)行函數(shù)function3,如果r在0-25之間執(zhí)行函數(shù)Function4。4.6執(zhí)行測(cè)試用例4.6.1<testcase>標(biāo)簽作用:<testcase>是用來(lái)執(zhí)行測(cè)試用例的一個(gè)標(biāo)簽,STAX就是執(zhí)行自動(dòng)化測(cè)試的,因此<testcase>標(biāo)簽是非常重要的一個(gè)標(biāo)簽。<testcase>有一個(gè)屬性name用于表明測(cè)試用例的名稱。<testcase>要和<tcstatus>標(biāo)簽聯(lián)合使用。<tcstatus>是用于標(biāo)明本次測(cè)試狀態(tài)的一個(gè)標(biāo)簽。<tcstatus>有一個(gè)屬性result,<tcstatusresult="'pass'"/>表示測(cè)試通過(guò),<tcstatusresult="'fail'"/>表示測(cè)試失敗。例子:腳本testcase.xml定義如下:<?xmlversion="1.0"encoding="UTF-8"standalone="no"?><!DOCTYPEstaxSYSTEM"stax.dtd"><stax><functionname="test"><sequence><script>fromrandomimportrandintr=randint(1,100)</script><stafcmd><location>'local'</location><service>'DELAY'</service><request>'DELAY2000'</request></stafcmd><return>r</return></sequence></function></stax>腳本test.xml定義如下:<?xmlversion="1.0"encoding="UTF-8"standalone="no"?><!DOCTYPEstaxSYSTEM"stax.dtd"><stax><defaultcallfunction="begin_tests"/><script>ImportMachine='local'ImportDirectory='{STAF/Config/STAFRoot}/services/stax/samples'</script><functionname="begin_tests"><sequence><importmachine="'local'"file
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 農(nóng)村施工合同范本
- 舉升機(jī)租賃合同范本
- 代理pos機(jī)合同范本
- 中藥配方顆粒買(mǎi)賣(mài)合同范例
- 人教版部編歷史七年級(jí)上冊(cè)《第19課 北魏政治和北方民族大交融》聽(tīng)課評(píng)課記錄
- 湘教版數(shù)學(xué)八年級(jí)上冊(cè)1.5《分式方程的應(yīng)用》聽(tīng)評(píng)課記錄2
- 八年級(jí)數(shù)學(xué)下冊(cè)23.3事件的概率1聽(tīng)評(píng)課記錄滬教版五四制
- 人教版地理八年級(jí)下冊(cè)6.3《世界上最大的黃土堆積區(qū)-黃土高原》聽(tīng)課評(píng)課記錄1
- 蘇科版數(shù)學(xué)八年級(jí)上冊(cè)聽(tīng)評(píng)課記錄《5-1物體位置的確定》
- 用功合同范本(2篇)
- 二零二五年度大型自動(dòng)化設(shè)備買(mǎi)賣(mài)合同模板2篇
- 2024版金礦居間合同協(xié)議書(shū)
- 江西省部分學(xué)校2024-2025學(xué)年高三上學(xué)期1月期末英語(yǔ)試題(含解析無(wú)聽(tīng)力音頻有聽(tīng)力原文)
- GA/T 2145-2024法庭科學(xué)涉火案件物證檢驗(yàn)實(shí)驗(yàn)室建設(shè)技術(shù)規(guī)范
- 2025內(nèi)蒙古匯能煤化工限公司招聘300人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025年中國(guó)融通資產(chǎn)管理集團(tuán)限公司春季招聘(511人)高頻重點(diǎn)提升(共500題)附帶答案詳解
- 寵物護(hù)理行業(yè)客戶回訪制度構(gòu)建
- 電廠檢修管理
- 《SPIN銷(xiāo)售法課件》課件
- 機(jī)動(dòng)車(chē)屬性鑒定申請(qǐng)書(shū)
- 2024年中考語(yǔ)文試題分類(lèi)匯編:非連續(xù)性文本閱讀(學(xué)生版)
評(píng)論
0/150
提交評(píng)論