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