9. Xebium的另一套引擎-FIT

5.測(cè)試前的一些準(zhǔn)備工作中談到了另一套FIT引擎茂契,接下來(lái)大致介紹一下蝶桶。SLIM采用的直接用關(guān)鍵詞調(diào)用,關(guān)鍵詞固定掉冶,所以可以直接調(diào)用已經(jīng)寫好的類真竖,采用行讀取脐雪,每一列的的寫法如下:

|script |Classe Name|? ? ? ? ? // 調(diào)用類

|keyword |Function in Class | import value |? ? ?//check,show恢共,reject战秋,check not....關(guān)鍵詞調(diào)用類方法,傳入值個(gè)數(shù)和方法的傳入變量個(gè)數(shù)一致

|$var= |Function in Class; | import value 1 | import value 2 |? ? ? //類之間用頁(yè)面變量傳遞值讨韭,以及用方法傳入多個(gè)值

而FIT引擎則是通過(guò)Fixture(夾具)來(lái)調(diào)用其它Class脂信,自己實(shí)現(xiàn)關(guān)鍵詞(相當(dāng)于方法名),自定義讀取方式(行讀或者列讀)透硝,調(diào)用后是否銷毀等狰闪。從個(gè)人經(jīng)驗(yàn)來(lái)說(shuō),比較傾向于SLIM引擎濒生,因?yàn)楣潭癖茫蠹易袷匾?guī)范即可;FIT則需要看Fixture的源代碼罪治,否則都不知道怎么調(diào)用第三方Class秋泄,不利于系統(tǒng)的推廣使用和團(tuán)隊(duì)共享。如果只是個(gè)人使用规阀,在界面上可能更為簡(jiǎn)潔恒序,而且,與第三方系統(tǒng)集成時(shí)谁撼,可能自定義一些keyword歧胁,用這種方法就有優(yōu)勢(shì)了,所以大家有必要了解一下厉碟。

1. 要寫fixture喊巍,因?yàn)樾枰獢U(kuò)展系統(tǒng)讀取方法等內(nèi)容,所以必需用到fixturegallery.jarfitnesse-standalone.jar箍鼓,代碼內(nèi)把這2個(gè)jar文件放入lib即可崭参。同樣在寫Xebium腳本的時(shí)候需要把這2個(gè)文件放入Class Path,另外需要告知系統(tǒng)采用FIT引擎:

!define TEST_SYSTEM {fit}

!path .\lib\fitnesse-standalone.jar

!path .\lib\fixturegallery.jar

2. 從gallery中原有的Class繼承款咖,比如:RowFixture何暮,ColumnFixture,我整理了一張表铐殃,大家可以看下:


FixtureGallary

3. 類間傳值海洼,代碼中添加如下兩個(gè)方法即可:

public Object symbolValue(String s){

????return Fixture.getSymbol(s);

}

public void setSymbolValue(String symbol, String value){

????Fixture.setSymbol(symbol, value);

}

腳本中如果需要給變量賦值,那么=function()富腊;如果要傳入方法坏逢,那么function=;如果只是要把方法結(jié)果輸出顯示,那么function是整?

下面我來(lái)舉個(gè)例子吧肖揣,代碼是用Xebium繼承ColumnFixture(類似于SLIM的腳本讀取輸出格式)來(lái)實(shí)現(xiàn)。

先看代碼浮入,用于生成不重復(fù)的文件:

import java.io.File;

import fit.ColumnFixture;

import fit.Fixture;

public class GenerateFolder extends ColumnFixture{

????private String parentFolder = "";

????private String timestamp = String.valueOf(System.currentTimeMillis());

????public void setParentFolder(String parentFolder) {

????????this.parentFolder = parentFolder;

????}

????public String generateFolder(){

????????if(!parentFolder.endsWith(File.separator)){

????????????parentFolder = parentFolder+File.separator;

????????}

????????String dir = parentFolder+"Report_" + timestamp;

????????File folder = new File(dir+File.separator);

????????folder.mkdir();

????????return dir;

????}

? ? public String name(){

????????return "Report_"+ timestamp;

? ? }

????public Object symbolValue(String s){

????????return Fixture.getSymbol(s);

????}

????public void setSymbolValue(String symbol, String value){

????????Fixture.setSymbol(symbol, value);

????}

}

