package TestScript;
……
//如果該測試用例需要對View按鈕和Home按鈕做更多的操作,可以直接從緩存中獲取這兩個對象,而無需再一次搜索
public class CacheVer1 extends CacheVer1Helper
{
public void testMain(Object[] args)
{
WordWindow word = new WordWindow();
word.getViewButton().click();
word.getHomeButton().click();
}
}
接下來將探討一下如何在該對象緩存機制的基礎上進行改進,再進一步的提高動態搜索的性能呢?我們注意到,動態搜索的原理類似于從某個節點開始,對這個節點以下的所有節點進行遍歷,把所有滿足條件的對象都返回。一般在動態搜索前,我們會獲取測試應用的窗口作為根節點,對所有需要的對象進行搜索,這樣的操作十分耗時,F在我們有了一個按照對象層次存儲的緩存,就可以利用它來減少搜索的時間。
具體實現如下:
使用被測試應用的頂層窗口對象作為根對象存儲。
在 ObjectMap 中分析需要被查找的對象
如果有一組對象具有相同的祖先節點,那么把離它們最近的祖先節點對象存儲到 cache 中
當需要獲取這組對象中的某一個時,先或者事先存儲的祖先節點,然后從這個祖先節點開始進行動態搜索。
這種機制會減少很多動態搜索所涉及到的層次,進一步減少了動態搜索需要的時間。
我們建立一個新的 WordWindowVer2 對象作為緩存對象。我們的示例很簡單,只有一個緩存對象。在真實的項目中,根據對象的復雜程度,我們會需要一種設計模式更好的組織更多的緩存對象。
文章來源于領測軟件測試網 http://www.kjueaiud.com/