在 RFT 中,我们通常使用 callScript 来创建 test suite。在启用脚本超时检测后,直接调用 callScript 将带来一个问题。一旦某个脚本超时,抛出错误将导致整个 test suite 停止执行。我们可以用代码清单 8 所示来创建 test suite。其中关键点是要捕获超时时抛出的错误。

  清单 8.

package testcases;
import resources.testcases.DemoSuiteHelper;

import com.rational.test.ft.script.RationalTestScriptError;

public class DemoSuite extends DemoSuiteHelper {
 
 /**
  * 执行测试用例
  * @param script
  * @param args
  */
 public void runScript(String script, Object[] args) {
  try {
   callScript(script, args);
  } catch (RationalTestScriptError e) {
   // 捕获 Timeout 错误,防止整个测试被终止。
   if (!"Timeout".equals(e.getMessage()))
    throw e;
  } catch (Exception e) {
   e.printStackTrace();
  }
 }
 
 public void runScript(String script){
  runScript(script, null);
 }
 
 public void testMain(Object[] args) {
  runScript("testcases.DemoScript");
  runScript("testcases.DemoScript");
  runScript("testcases.DemoScript");
 }
}

  结束语

  无论是使用 Rational Functional Tester 录制还是直接编写代码来实现测试脚本,都会遇到不稳定的问题。为了提高稳定性,我们建议在测试脚本录制完和实现后对代码进行走查,确保在正确时间点执行正确的操作。读者需要注意的是,由于被测程序的复杂性,影响脚本稳定性的方面有很多,这里不能一一概括。