結(jié)束篇:

創(chuàng)新互聯(lián)專(zhuān)注為客戶(hù)提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作、淮濱網(wǎng)絡(luò)推廣、成都微信小程序、淮濱網(wǎng)絡(luò)營(yíng)銷(xiāo)、淮濱企業(yè)策劃、淮濱品牌公關(guān)、搜索引擎seo、人物專(zhuān)訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供淮濱建站搭建服務(wù),24小時(shí)服務(wù)熱線:13518219792,官方網(wǎng)址:chinadenli.net
Fitnesse是一個(gè)有著非常好的創(chuàng)意的軟件。它試圖拉近開(kāi)發(fā)者與用戶(hù)的距離。通過(guò)前面的介紹,大家可能也看出來(lái)了,其實(shí)最終還是要落實(shí)到編碼(fixture)上。這些編碼一般來(lái)說(shuō)要由測(cè)試人員來(lái)寫(xiě)。那么就引發(fā)了我的一些思考:
一、有沒(méi)有必要對(duì)每個(gè)需求都制定驗(yàn)收“表格”。如果這樣做,就意味著要寫(xiě)非常非常多的fixture。寫(xiě)這些代碼需要花費(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è)試代碼寫(xiě)出來(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)該有類(lèi)似功能,但我覺(jué)得查找和學(xué)習(xí)使用的時(shí)間可能比自己寫(xiě)更長(zhǎng),就自己寫(xiě)了。
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 | 中國(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)容。
文章名稱(chēng):Fitnesse使用系列八
路徑分享:http://chinadenli.net/article24/ppcoje.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供面包屑導(dǎo)航、域名注冊(cè)、品牌網(wǎng)站制作、定制開(kāi)發(fā)、網(wǎng)站營(yíng)銷(xiāo)、手機(jī)網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)