在RFT中实现对时间的控制
作者:网络转载 发布时间:[ 2012/10/30 10:50:12 ] 推荐标签:
很多情况下我们等待某种条件成立时,才可以进行一下操作。我们可以定义一个 Condition 类,在 Helper Superclass 中添加一个 waitForCondition 方法来方便脚本开发。如代码清单 4 所示。
清单 4.
public interface Condition {
boolean value();
}
/**
* 判断条件在指定时间内是否成立
* @param condition
* @param timeout
* @param interval
* @return
*/
public static boolean isTrue(Condition condition, double timeout, double interval){
long startTime = System.currentTimeMillis();
while (System.currentTimeMillis() - startTime < timeout * 1000) {
if (condition.value())
return true;
sleep(interval);
}
return condition.value();
}
/**
* 等待条件成立。如果在指定时间内没有成立,将抛出异常
* @param condition
* @param timeout
* @param interval
*/
public static void waitForCondition(Condition condition, double timeout, double interval){
if (!isTrue(condition, timeout, interval))
throw new RuntimeException("Condition is not true!");
}
修改脚本执行中有关时间的选项来增加稳定性
RFT 在识别测试对象,模拟鼠标,键盘事件过程中,都使用了一些默认值。这些值能保证测试脚本在一台性能不错的测试机上成功执行,但遇到一台很慢的测试机,往往会失败。可以通过 API 来修改这些与时间相关的选项,适当的增加延迟让脚本更加健壮。这些选项的常量定义在 com.rational.test.ft.script.IOptionName 中。RationalTestScript.setOption()/resetOption() 可以改变这些选项,也可以通过 getOption() 来获得选项的值。例如被测程序不能处理过快的用户输入,可以如代码清单 5 所示改变输入文字的速度。表 1 中是 RFT 支持的有关时间的所有选项。
清单 5.
setOption(IOptionName.DELAY_BEFORE_KEY_DOWN, 1); // 等待 1 秒后,再按下按键
InputWindow().inputKeys("slow down");
resetOption(IOptionName.DELAY_BEFORE_KEY_DOWN); // 恢复默认值
表 1. 有关时间的选项
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11