TestComplete教程:光學(xué)字符識(shí)別(一)處理UI元素
TestComplete是一款具有人工智能的自動(dòng)UI測(cè)試工具,利用自動(dòng)化測(cè)試工具和人工智能支持的混合對(duì)象識(shí)別引擎,輕松檢測(cè)和測(cè)試每個(gè)桌面,Web和移動(dòng)應(yīng)用程序。使用TestComplete,可以提高測(cè)試覆蓋率并幫助提供經(jīng)過(guò)實(shí)戰(zhàn)考驗(yàn)的高質(zhì)量軟件。本文描述了如何在自動(dòng)化測(cè)試中使用光學(xué)字符識(shí)別來(lái)處理TestComplete無(wú)法以常規(guī)方式識(shí)別的UI元素。
通常,TestComplete通過(guò)其屬性(例如,通過(guò)其類名、標(biāo)題、ID等)識(shí)別窗口和控件。但是,在某些情況下,TestComplete無(wú)法訪問(wèn)已測(cè)試應(yīng)用程序中控件或窗口的屬性。例如,如果TestComplete不支持該控件,或者所需的控件是直接在屏幕上呈現(xiàn)的圖形元素(例如,位圖或圖表),則會(huì)發(fā)生這種情況。
要測(cè)試此類窗口和控件,您可以命令TestComplete捕獲其文本內(nèi)容。為此,TestComplete使用光學(xué)字符識(shí)別(OCR)。它將渲染的文本圖像轉(zhuǎn)換為計(jì)算機(jī)可讀字符,并與包含所需文本的區(qū)域配合使用。與使用基于坐標(biāo)的鼠標(biāo)單擊的測(cè)試相比,這可以幫助您擁有更穩(wěn)定,更靈活的測(cè)試。
影片教學(xué)
何時(shí)使用光學(xué)字符識(shí)別
您可以使用光學(xué)字符識(shí)別:
獲取測(cè)試應(yīng)用程序的文本內(nèi)容或特定的UI元素,以驗(yàn)證測(cè)試應(yīng)用程序的數(shù)據(jù)或狀態(tài)。
通過(guò)文本內(nèi)容在經(jīng)過(guò)測(cè)試的應(yīng)用程序中找到所需的UI元素,并在其上模擬用戶操作。
要求
您的TestComplete版本必須為12.60或更高版本。
您需要有效的許可證才能使用TestComplete智能質(zhì)量插件。
必須在TestComplete中啟用“智能質(zhì)量”插件。
您可以在TestComplete安裝期間啟用插件。如果您在安裝過(guò)程中未啟用插件,則可以在以后隨時(shí)通過(guò)“文件”>“安裝擴(kuò)展名”對(duì)話框來(lái)執(zhí)行此操作。為此,請(qǐng)從TestComplete主菜單中選擇文件>安裝擴(kuò)展,然后在出現(xiàn)的對(duì)話框中啟用Intelligent Quality> Intelligent Quality Core插件。
必須在TestComplete中啟用光學(xué)字符識(shí)別支持。
默認(rèn)情況下,如果在TestComplete安裝過(guò)程中啟用了Intelligent Quality插件,則會(huì)自動(dòng)啟用它。如果您在測(cè)試中遇到光學(xué)字符識(shí)別問(wèn)題,請(qǐng)從TestComplete主菜單中選擇“文件”>“安裝擴(kuò)展名”,并確保啟用了“光學(xué)字符識(shí)別”插件(您可以在“Intelligent Quality”組中找到它)。如果插件被禁用,請(qǐng)啟用它。在啟用插件時(shí)TestComplete顯示的確認(rèn)消息中,單擊鏈接以閱讀第三方許可協(xié)議。如果您同意許可條款,請(qǐng)點(diǎn)擊“啟用OCR”。
此外,請(qǐng)確保沒(méi)有安裝和啟用舊版OCR插件。您可以在“通用”組中找到該插件。
您的計(jì)算機(jī)必須有權(quán)訪問(wèn)ocr.api.dev.smartbear.com Web服務(wù)。如果您的網(wǎng)絡(luò)中運(yùn)行著防火墻或代理,則它們應(yīng)允許您的計(jì)算機(jī)訪問(wèn)Web服務(wù)。
您的防火墻必須允許通過(guò)端口443的通信。
有關(guān)必須滿足的要求以及如何配置測(cè)試環(huán)境的詳細(xì)信息,請(qǐng)參閱光學(xué)字符識(shí)別-要求(后面更新)。
它是如何工作的
TestComplete可以識(shí)別您在屏幕上選擇的UI元素的文本以及從屏幕捕獲或從文件加載的圖像中的文本。TestComplete將要識(shí)別的數(shù)據(jù)發(fā)送到SmartBear 的ocr.api.dev.smartbear.com Web服務(wù)。此網(wǎng)絡(luò)服務(wù)將傳入的請(qǐng)求轉(zhuǎn)發(fā)到Google Vision API,并將識(shí)別結(jié)果傳輸回TestComplete。
在測(cè)試中,您可以訪問(wèn)整個(gè)識(shí)別的文本或其中的單個(gè)文本塊(如果有多個(gè))。如果識(shí)別的文本屬于UI元素,則可以命令TestComplete通過(guò)其文本在屏幕上定位該元素,并模擬對(duì)其進(jìn)行的各種操作,例如單擊或觸摸。
安全
為了識(shí)別文本,TestComplete使用ocr.api.dev.smartbear.com服務(wù),而該服務(wù)又使用Google Vision API。識(shí)別和識(shí)別結(jié)果的數(shù)據(jù)通過(guò)HTTPS發(fā)送到服務(wù),即連接是安全的,數(shù)據(jù)是加密的。SmartBear既不存儲(chǔ)也不與其他任何第三方共享發(fā)送的數(shù)據(jù)。
創(chuàng)建基于OCR的測(cè)試
自動(dòng)地
創(chuàng)建測(cè)試的最簡(jiǎn)單方法是記錄它:
開(kāi)始錄制之前
從TestComplete主菜單中選擇“工具”>“選項(xiàng)”,然后啟用“引擎”>“錄制”>“使用OCR選項(xiàng)錄制不受支持的控件”。TestComplete將在錄制過(guò)程中通過(guò)其文本自動(dòng)識(shí)別不受支持的控件,并將在包含此文本的屏幕區(qū)域上記錄您的操作。
如果關(guān)閉該選項(xiàng),則TestComplete將記錄基于坐標(biāo)的動(dòng)作(如果您使用的是非儀表Android應(yīng)用程序,則將記錄基于圖像的動(dòng)作)。
記錄
在錄制過(guò)程中,TestComplete自動(dòng)檢測(cè)與之交互的窗口和控件。如果TestComplete支持某個(gè)窗口或控件,則后者會(huì)記錄特定于該窗口或控件的測(cè)試命令。如果不支持窗口或控件,則TestComplete將為其記錄基于坐標(biāo)的鼠標(biāo)操作和鍵盤(pán)事件。OCR引擎可幫助您記錄不受支持的控件的基于對(duì)象的命令,并使記錄的測(cè)試更獨(dú)立于屏幕坐標(biāo),即更穩(wěn)定。
下圖顯示了使用光學(xué)字符識(shí)別的已記錄測(cè)試的示例:
手動(dòng)地
準(zhǔn)備應(yīng)用程序以進(jìn)行測(cè)試。您執(zhí)行此操作的方式取決于應(yīng)用程序類型。
對(duì)于移動(dòng)應(yīng)用程序:將TestComplete連接到您的移動(dòng)設(shè)備。要了解如何執(zhí)行此操作,請(qǐng)參閱準(zhǔn)備iOS設(shè)備或?qū)estComplete連接到Android設(shè)備(取決于您的設(shè)備類型)。打開(kāi)“ 移動(dòng)屏幕”窗口。
啟動(dòng)經(jīng)過(guò)測(cè)試的應(yīng)用程序。
在您的應(yīng)用程序中,找到要使用光學(xué)字符識(shí)別來(lái)識(shí)別文本的區(qū)域。
在測(cè)試中,添加將識(shí)別文本的命令,對(duì)其進(jìn)行驗(yàn)證或使用它在屏幕上查找被測(cè)試的對(duì)象:
在關(guān)鍵字測(cè)試中
要識(shí)別屏幕對(duì)象的文本內(nèi)容并檢查其是否正確,請(qǐng)使用OCR Checkpoint操作。要通過(guò)控件的文本內(nèi)容(或周圍的文本)定位控件并模擬控件上的用戶操作,請(qǐng)使用OCR操作操作。
下圖顯示了一個(gè)示例關(guān)鍵字測(cè)試,該測(cè)試適用于使用OCR的應(yīng)用程序:
腳本
使用OCR.Recognize腳本測(cè)試中的方法來(lái)識(shí)別屏幕上呈現(xiàn)的文本。該方法將返回一個(gè)對(duì)象,該對(duì)象提供對(duì)包含已識(shí)別文本的區(qū)域的訪問(wèn):
要獲取所有可識(shí)別的文本,請(qǐng)使用OCR.Recognize.FullText屬性。
要訪問(wèn)識(shí)別文本的各個(gè)片段(塊),請(qǐng)使用OCR.Recognize.Block屬性或OCR.Recognize.BlockByText方法。
若要驗(yàn)證測(cè)試的應(yīng)用程序包含指定的文本,請(qǐng)使用OCR.Recognize.CheckText方法。
要在識(shí)別的文本的單個(gè)片段(塊)上模擬用戶操作,請(qǐng)使用OCR.Recognize.Block和OCR.RecoginzeBlockByText對(duì)象提供的方法。例如,Click或HoverMouse方法。
為了模擬在其旁邊是一個(gè)片段(塊)的區(qū)域的用戶操作,使用ClickNextTo,TouchNextTo以及SendKeys該方法OCR.Recognize.Block和OCR.RecoginzeBlockByText對(duì)象提供。
例如:
通過(guò)文本內(nèi)容尋址對(duì)象
在關(guān)鍵字測(cè)試中,您可以使用OCR Action操作查找包含所需文本的指定屏幕對(duì)象的區(qū)域,并在其上模擬用戶操作:
在腳本測(cè)試中,要使用其文本訪問(wèn)對(duì)象,請(qǐng)使用OCR.Recognize.Block或OCR.Recognize.BlockByText方法。該方法識(shí)別屏幕上對(duì)象的文本,并通過(guò)其在其他已識(shí)別文本部分之間的索引或其內(nèi)容來(lái)提供對(duì)已識(shí)別文本的單個(gè)部分的訪問(wèn)。
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*") |
本文內(nèi)容到這里就結(jié)束啦,感興趣的朋友請(qǐng)繼續(xù)關(guān)注我們~您也可以下載TestComplete試用版嘗試一下~
想要購(gòu)買TestComplete正版授權(quán),或了解更多產(chǎn)品信息請(qǐng)點(diǎn)擊