十年網(wǎng)站開(kāi)發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專業(yè)推廣+無(wú)憂售后,網(wǎng)站問(wèn)題一站解決
結(jié)束篇:
Fitnesse是一個(gè)有著非常好的創(chuàng)意的軟件。它試圖拉近開(kāi)發(fā)者與用戶的距離。通過(guò)前面的介紹,大家可能也看出來(lái)了,其實(shí)最終還是要落實(shí)到編碼(fixture)上。這些編碼一般來(lái)說(shuō)要由測(cè)試人員來(lái)寫。那么就引發(fā)了我的一些思考:
一、有沒(méi)有必要對(duì)每個(gè)需求都制定驗(yàn)收“表格”。如果這樣做,就意味著要寫非常非常多的fixture。寫這些代碼需要花費(fèi)相當(dāng)?shù)臅r(shí)間,而時(shí)間是昂貴的成本。在能取得大體相同的效果時(shí),有沒(méi)有成本更少的辦法?
二、這些代碼本身是否存在bug,調(diào)試這些代碼以及日后維護(hù)這些代碼是否還要付出更多的成本?——我曾經(jīng)很熱衷于自動(dòng)化測(cè)試工作的推進(jìn),但是后來(lái)我觀察到,如果一段自動(dòng)化測(cè)試代碼寫出來(lái)僅僅執(zhí)行幾次就完了,那么這種自動(dòng)化我認(rèn)為完全沒(méi)有意義。
三、所以,我的觀點(diǎn)是自動(dòng)化只用在那些需要大量回歸、功能固定、相對(duì)底層的測(cè)試上就好了,測(cè)試代碼要盡量的簡(jiǎn)單;盡量不要增加復(fù)雜的邏輯;盡量通用以提高利用率;所花費(fèi)的時(shí)間要盡量少。
基于以上理解,我這里給出一個(gè)通用的fixture和fitnesse表格,此表格在我公司主要用于接口測(cè)試,當(dāng)然也可以用于一般性的頁(yè)面檢查。實(shí)際運(yùn)行將近兩年了,效果還可以。fitnesse內(nèi)置的一些fixture應(yīng)該有類似功能,但我覺(jué)得查找和學(xué)習(xí)使用的時(shí)間可能比自己寫更長(zhǎng),就自己寫了。
package calis.http; import org.apache.http.impl.client.*; import org.apache.http.client.methods.*; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.util.EntityUtils; public class Exist { private String url=null; private String key=null; private String keys[]=null; private String reponseStr; private String result="NotExist"; public void setStartUrl(String url){ this.url=url; } public void setKeyWords(String s){ key=s; if(key.charAt(0)!='/'){ key="/"+key; } keys=key.split("/"); } public String verify(){ return result; } public void execute(){ DefaultHttpClient httpclient = new DefaultHttpClient(); HttpGet httpget = new HttpGet(url); try{ HttpResponse response = httpclient.execute(httpget); HttpEntity entity = response.getEntity(); if (entity != null) { reponseStr=EntityUtils.toString(entity,"UTF-8"); if(keys.length>1){ boolean judge=true; for(int i=1;i表格是這樣的:
calis.http.Exist
start url
key words
verify?
http://cn.bing.com/search?q=%E4%B8%AD%E5%9B%BD
中國(guó)/×××
ok
http://www.126.com
郵箱帳號(hào)登錄/動(dòng)態(tài)密碼登錄
ok
……
……
ok
使用也很簡(jiǎn)單,在start url輸入地址,檢查返回的字符串中是否全部包含了key words指定的字符串。每個(gè)字符串用/分隔。如果全部包含了返回ok,未全部包含返回NoExist。盡管很簡(jiǎn)單,但非常通用,可以用于檢測(cè)一切支持get請(qǐng)求而返回的html、xml、json等多種格式數(shù)據(jù)。
上述代碼中已知的問(wèn)題有:
1.對(duì)非utf-8格式的返回不支持
2.只支持“與”檢查,不支持關(guān)鍵字的其他邏輯關(guān)系
3.未對(duì)html上的轉(zhuǎn)義符做處理,比如在頁(yè)面上顯示為<,其實(shí)編碼是<,那么需要檢查<而不是<
4.由于關(guān)鍵字是由/分隔,那么檢測(cè)返回值中是否含有/是做不到的。
鑒于我一向堅(jiān)持的觀點(diǎn)——測(cè)試代碼要盡量簡(jiǎn)單,我無(wú)意改進(jìn)這些內(nèi)容。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。
當(dāng)前文章:Fitnesse使用系列八-創(chuàng)新互聯(lián)
URL網(wǎng)址:http://m.jiaotiyi.com/article/hihpe.html