Fitnesse使用系列八-創(chuàng)新互聯(lián)

結(jié)束篇:

創(chuàng)新互聯(lián)自2013年創(chuàng)立以來,先為孝昌等服務(wù)建站,孝昌等地企業(yè),進行企業(yè)商務(wù)咨詢服務(wù)。為孝昌企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。

Fitnesse是一個有著非常好的創(chuàng)意的軟件。它試圖拉近開發(fā)者與用戶的距離。通過前面的介紹,大家可能也看出來了,其實最終還是要落實到編碼(fixture)上。這些編碼一般來說要由測試人員來寫。那么就引發(fā)了我的一些思考:

一、有沒有必要對每個需求都制定驗收“表格”。如果這樣做,就意味著要寫非常非常多的fixture。寫這些代碼需要花費相當(dāng)?shù)臅r間,而時間是昂貴的成本。在能取得大體相同的效果時,有沒有成本更少的辦法?

二、這些代碼本身是否存在bug,調(diào)試這些代碼以及日后維護這些代碼是否還要付出更多的成本?——我曾經(jīng)很熱衷于自動化測試工作的推進,但是后來我觀察到,如果一段自動化測試代碼寫出來僅僅執(zhí)行幾次就完了,那么這種自動化我認為完全沒有意義。

三、所以,我的觀點是自動化只用在那些需要大量回歸、功能固定、相對底層的測試上就好了,測試代碼要盡量的簡單;盡量不要增加復(fù)雜的邏輯;盡量通用以提高利用率;所花費的時間要盡量少。

基于以上理解,我這里給出一個通用的fixture和fitnesse表格,此表格在我公司主要用于接口測試,當(dāng)然也可以用于一般性的頁面檢查。實際運行將近兩年了,效果還可以。fitnesse內(nèi)置的一些fixture應(yīng)該有類似功能,但我覺得查找和學(xué)習(xí)使用的時間可能比自己寫更長,就自己寫了。

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<keys.length;i++){
						if(reponseStr.contains(keys[i])){
							judge=judge&&true;
						}else judge=false;
					}
					if(judge){
						result="ok";
					}
				}
			}
		}catch(Exception e){
			result="NoExist";
		}finally{
			httpclient.getConnectionManager().shutdown();
		}
	}
	public void reset(){
		result="NoExist";
	}
}

表格是這樣的:

calis.http.Exist

start url

key words

verify?

http://cn.bing.com/search?q=%E4%B8%AD%E5%9B%BD

中國/×××

ok

http://www.126.com

郵箱帳號登錄/動態(tài)密碼登錄

ok

……

……

ok

使用也很簡單,在start url輸入地址,檢查返回的字符串中是否全部包含了key words指定的字符串。每個字符串用/分隔。如果全部包含了返回ok,未全部包含返回NoExist。盡管很簡單,但非常通用,可以用于檢測一切支持get請求而返回的html、xml、json等多種格式數(shù)據(jù)。

上述代碼中已知的問題有:

1.對非utf-8格式的返回不支持

2.只支持“與”檢查,不支持關(guān)鍵字的其他邏輯關(guān)系

3.未對html上的轉(zhuǎn)義符做處理,比如在頁面上顯示為<,其實編碼是&lt,那么需要檢查&lt而不是<

4.由于關(guān)鍵字是由/分隔,那么檢測返回值中是否含有/是做不到的。

鑒于我一向堅持的觀點——測試代碼要盡量簡單,我無意改進這些內(nèi)容。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

標題名稱:Fitnesse使用系列八-創(chuàng)新互聯(lián)
鏈接URL:http://muchs.cn/article34/hihpe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站制作、網(wǎng)站排名、網(wǎng)頁設(shè)計公司、云服務(wù)器、電子商務(wù)、響應(yīng)式網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站制作