如果你看了 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测试 ,系统提示:
对应代码如下:
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我都测试过,结果相同。