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