最近在用HttpUnit做网站测试时发现一极度郁闷问题,只要页面用了包含JS文件的语句,就取不到页面内容。也就是页面中运行了<script src=javascript.js></script> 或者<script language="javascript" src=javascript.js></script>,否则就正常!具体的关键错误信息摘录如下:
ReferenceError: "adx" is not defined. (httpunit; line 38)
com.meterware.httpunit.ScriptException: Script 'var is_show=0;而实际应用中,被测试的网站页面运用了大量包含的JS代码,特别是Ajax更是如此,所以不能为了测试而放弃使用JS代码,请用过HttpUnit做网站测试的高手们能略显身手。致谢!我棘手几天的问题可能只是花费你们的几十秒钟,希望能描述得详细一些,解决问题立即结贴!

解决方案 »

  1.   

    MARK ,学习。 我也遇到过某些JAVASCRIPT 不能通过解析。
      

  2.   

    没用过
    帮忙顶
    感觉jsp已经是所见即所得了
    再用HttpUnit测试,意义不大
      

  3.   

    HttpUnit是一个比较好的测试工具来的,而且它可以针对单个Servlet测试,也可以通过XML文件测试所有Servlet测试,特别对于程序员,在美工页面未设计出来以前,或者程序未过完成之前,用HttpUnit更容易检测出程序Bug,可以不依赖美工进行,它有一定的优越性,讨论继续!
      

  4.   

    我一直想研究HttpUnit,收藏!!!!
      

  5.   

    俺是楼主,找出目前的问题根源是编码错误!具体解释如下:我在项目中应用的是GBK编码,而JS文本是导入进来的,当然,如果是直接写在页面中的JS,它的编码就会自动与页面编码一致。而HttpUnit在调用Servlet时,所有导入的JS都是以UTf-8编码的方式加载的,如果JS没有进行UTF-8编码就会报错,这就出现了只要一有导入的JS文件,就会报错的情况。你们可以进行如下测试:
    将JSP页面的编码设为UTF-8,然后在页面中导入一个JS文件,该JS文件中包含非英文的其它字符,并且该JS文件没有进行UTF-8编码,然后你想调用该JS文件中写的函数的时候,肯定会报错。错误找出来了,希望前辈们能够给出问题的具体解决办法!致谢!
      

  6.   

    昨天仔细看了一下,也有可能不是这个问题,在包含JS脚本中定义的变量好像不能被页面引用,不知是不是JS相对路径和绝对路径的问题!大家怎么都沉默了?
      

  7.   

    不会是js文件相对路径的问题,js我做过很多了,关于jsp页面的存储格式的编码问题,我在项目中也是这样的,JSP是UTF-8,但JS我是按默认的格式来存的,就是GBK。你的项目,有用多个浏览器来测试过吗?我在项目中也用了ajax,dwr,我也自己也了几个通用的ajax函数库出来,但是我写出来后,在IE, FireFox, Opera中都测试过的。httpUnit我不知它的查错机制是怎么样的,不同的浏览器对JS的支持都不一样,或许他是用FireFox支持的函数库的,那么就出错了,楼主往这个方向看一下吧。BTW,我是广州人,也是用J2EE开发的。
      

  8.   

    可以进http://www.9i5e.com/Company.aspx 看看,个人觉的不错的例子
      

  9.   

    To terry_yip
    我一般用火孤和IE,网站的JS在这两种浏览器中均能正常运行,现在还不晓得问题根源。To kmh605(三步倒)
    如果你不想贴上的网址被K掉的话,最好少在我贴子上搞这种垃圾东西
      

  10.   

    emin_lee() ( ) 信誉:100    Blog  2006-08-25 15:04:00  得分: 0  
       楼主可以尝试着把包进来的js文件中的所有内容拷到页面里来,
    不要引入,看是不是还报错?
    ---------  
    我的想法也是这样,楼主先试试这样做怎么样。
    可能HttpUnit能力还弱。
      

  11.   

    没有JS包,应该不能运行的,因为它要解释客户端的JS脚本,但是又没有通过浏览器
      

  12.   

    他们的意思是把JS代码直接放到JSP页面中去,看看还会不会报错!
      

  13.   

    我是楼主,非常感谢各位对此问题的关注,先说明一下:本题的JS代码本身是没有问题的,因为它是经过全面的兼容性测试,适合IE、Firefox、MyIE等浏览器现行版本及较低版本(如IE5),所以此问题的根源是HttpUnit本身。我在用HttpUnit加载有包含JS的页面时,只是少数页面没有报错,当然,如果JS文件进行过UTF-8编码处理,加载时不会报错,而且我用来加载国外网站,基本上就没有报错,而国内网站(如:搜狐、前程无忧、中华英才、网易)都会报JS问题
      

  14.   

    那么,除了HttpUnit,还有哪些比较好的Web测试工具,要求对JS支持较好的!最近我查了很多国外的资料,都说HttpUnit的JS功能较弱,我的问题不会是这个原因吧,不知道JWebUnit和HtmlUnit这两个东东怎么样?
      

  15.   

    这么好的贴子,怎么能在CSDN沉下去呢……
      

  16.   

    这么好的帖子,总是垫底,而且一个星星都不来关注,这证明了什么问题?CSDN的Java编程人员太虚浮,不去钻研,实际解决问题能力欠缺,唉……
      

  17.   

    可以这么写。
    <script language="javascript" src="js/temp.js" charse="UTF-8"/>
      

  18.   

    JS调试可以使用微软带的scriptdebuger来调试, 基本能找到script的问题. 还有不要用带有过滤功能的浏览器, 会认为你带有某些关键字的网页脚本当作广告给过滤调了
      

  19.   

    To TinyJimmy(Jimmy),非常感谢您的回复本程序的浏览器是用HttpUnit模拟的,程序本身的JS代码在各种版本的浏览器里都通过了测试,就是不知道HttpUnit的模拟机制是怎样的,导致了在各种浏览器里能通过测试的JS在HttpUnit中通不过。
      

  20.   

    关注的人不多,Java版块的高人们呢……
      

  21.   

    最近很忙,所以没来CSDN,问题已被自己解决,谢谢大家的参与!