翻譯|使用教程|編輯:莫成敏|2019-10-11 14:55:49.147|閱讀 1190 次
概述:TestComplete是一款自動化功能測試平臺。本文描述了如何在自動化測試中使用光學字符識別來處理TestComplete無法以常規方式識別的UI元素。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
TestComplete是一款具有人工智能的自動UI測試工具,利用自動化測試工具和人工智能支持的混合對象識別引擎,輕松檢測和測試每個桌面,Web和移動應用程序。使用TestComplete,可以提高測試覆蓋率并幫助提供經過實戰考驗的高質量軟件。本文描述了如何在自動化測試中使用光學字符識別來處理TestComplete無法以常規方式識別的UI元素。
通常,TestComplete通過其屬性(例如,通過其類名、標題、ID等)識別窗口和控件。但是,在某些情況下,TestComplete無法訪問已測試應用程序中控件或窗口的屬性。例如,如果TestComplete不支持該控件,或者所需的控件是直接在屏幕上呈現的圖形元素(例如,位圖或圖表),則會發生這種情況。
要測試此類窗口和控件,您可以命令TestComplete捕獲其文本內容。為此,TestComplete使用光學字符識別(OCR)。它將渲染的文本圖像轉換為計算機可讀字符,并與包含所需文本的區域配合使用。與使用基于坐標的鼠標單擊的測試相比,這可以幫助您擁有更穩定,更靈活的測試。
影片教學
何時使用光學字符識別
您可以使用光學字符識別:
獲取測試應用程序的文本內容或特定的UI元素,以驗證測試應用程序的數據或狀態。
通過文本內容在經過測試的應用程序中找到所需的UI元素,并在其上模擬用戶操作。
要求
您的TestComplete版本必須為12.60或更高版本。
您需要有效的許可證才能使用TestComplete智能質量插件。
必須在TestComplete中啟用“智能質量”插件。
您可以在TestComplete安裝期間啟用插件。如果您在安裝過程中未啟用插件,則可以在以后隨時通過“文件”>“安裝擴展名”對話框來執行此操作。為此,請從TestComplete主菜單中選擇文件>安裝擴展,然后在出現的對話框中啟用Intelligent Quality> Intelligent Quality Core插件。
必須在TestComplete中啟用光學字符識別支持。
默認情況下,如果在TestComplete安裝過程中啟用了Intelligent Quality插件,則會自動啟用它。如果您在測試中遇到光學字符識別問題,請從TestComplete主菜單中選擇“文件”>“安裝擴展名”,并確保啟用了“光學字符識別”插件(您可以在“Intelligent Quality”組中找到它)。如果插件被禁用,請啟用它。在啟用插件時TestComplete顯示的確認消息中,單擊鏈接以閱讀第三方許可協議。如果您同意許可條款,請點擊“啟用OCR”。
此外,請確保沒有安裝和啟用舊版OCR插件。您可以在“通用”組中找到該插件。
您的計算機必須有權訪問ocr.api.dev.smartbear.com Web服務。如果您的網絡中運行著防火墻或代理,則它們應允許您的計算機訪問Web服務。
您的防火墻必須允許通過端口443的通信。
有關必須滿足的要求以及如何配置測試環境的詳細信息,請參閱光學字符識別-要求(后面更新)。
它是如何工作的
TestComplete可以識別您在屏幕上選擇的UI元素的文本以及從屏幕捕獲或從文件加載的圖像中的文本。TestComplete將要識別的數據發送到SmartBear 的ocr.api.dev.smartbear.com Web服務。此網絡服務將傳入的請求轉發到Google Vision API,并將識別結果傳輸回TestComplete。
在測試中,您可以訪問整個識別的文本或其中的單個文本塊(如果有多個)。如果識別的文本屬于UI元素,則可以命令TestComplete通過其文本在屏幕上定位該元素,并模擬對其進行的各種操作,例如單擊或觸摸。
安全
為了識別文本,TestComplete使用ocr.api.dev.smartbear.com服務,而該服務又使用Google Vision API。識別和識別結果的數據通過HTTPS發送到服務,即連接是安全的,數據是加密的。SmartBear既不存儲也不與其他任何第三方共享發送的數據。
創建基于OCR的測試
自動地
創建測試的最簡單方法是記錄它:
開始錄制之前
從TestComplete主菜單中選擇“工具”>“選項”,然后啟用“引擎”>“錄制”>“使用OCR選項錄制不受支持的控件”。TestComplete將在錄制過程中通過其文本自動識別不受支持的控件,并將在包含此文本的屏幕區域上記錄您的操作。
如果關閉該選項,則TestComplete將記錄基于坐標的動作(如果您使用的是非儀表Android應用程序,則將記錄基于圖像的動作)。
記錄
在錄制過程中,TestComplete自動檢測與之交互的窗口和控件。如果TestComplete支持某個窗口或控件,則后者會記錄特定于該窗口或控件的測試命令。如果不支持窗口或控件,則TestComplete將為其記錄基于坐標的鼠標操作和鍵盤事件。OCR引擎可幫助您記錄不受支持的控件的基于對象的命令,并使記錄的測試更獨立于屏幕坐標,即更穩定。
下圖顯示了使用光學字符識別的已記錄測試的示例:
手動地
準備應用程序以進行測試。您執行此操作的方式取決于應用程序類型。
對于移動應用程序:將TestComplete連接到您的移動設備。要了解如何執行此操作,請參閱準備iOS設備或將TestComplete連接到Android設備(取決于您的設備類型)。打開“ 移動屏幕”窗口。
啟動經過測試的應用程序。
在您的應用程序中,找到要使用光學字符識別來識別文本的區域。
在測試中,添加將識別文本的命令,對其進行驗證或使用它在屏幕上查找被測試的對象:
在關鍵字測試中
要識別屏幕對象的文本內容并檢查其是否正確,請使用OCR Checkpoint操作。要通過控件的文本內容(或周圍的文本)定位控件并模擬控件上的用戶操作,請使用OCR操作操作。
下圖顯示了一個示例關鍵字測試,該測試適用于使用OCR的應用程序:
腳本
使用OCR.Recognize腳本測試中的方法來識別屏幕上呈現的文本。該方法將返回一個對象,該對象提供對包含已識別文本的區域的訪問:
要獲取所有可識別的文本,請使用OCR.Recognize.FullText屬性。
要訪問識別文本的各個片段(塊),請使用OCR.Recognize.Block屬性或OCR.Recognize.BlockByText方法。
若要驗證測試的應用程序包含指定的文本,請使用OCR.Recognize.CheckText方法。
要在識別的文本的單個片段(塊)上模擬用戶操作,請使用OCR.Recognize.Block和OCR.RecoginzeBlockByText對象提供的方法。例如,Click或HoverMouse方法。
為了模擬在其旁邊是一個片段(塊)的區域的用戶操作,使用ClickNextTo,TouchNextTo以及SendKeys該方法OCR.Recognize.Block和OCR.RecoginzeBlockByText對象提供。
例如:
通過文本內容尋址對象
在關鍵字測試中,您可以使用OCR Action操作查找包含所需文本的指定屏幕對象的區域,并在其上模擬用戶操作:
在腳本測試中,要使用其文本訪問對象,請使用OCR.Recognize.Block或OCR.Recognize.BlockByText方法。該方法識別屏幕上對象的文本,并通過其在其他已識別文本部分之間的索引或其內容來提供對已識別文本的單個部分的訪問。
JavaScript, JScript | OCR.Recognize(Aliases.myApp.mainForm).BlockByText("*Help*") |
Python | OCR.Recognize(Aliases.myApp.mainForm).BlockByText("*Help*") |
VBScript | OCR.Recognize(Aliases.myApp.mainForm).BlockByText("*Help*") |
DelphiScript | OCR.Recognize(Aliases.myApp.mainForm).BlockByText('*Help*') |
C#Script | OCR["Recognize"](Aliases["myApp"]["mainForm"])["BlockByText"]("*Help*") |
本文內容到這里就結束啦,感興趣的朋友請繼續關注我們~您也可以下載TestComplete試用版嘗試一下~
想要購買TestComplete正版授權,或了解更多產品信息請點擊
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn