- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于模版Web应用程序自动测试
基于模版Web应用程序自动测试摘要:介绍一种基于模板的Web应用程序测试方法。该方法通过在模板中设置POST数据以及其它相关数据,实现多个测试用例的自动测试,并可以把测试结果和日志文件下载到本地进行分析。该方法操作简单实用,可提高Web应用程序的测试效率
关键词:Web应用程序; 测试; 模板
中图分类号:TP311.56文献标识码:A文章编号:1672?7800(2011)012?0024?01
作者简介:余秋惠(1970-),女,湖北武汉人,武汉工程大学计算机科学与工程学院实验师,研究方向为软件工程;何成万(1967-),男,湖北荆门人,武汉工程大学计算机科学与工程学院教授,研究方向为软件工程
0引言
软件测试是软件开发过程中的一个重要阶段,它是查找软件缺陷、提高软件质量的一个有效方法。针对不同类型的软件,需要使用不同的测试方法和工具
Web应用程序一般采用3层体系结构,其调试及测试的复杂程度比单机版的应用程序要高。HttpUnit是一个测试Web应用程序的框架,但是它的使用方法还是比较复杂,需要具有专门知识的程序员编写相关代码
本文提出一种基于模板的Web应用程序的自动测试方法。该方法不需要专门的测试工具,程序员编写的测试驱动程序会按照模板中的数据进行自动测试,生成相关测试结果和测试日志
1方法概述
基于模板的Web程序的自动测试流程如图1所示
图1基于模板的Web程序的自动测试流程
测试模板文件包含测试数据、访问Web服务器的URL、执行结果文件名以及日志文件名等信息。参数文件生成程序根据测试模板的内容生成POST数据文件和控制文件。POST数据文件保存发送HTTP请求时的POST数据,而控制文件保存了执行结果的保存场所、访问Web服务器的URL等数据。测试驱动程序根据生成的POST数据文件和控制文件向Web服务器发送HTTP请求。之后,向FTP服务器发送下载请求,把执行结果文件和日志文件下载到本地
测试模板是具有固定格式的Excel文件。图2是一个测试模板的例子。图中共有5个测试用例,每个测试用例发送一个HTTP请求,但是传送给服务器的数据是不同的。每个测试用例都要执行一次上述的测试流程
参数文件生成程序在生成POST数据时,可以用两种方式保存:一种是名值对(参数名1=值1参数名2=值2…)的形式,另一种是XML形式。不管是以那种方式保存,测试驱动程序在发送HTTP请求时,都是把POST数据作为一个字符串发送给服务器
图2测试模板
2实现方法
测试模板使用EXCEL文件作成,参数文件生成程序使用VBA语言实现,而测试驱动程序使用Java语言实现
参数文件生成程序的功能是根据模板中定义的各种信息生成POST数据和控制文件。针对每个测试用例,其POST数据和下载的执行结果被保存在不同的目录。而无论POST数据是名值对的形式还是XML格式,测试驱动程序都是把其作为一个字符串传送给服务器。测试驱动程序按照HTTP协议的规范直接把头部信息和POST数据传送给服务器。主要实现代码如下所示:
bw = new BufferedWriter(new OutputStreamWriter(sock.getOutputStream()));
bw.write(“POST “ + postURL + “ HTTP/1.1”);
bw.newLine();
bw.write(“Host: “ + reqURL + “:” + Constants.HTTP_PORT);
bw.newLine();
for (Iterator it = headerData.entrySet().iterator(); it.hasNext(); ) {
Map.Entry entry = (Map.Entry) it.next();String ss = (String)entry.getKey() + “: “ + (String)entry.getValue();
bw.write(ss);
bw.newLine();
}
bw.write(“Content?Length: “ + String.valueOf(contentLength));
bw.newLine();
bw.write(“Connection: Close”);
bw.newLine();
bw.newLine();
// Write body
bw.write(postData);
bw.flush();
参考文献:
[1]张海藩.软件工程导论(第5版)[M].北京:清华大学出
文档评论(0)