前面的關(guān)注點(diǎn)已經(jīng)說(shuō)過(guò)了龙优,我不重復(fù)了,來(lái)看腳本如何寫:

!define TEST_SYSTEM {fit}

!path .\lib\fitnesse-standalone.jar

!path .\lib\fixturegallery.jar

!path .\lib\Util.jar

!define TestResultDir {!-C:/Xebium/FitNesseRoot/files/jmeterResult-!}

# Util.jar ColumnFixture繼承的類舵盈,自己Coding,打包成jar

!| com.tools.GenerateFolder |

| parentFolder | =generateFolder() | =name() |

| ${TestResultDir} | ResultRecord | Name |

Xebium的腳本顯示如下:


Fit引擎的腳本

界面顯示為:


Xebium頁(yè)面顯示



Class中球化,方法的尋找的方法為:先找同名的方法(如:setParentFolder)秽晚,一旦找不到,那么會(huì)去找parentFolder或者parent folder筒愚。所以赴蝇,腳本里方法名同源碼中對(duì)應(yīng)不上。同樣的巢掺,如果有返回的方法句伶,那么可以用get前綴,腳本中寫不寫都無(wú)所謂陆淀。

變量ResultRecord和Name因?yàn)閏olumn中定義了是從方法返回賦值考余,所以之后可以調(diào)用。如:

!| com.tools.GenerateJMeterCommand |

| testPlanFile | logFile= | resultFolder= | generateBATFile? |

| !-C:/Xebium/lib/JMeterTestPlan-! | Name |? ResultRecord | |

最后轧苫,F(xiàn)itxture的調(diào)用方法楚堤,不是用|script|開始了,而是!|ClassName|來(lái)表示了含懊。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末身冬,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子岔乔,更是在濱河造成了極大的恐慌酥筝,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,635評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件雏门,死亡現(xiàn)場(chǎng)離奇詭異嘿歌,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)茁影,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,543評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門搅幅,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人呼胚,你說(shuō)我怎么就攤上這事茄唐。” “怎么了?”我有些...
    開封第一講書人閱讀 168,083評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵沪编,是天一觀的道長(zhǎng)呼盆。 經(jīng)常有香客問(wèn)我,道長(zhǎng)蚁廓,這世上最難降的妖魔是什么访圃? 我笑而不...
    開封第一講書人閱讀 59,640評(píng)論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮相嵌,結(jié)果婚禮上腿时,老公的妹妹穿的比我還像新娘。我一直安慰自己饭宾,他們只是感情好批糟,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,640評(píng)論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著看铆,像睡著了一般徽鼎。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上弹惦,一...
    開封第一講書人閱讀 52,262評(píng)論 1 308
  • 那天否淤,我揣著相機(jī)與錄音,去河邊找鬼棠隐。 笑死石抡,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的助泽。 我是一名探鬼主播汁雷,決...
    沈念sama閱讀 40,833評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼报咳!你這毒婦竟也來(lái)了侠讯?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,736評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤暑刃,失蹤者是張志新(化名)和其女友劉穎厢漩,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體岩臣,經(jīng)...
    沈念sama閱讀 46,280評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡溜嗜,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,369評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了架谎。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片炸宵。...
    茶點(diǎn)故事閱讀 40,503評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖谷扣,靈堂內(nèi)的尸體忽然破棺而出土全,到底是詐尸還是另有隱情捎琐,我是刑警寧澤,帶...
    沈念sama閱讀 36,185評(píng)論 5 350
  • 正文 年R本政府宣布裹匙,位于F島的核電站瑞凑,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏概页。R本人自食惡果不足惜籽御,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,870評(píng)論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望惰匙。 院中可真熱鬧技掏,春花似錦、人聲如沸项鬼。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,340評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)秃臣。三九已至涧衙,卻和暖如春哪工,著一層夾襖步出監(jiān)牢的瞬間奥此,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,460評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工雁比, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留稚虎,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,909評(píng)論 3 376
  • 正文 我出身青樓偎捎,卻偏偏與公主長(zhǎng)得像蠢终,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子茴她,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,512評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容