Fitnesse使用系列八-创新互联

结束篇:

创新互联自2013年创立以来,先为孝昌等服务建站,孝昌等地企业,进行企业商务咨询服务。为孝昌企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。

Fitnesse是一个有着非常好的创意的软件。它试图拉近开发者与用户的距离。通过前面的介绍,大家可能也看出来了,其实最终还是要落实到编码(fixture)上。这些编码一般来说要由测试人员来写。那么就引发了我的一些思考:

一、有没有必要对每个需求都制定验收“表格”。如果这样做,就意味着要写非常非常多的fixture。写这些代码需要花费相当的时间,而时间是昂贵的成本。在能取得大体相同的效果时,有没有成本更少的办法?

二、这些代码本身是否存在bug,调试这些代码以及日后维护这些代码是否还要付出更多的成本?——我曾经很热衷于自动化测试工作的推进,但是后来我观察到,如果一段自动化测试代码写出来仅仅执行几次就完了,那么这种自动化我认为完全没有意义。

三、所以,我的观点是自动化只用在那些需要大量回归、功能固定、相对底层的测试上就好了,测试代码要尽量的简单;尽量不要增加复杂的逻辑;尽量通用以提高利用率;所花费的时间要尽量少。

基于以上理解,我这里给出一个通用的fixture和fitnesse表格,此表格在我公司主要用于接口测试,当然也可以用于一般性的页面检查。实际运行将近两年了,效果还可以。fitnesse内置的一些fixture应该有类似功能,但我觉得查找和学习使用的时间可能比自己写更长,就自己写了。

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

邮箱帐号登录/动态密码登录

ok

……

……

ok

使用也很简单,在start url输入地址,检查返回的字符串中是否全部包含了key words指定的字符串。每个字符串用/分隔。如果全部包含了返回ok,未全部包含返回NoExist。尽管很简单,但非常通用,可以用于检测一切支持get请求而返回的html、xml、json等多种格式数据。

上述代码中已知的问题有:

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

2.只支持“与”检查,不支持关键字的其他逻辑关系

3.未对html上的转义符做处理,比如在页面上显示为<,其实编码是&lt,那么需要检查&lt而不是<

4.由于关键字是由/分隔,那么检测返回值中是否含有/是做不到的。

鉴于我一向坚持的观点——测试代码要尽量简单,我无意改进这些内容。

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。

标题名称:Fitnesse使用系列八-创新互联
链接URL:https://www.cdcxhl.com/article34/hihpe.html

成都网站建设公司_创新互联,为您提供品牌网站制作网站排名网页设计公司云服务器电子商务响应式网站

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

外贸网站制作