本论文是一篇大学计算机相关论文格式,关于基于模版的Web应用程序的自动测试相关本科论文范文。免费优秀的关于大学计算机及软件工程及测试方面论文范文资料,适合大学计算机论文写作的大学硕士及本科毕业论文开题报告范文和学术职称论文参考文献下载。
摘 要:介绍一种基于模板的Web应用程序测试方法.该方法通过在模板中设置POST数据以及其它相关数据,实现多个测试用例的自动测试,并可以把测试结果和日志文件下载到本地进行分析.该方法操作简单实用,可提高Web应用程序的测试效率.
关 键 词:Web应用程序,测试,模板
中图分类号:TP311.56文献标识码:A文章编号:16727800(2011)012002401
作者简介:余秋惠(1970-),女,湖北武汉人,武汉工程大学计算机科学与工程学院实验师,研究方向为软件工程;何成万(1967-),男,湖北荆门人,武汉工程大学计算机科学与工程学院教授,研究方向为软件工程.
这篇论文出处 http://www.sxsky.net/benkelunwen/060429743.html
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请求,但是传送给服务器的数据是不同的.每个测试用例都要执行一次上述的测试流程.
有关论文范文主题研究: | 大学计算机类论文范文 | 大学生适用: | 函授毕业论文、电大毕业论文 |
---|---|---|---|
相关参考文献下载数量: | 61 | 写作解决问题: | 写作资料 |
毕业论文开题报告: | 论文任务书、论文选题 | 职称论文适用: | 核心期刊、高级职称 |
所属大学生专业类别: | 写作资料 | 论文题目推荐度: | 优质选题 |
参数文件生成程序在生成POST数据时,可以用两种方式保存:一种是名值对(参数名1等于值1&参数名2等于值2&等)的形式,另一种是XML形式.不管是以那种方式保存,测试驱动程序在发送HTTP请求时,都是把POST数据作为一个字符串发送给服务器.
图2测试模板
2实现方法
测试模板使用EXCEL文件作成,参数文件生成程序使用VBA语言实现,而测试驱动程序使用Java语言实现.
参数文件生成程序的功能是根据模板中定义的各种信息生成POST数据和控制文件.针对每个测试用例,其POST数据和下载的执行结果被保存在不同的目录.而无论POST数据是名值对的形式还是XML格式,测试驱动程序都是把其作为一个字符串传送给服务器.测试驱动程序按照HTTP协议的规范直接把头部信息和POST数据传送给服务器.主要实现代码如下所示:
bw等于newBufferedWriter(newOutputStreamWriter(sock.getOutputStream())),
bw.write("POST"+postURL+"HTTP/1.1"),
bw.newLine(),
bw.write("Host:"+reqURL+":"+Constants.HTTP_PORT),
bw.newLine(),
for(Iteratorit等于headerData.entrySet().iterator(),it.hasNext(),){
Map.Entryentry等于(Map.Entry)it.next(),Stringss等于(String)entry.getKey()+":"+(String)entry.getValue(),
bw.write(ss),
bw.newLine(),
}
bw.write("ContentLength:"+String.valueOf(contentLength)),
bw.newLine(),
bw.write(