使用JWebUnit应注意的2个问题,并不是所有的网站都适合用JWebUnit的!

来源:互联网 发布:麒麟一番榨 知乎 编辑:程序博客网 时间:2024/05/16 17:03

如果你看了 jWebUnit 框架让测试 Web 应用程序变得轻而易举 这片文章,那末你最好把下面这篇也读了。至少我觉得 那个所谓很好的网文,有很多关键的问题没有提到,如果你真想把jwebunit应用到实战中去,那末下面的问题你大多会遇到。

可能大部分使用 web测试框架 jwebunit 的用户都和我一样,监控自己的网站,看应用服务是否当机,服务是否可以正常运行?最近我也在使用中亲身体验到了一些问题,有的甚至是jwebunit本身的问题,短期内很难解决。特此声明出来,免得走弯路!

1、编码问题(如果你的网站用gb2312)

并不是大部分的网站都具有国际化标准,baidu就算一个他用gb2312编码自己的首页,如果你用jwebunit进行汉字测试的话,呵呵!jwebunit是一定会报错的。但是这个问题到不难解决,只要你把搜索的文字进行编码就可以了,编码有些奇怪:

searchLink = "驾驶导航";


searchLink = new String(searchLink.getBytes("utf-8"), "utf-8");

这样就不会出现问题了。

2、如果网站内有过于复杂的js

特别提示一下,对于地图型网站如 灵图的www.51ditu.com ,mapbar 都无法使用jwebunit进行测试。

例如我们用 51ditu jwebunit测试 ,系统提示:

51ditu的jwebunit测试

 

对应代码如下:

import java.io.UnsupportedEncodingException;

import net.sourceforge.jwebunit.WebTestCase;
import junit.framework.TestCase;
import junit.framework.TestResult;
import junit.framework.TestSuite;

public class wwwTest extends WebTestCase {
 
 static String searchLink = "";
 

public static void main(String[] args) {

 searchLink = "驾驶导航";
 
 try {

//很重要,页面为gb2312的一定要转化一下
  searchLink = new String(searchLink.getBytes("utf-8"), "utf-8");
 } catch (UnsupportedEncodingException e) {
  // TODO 自动生成 catch 块
  e.printStackTrace();
 }

 TestResult rs = junit.textui.TestRunner.run(new
 TestSuite(wwwTest.class));
 }

public void setUp() {
 getTestContext().setBaseUrl("
http://www.51ditu.com");
 }

public void testWWWSearch() {
 beginAt("/");

 }}

windows下, jwebunit 1.2 ,1.3我都测试过,结果相同。