java替代perl进行nginx模块测试可行性调研

发表于:2010-12-28 15:15

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:gongyangyu    来源:TaoBao QA Team

  到目前为止,nginx模块测试一直使用perl脚本作为工具,perl作为脚本语言,具有简单、灵活的特点,加上本身附带了为测试nginx设计的包,用它来测试nginx模块已非常优秀,但仍有不足之处,如调试不便,也不利于维护,遇到问题查找问题比较麻烦,所以尝试用java代替perl,做一个可行性的调研,而用java来测需要借助一个工具的帮助,这就是httpunit。

  Httpunit是基于junit的一个测试框架,主要关注于测试web应用,解决使用JUnit框架无法对远程Web内容进行测试的弊端,虽然也有Unit的名字,但它本身并不是测试工具,因为它不提供任何的测试或断言方法,正确来说,它是测试时的辅助工具,它协助您进行HTTP请求响应,让您在请求上加上参数、设置Cookie等.并能通过各种函数获取分析response。

public class  FirstHttpUnitTest extends TestCase {
public void testCaterpillarOnlyfu()
throwsMalformedURLException,                            
IOException,
SAXException {      
WebConversation webConversation = new WebConversation();      
WebRequest request = new GetMethodWebReques(http://XXX.XXX.XXX/XXX);    // 访问的url地址,可在其后直接加上url 参数            
WebResponse response = ebConversation.getResponse(request);     
//然后可通过response对象调用httpunit的方法获取想要的信息来与预期结果进行比对  
}

  在上面这段代码里,WebConversation打开了一个http的协议对话,WebRequest用来设置相关的请求参数,之后用WebConversation连接目的网页,然后得到WebResponse,然后可通过response对象调用httpunit的方法获取想要的信息来与预期结果进行比对

  如果是通过post方法访问,WebRequest req = new PostMethodWebRequest(http://XXX.XXX.XXX/XXX);

  下面的截图是nginx简转繁模块用java替换后与httpunit相关的部分,增加相应的http header

  再简单介绍一下nginx模块测试中需要注意的地方:

  1.nginx模块测试需要在建立一个临时的测试目录,以根据不同用例需求在用例运行中写入不同的nginx配置以及指定所需的文件

  File file = new File(“/home/admin/temp_nginx/nginx.conf”);

  file.createNewFile();//创建临时配置文件

  FileWriter fw = new FileWriter(“/home/admin/temp_nginx/nginx.conf”);

  fw.write(“master_process off;\n”);//写入临时配置文件,根据不同的配置需求写入,这里只是用一行来举一个例子

21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号