首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 开源 FAQ 第二书店 博文视点 程序员
频道: 研发 数据库 中间件 信息化 视频 .NET Java 游戏 移动 服务: 人才 外包 培训
    图书品种:235680
       
热门搜索: ASP.NET Ajax Spring Hibernate Java

6.2  判断Web程序的状态

问题

如何判断待测Web程序的状态。

设计

在上述方案中,TestCode.html包含测试套件的JavaScript代码,我们需要在这个网页中加入updateState()函数,这个函数把全局的状态计数器加1,然后调用主测试套件的逻辑代码。

方案

<html>

  <head>

    <script language="JavaScript">

      function updateState()

      {

        parent.loadCount++;

        if (parent.loadCount > 1) //如果需要完全自动执行,需要把条件改为 > 0

          runTest();

      } // updateState()

      function runTest()

      {

        // 此处添加runTest()的代码

      }

// 其他测试函数略

      </script>

    </head>

    <body bgColor="#aaff99">

      <h3 style="font-size: 14; font-family: Verdana">UI Test Script

      </h3>

      <p><input type="button" value="Run UI Test" onclick="runTest();">

      </p>

      <p>Actions:</p><p><textarea id="comments" rows="15" cols="34">

      </textarea></p>

      <p>Test Result = <input type="text" name="result" size="12"></p>

  </body>

</html>

注解

如果创建一个结构如6.1节所描述的测试套件,当待测Web程序加载到测试套件的右frame之后,程序的控制权会传给updateState()函数,这个函数是左边frame所包含页面的脚本的一部分。这个用于表示状态更新的函数首先会把全局的状态计数器加1:

parent.loadCount++;

因为状态计数器位于主测试套件所在的页面,所以必须加上parent关键字才能访问它。接下来,updateState()函数检查全局状态计数器的值是否大于1。因为计数器的初始值是0,当测试套件第一次启动时(这时候,会加载待测的Web程序),计数器的值为1。如果检测到计数器的值小于1,则if语句的条件为false,加载页面的线程停止执行。通过这种方法,可以先检视测试套件和待测的Web程序,然后再手动触发自动化测试程序。如果想要完全自动运行,则可以把条件语句改为:

if (parent.loadCount > 0)

  runTest();

这个判断条件在测试套件首次加载页面时,即为true,程序的控制权会马上转移到runTest()函数。

在本方案中,测试套件左边frame所包含的网页名为TestCode.html。如前所述,对于完全自动进行的测试来说,WebAuto.html并不需要任何UI。但是,如果想要手动运行自动化测试套件,还是需要有一些最基本的UI元素。

<body bgColor="#aaff99">

  <h3 style="font-size: 14; font-family: Verdana">UI Test Script</h3>

  <p><input type="button" value="Run UI Test" onclick="runTest();"></p>

  <p>Actions:</p>

  <p><textarea id="comments" rows="15" cols="34"></textarea></p>

  <p>Test Result = <input type="text" name="result" size="12"></p>

</body>

我们应该给包含用于自动化测试的JavaScript代码的网页取一个标题(title)。这样,其他测试人员和开发人员就可以很清楚地区分哪一个frame包含待测程序,哪一个frame包含自动化测试程序。除此以外,还应该提供一个按钮控件,这样测试人员就可以像前面所说的那样手工触发自动化测试程序。HTML元素<textarea>可以很方便地用来显示有关测试进度信息的一些消息,如图6-1所示的那样。最后,应该再加上一个文本框,这样整个测试场景是否通过,其结果就可以区别于其他的进度信息,而单独显示出来。

查看所有评论(0)条】

最近评论



正在载入评论列表...
热点评论