SilkTest高級進階系列1-用textract來識別文本軟件測試
在以前的文章中,我簡單介紹過如何使用silktest中的OCR功能識別界面或者是bmp圖片上的文字內容。也提到過silktest自帶一個ocr識別的pattern庫,該庫可以識別windows下的某些字體。不過這些字體都是常見的字體,種類有限,對于某些特殊的字體,默認是無法識別的。下面是一個例子。
在做這個例子之前,我們需要一些準備工作:
打開word,在里面輸入如下一行文字,并將其字體設置為Bell MT,字體大小為18。然后對該行文字抓屏并將其存為bmp文件c:\ocr\new.bmp
Auto Test: SilkTest 2006
調用下面的silktest代碼來嘗試識別該bmp文件上的文字:
[-] testcase OCR_Font() appstate none
[ ] int iRet // return value
[ ] string sText // text
[ ] string sBmp = "c:\ocr\new.bmp"
[ ] iRet = OcrGetTextFromBmp (sText, sBmp)
[ ] print(sText)
其運行結果只會打印一個冒號:,這表明默認的textract pattern庫無法識別Bell MT字體,我們必須創建一個支持Bell MT字體的pattern庫才行。下面就是完成這一任務的一些步驟:
1.首先我們需要備份silktest目錄下面的textract pattern庫文件sgOcrPattern.pat和配置文件textract.ini
2. 打開textract.ini,在Include1一行的最后面加上你希望支持的字體名稱,用逗號結束,注意不要在字體名稱和逗號之間有任何空格,看上去應該像是...,Arial Narrow,Bell MT,
3.保存對textract.ini的修改
4.在silktest目錄下面運行ExGUI.exe,點擊"Build font pattern database"按鈕,在新打開的對話框中點擊OK,這個時候該工具會幫你掃描系統中的字體庫,并且根據textract.ini所作的設置來生成可用的新pattern庫,等待該掃描完成后,你會發現sgOcrPattern.pat的時間戳被更新了。
5.再次運行上面的測試用例OCR_Font(),它將調用新的pattern庫來識別bmp圖片上的文字,這次它就能夠打印出正確識別的結果Auto Test: SilkTest 2006了。
原文轉自:http://www.anti-gravitydesign.com