3) 清理已有雜亂數據。
在初始化數據之前,為了避免“臟數據”帶來的被測應用數據場景和實際用戶數據場景之間的偏差,在開始初始化數據之前,工具會首先清理已有雜亂數據。
4) 生成數據,并利用Content Provider初始化應用數據。
圖6 初始化應用數據
獲取被初始化應用的資源標識符后,利用該資源標識符提供的函數直接將生成的用戶個性化數據插入到應用中去,即完成了本應用的數據初始化工作。
其中利用Content Provider后,插入的源數據的格式不用過分關注,因為Content Provider是利用表的方式來組織數據的,下表用一張聯系人的電話表單舉例:
表1 電話聯系人Content Provider表
_ID | NUMBER | NUMBER_KEY | LABEL | NAME | TYPE |
… | … | … | … | … | … |
… | … | … | … | … | … |
該表形象描述了聯系人的結構,當工具初始化聯系人應用數據時,只需重點關注以上字段(舉例)就可以了。
以上介紹了第一類數據初始化的方式,該類方式利用系統公用數據提供的Provider,間接操作應用數據存儲等相關操作,從而完成應用數據的初始化工作。
二、利用文件流方式的數據初始化
對于文件、文件夾、圖片等存儲在SD卡中的應用數據的初始化方式,系統并未提供標準的存儲方式供應用使用,故對于此類應用數據的初始化,工具采用文件流交互的方式完成。這類應用的數據初始化方式和第一類大致相同,具體如下:
1) 獲取要存儲文件的路徑。
第一類應用數據因為要存儲在應用的數據庫中,而數據庫是用唯一的資源標識符區分,故其第一步就是獲取該應用特定的標識符。第二類應用數據的初始化是存儲在SD卡中,故初始化的第一步就是確定要存儲數據文件的路徑。
2) 準備源文件。參考上文。
3) 清除已有雜亂數據。參考上文。
4) 利用文件流交互方式初始化應用數據。
圖7 文件流交互方式初始化應用數據
利用準備的源文件,開啟多個文件流交互線程并行完成應用數據的初始化工作。并行文件流讀取也大大提高了此類應用數據初始化的效率。
以上介紹了利用文件流交互方式進行的數據初始化工作,該工具中的文件、文件夾、圖片等應用數據的初始化工作就是利用此種方式完成的。兩種數據初始化方式的過程基本一致,只是在對象的獲取和數據的寫入方式上有些許的差別。
應用效果
該工具很好的從數據角度解決了用戶數據模擬填充的問題,從而使手機測試人員能夠更加方便地模擬用戶場景,站在用戶的角度對產品進行測試。具體來說,該工具的應用效果可以從以下三個方面來看:
1) 全面支持命令行方式執行。支持完全自動化方式運行該工具,大幅縮短測試人員測試環境準備的時間30%以上。
2) 為Monkey測試提供初始化環境支持。目前該工具已經運行在Lab、EP,為其提供運行Monkey測試之前的環境初始支持。
3) 封裝實現類支持其他工具的二次開發。該工具的實現類Jar包,已經在Stress Test等工具中,應用于其初始壓力數據模塊。
原文轉自:http://qa.baidu.com/blog/?p=709