}
代码 6. CacheVer2.java
package TestScript;
……
// 获取 Word 窗口,并点击窗口中的 Viewn 按钮和 Home 按钮
public class CacheVer2 extends CacheVer2Helper
{
public void testMain(Object[] args)
{
WordWindowVer2 word = WordWindowVer2.getWordWindowVer2("Document1 - Microsoft Word");
word.getViewButton().click();
word.getHomeButton().click();
}
}
如果我们会用到很多 MS Word 菜单按钮的,这种缓存机制将从按钮 group 对象开始进行搜索按钮对象,搜索的速度会变得非常迅速。同时这种机制支持缓存从不同的 Word 窗口获取按钮对象。
在实际的项目中,根据 IBM framework 框架,对象搜索方法会被包装成一个通用方法,并且获取的对象将在测试框架的 Task 层中使用,而不是直接在脚本中调用。
这种缓存机制节省了大量的对象搜索时间,提高了开发调试以及运行的效率。我们在自动测试脚本的运行中,不会在每次需要获取对象时都要等待到不耐烦地地步。我们也可以在更短的时间内让计算机运行更多的测试脚本。
该机制在测试框架中还起到了隔离对象获取和对象调用的分层目的,在缓存的对象代码中,提供了 getter 方法供上一层代码调用,而将从缓存中还是通过动态搜索获取对象的过程封装在缓存这一层代码中。
需要注意的问题是,当缓存中的对象不再指向一个真实的 GUI 对象时,一定要释放该对象。直接把它置成 Null 即可。否则从缓存中获得的将是一个过期的对象,造成脚本失败。
总结
本文提供了一种高效的缓存机制,可以使得使用动态搜索的 RFT 测试框架性能获得很大改善,并能够很好的管理获得的测试对象。我们的项目在没有使用这种机制前,一直为动态搜索的性能问题所困扰,使用该机制后,不论是脚本调试还是运行,都获得了令人满意的速度。同时在测试框架和测试脚本中,建立了清晰的代码层次,隔离了测试对象的获取和使用,使得框架和脚本代码的编写更加简洁,逻辑更加清楚。
文章来源于领测软件测试网 https://www.ltesting.net/