Squish 7.2新版本發(fā)布:改進(jìn)屏幕截圖驗(yàn)證,支持Qt for WebAssembly等多項(xiàng)新功能

Squish 7.2新版本發(fā)布:改進(jìn)屏幕截圖驗(yàn)證,支持Qt for WebAssembly等多項(xiàng)新功能的圖1

本文翻譯自:Improved Screenshot Verification, Qt for WebAssembly support and much more coming with Squish 7.2

原文作者:Qt Group 研發(fā)經(jīng)理 Andreas Pakulat

校審:Joyce Jiang

我們非常高興地推出Squish GUI Tester 7.2,作為跨平臺(tái)GUI應(yīng)用自動(dòng)化測(cè)試的終極質(zhì)量保證工具,它集成了激動(dòng)人心的新功能。本次發(fā)布旨在將您的自動(dòng)化測(cè)試工作提升到新的水平。

接下來,我們將介紹此版本中的最新改進(jìn)。

Squish for Qt

Qt WebAssembly支持

Qt for WebAssembly模塊/平臺(tái)已經(jīng)發(fā)布一段時(shí)間了,越來越多的用戶正在尋找一種測(cè)試方法,來驗(yàn)證他們的基于Qt的應(yīng)用不僅能在桌面或嵌入式系統(tǒng)上運(yùn)行,而且能在WebAssembly平臺(tái)上運(yùn)行。某些應(yīng)用甚至是專門針對(duì)WebAssembly平臺(tái)構(gòu)建的。

Squish for Qt for WebAssembly支持測(cè)試在瀏覽器中運(yùn)行的基于Qt的應(yīng)用,適用于Qt 6.4和Qt 6.5。一旦使用Squish for Web的標(biāo)準(zhǔn)設(shè)置通過支持的瀏覽器執(zhí)行被測(cè)的應(yīng)用程序,它將在Squish中顯示為專用的應(yīng)用進(jìn)程上下文。

我們?nèi)嬷С纸换ゲ僮鞯匿浿坪突胤牛瑫r(shí)提供了我們?cè)谄渌脚_(tái)上對(duì)基于Qt的應(yīng)用進(jìn)行自動(dòng)化時(shí)所一貫支持的自省功能。由于Qt for WebAssembly使用了一種名為Shadow DOM的技術(shù)以實(shí)現(xiàn)在瀏覽器中的集成,因此Squish for Web最近新增的Shadow DOM支持對(duì)于與周圍網(wǎng)站交互的應(yīng)用程序會(huì)有所幫助。

Squish源碼中包含QtWayland和Weston擴(kuò)展

Wayland平臺(tái)架構(gòu)限制應(yīng)用對(duì)其他應(yīng)用窗口或整個(gè)桌面的訪問。這影響了Squish獲取整個(gè)桌面的屏幕截圖、在屏幕上移動(dòng)AUT窗口以及模擬底層/原生級(jí)別交互的能力。

我們現(xiàn)在在Squish源包中包含了一個(gè)QtWayland和Weston自定義擴(kuò)展,并通過將其包含在Squish構(gòu)建系統(tǒng)中來簡(jiǎn)化構(gòu)建過程。此項(xiàng)改進(jìn)對(duì)使用嵌入式系統(tǒng)的Squish用戶非常有益。考慮到Wayland在這些系統(tǒng)中的普遍性,此項(xiàng)改進(jìn)將大大幫助他們的測(cè)試和自動(dòng)化過程。除了包含代碼本身,我們還擴(kuò)展了Squish文檔,提供了如何安裝和使用這些擴(kuò)展來獲取桌面屏幕截圖,模擬原生點(diǎn)擊和鍵盤輸入等所有必要的信息。

Squish for Java

支持SWT Scale

SWT 中的 Scale 小部件是傳統(tǒng)用戶界面中常見的多功能組件,它允許用戶在視頻中選擇播放位置,以及在特定范圍內(nèi)進(jìn)行可視化的輸入選擇。

以下是SWT Scale控件的圖示:

Squish 7.2新版本發(fā)布:改進(jìn)屏幕截圖驗(yàn)證,支持Qt for WebAssembly等多項(xiàng)新功能的圖2

然而,Squish對(duì)這種控件的支持之前僅限于點(diǎn)擊和拖動(dòng)操作,這種操作可能不精確,并且在回放時(shí)需要精確的值。

Squish 7.2 引入了通過使用 setValue 函數(shù) 對(duì)SWT Scale 控件設(shè)置特定值的支持,,該函數(shù)也用于滾動(dòng)條控件或數(shù)字顯示框。指定的數(shù)字將直接傳遞給 Scale 控件,相應(yīng)地調(diào)整滑塊中選擇的數(shù)值,從而讓測(cè)試腳本更精確地控制數(shù)值。

改進(jìn)Java Detection/Reporting

Squish for Java的用戶體驗(yàn)得到了改善,用戶無需再手動(dòng)指定要測(cè)試應(yīng)用所使用的確切的Java運(yùn)行環(huán)境。在此之前,這項(xiàng)要求會(huì)造成一些挑戰(zhàn),因?yàn)镾quish for Java需要與所選的Java運(yùn)行環(huán)境完全匹配,尤其是考慮到Squish for Java的一些組件是直接在應(yīng)用進(jìn)程內(nèi)部運(yùn)行的。以前的驗(yàn)證措施無法覆蓋所有可能的組合,也無法檢測(cè)到新的架構(gòu),比如基于ARM的系統(tǒng)的Java運(yùn)行環(huán)境。

為了解決這些限制,我們對(duì)Squish安裝程序的檢測(cè)邏輯進(jìn)行了全面的重構(gòu)。此次改進(jìn)使Squish能夠發(fā)現(xiàn)更廣泛的不兼容問題,確保了其與未來平臺(tái)的兼容性。此外,我們改進(jìn)了錯(cuò)誤報(bào)告和提示信息,以便為用戶提供清晰的指導(dǎo),幫助他們找到可能遇到的任何設(shè)置問題的最佳解決方案。

編寫腳本和調(diào)試測(cè)試

test.vpWithImage

Squish中的屏幕截圖比較功能極具靈活性,同樣基于對(duì)象識(shí)別原則,可將單個(gè)對(duì)象的渲染圖像與特定的基準(zhǔn)圖像進(jìn)行比較。這個(gè)比較過程可以進(jìn)行多種配置以適應(yīng)現(xiàn)代系統(tǒng)或動(dòng)態(tài)變化的部分中的渲染差異。Squish目前獲取實(shí)際對(duì)象屏幕截圖的方式是不可配置的,而是由應(yīng)用運(yùn)行的平臺(tái)、Squish的版本以及可能的對(duì)象類型決定。

我們引入了一個(gè)新的函數(shù)test.vpWithImage,它與test.vpWithObject函數(shù)相似。這個(gè)函數(shù)采用一個(gè)屏幕截圖的驗(yàn)證點(diǎn)文件以提供預(yù)期的圖像,同時(shí)提供任何其他的比較配置,從而允許使用靈活的比較方法。對(duì)于實(shí)際圖像,即需要與其進(jìn)行比較的對(duì)象的渲染圖像,可以指定第二項(xiàng)參數(shù),該參數(shù)可以是磁盤上常見的圖像格式(例如png,jpg,bmp),也可以是圖像對(duì)象。test.vpWithImage函數(shù)將使用在驗(yàn)證點(diǎn)中指定的所有常規(guī)比較選項(xiàng),將存儲(chǔ)在驗(yàn)證點(diǎn)文件中的預(yù)期圖像與通過第二參數(shù)提供的實(shí)際圖像進(jìn)行比較。失敗或通過的報(bào)告方式與test.vp函數(shù)保持一致。

用于應(yīng)用上下文的調(diào)試器內(nèi)省

Squish 提供了對(duì)作為ApplicationContext對(duì)象的應(yīng)用的一些基本信息的訪問,例如進(jìn)程標(biāo)識(shí)符、啟動(dòng)它的命令行,甚至關(guān)于使用的內(nèi)存的大致信息。然而,這些信息在 IDE 中并不容易展現(xiàn)出來,而是必須通過在 IDE 的Console窗口中通過腳本代碼來查詢。這可能相當(dāng)麻煩,并且與其他Squish特有類型不一致。

Squish 7.2版本中,在Squish IDE的Variables視圖可以顯示ApplicationContext對(duì)象的不同屬性。這意味著,任何引用 ApplicationContext 對(duì)象的腳本變量都可以在變量視圖中展現(xiàn),所有的屬性和屬性的值都會(huì)顯示出來。所以現(xiàn)在更容易調(diào)試測(cè)試腳本,并在不同的點(diǎn)上觀察應(yīng)用中的內(nèi)存使用情況。這個(gè)功能目前僅限于 Python 和 Javascript 語言,我們計(jì)劃在未來的版本中添加對(duì)其他腳本語言的支持。

新增Show in Application Objects新功能

為編寫自動(dòng)化測(cè)試腳本找到恰當(dāng)?shù)膶?duì)象名稱可能是一個(gè)像相當(dāng)大的挑戰(zhàn):名稱既要足夠特殊,以便能識(shí)別出正確的對(duì)象,同時(shí)又需要具有一定的通用性,當(dāng)應(yīng)用界面進(jìn)行小改動(dòng)或動(dòng)態(tài)變化,例如在窗口標(biāo)題中包含文件名時(shí)仍能找到該對(duì)象。Squish已經(jīng)提供了協(xié)助你完成這項(xiàng)任務(wù)的功能,例如你可以在Object Map中使用“檢查是否存在”(Check Existence)按鈕,來驗(yàn)證修改后的對(duì)象名稱是否仍能找到對(duì)象。但是,即使找到一個(gè)與給定名稱匹配的對(duì)象,也不代表它就是正確的對(duì)象,要驗(yàn)證這一點(diǎn),需要運(yùn)行測(cè)試或使用內(nèi)置腳本控制臺(tái)。

現(xiàn)在,Application Object視圖中新增了一個(gè)名為“Show in Application Objects”的按鈕。點(diǎn)擊該按鈕,IDE將會(huì)在所有正在運(yùn)行和已連接的應(yīng)用中查找選定的對(duì)象名稱。找到與該名稱匹配的對(duì)象后,將在Application Object視圖中顯示該對(duì)象。Application Object視圖支持以與用戶選取對(duì)象相同的方式查看對(duì)象。用戶可以利用所有常用的應(yīng)用測(cè)試(AUT)檢測(cè)功能查看找到的對(duì)象,例如在應(yīng)用窗口中高亮顯示對(duì)象,或在Properties視圖中查看各個(gè)屬性值。

現(xiàn)在,Application Object視圖中新增了一個(gè)名為“Show in Application Objects”的按鈕。點(diǎn)擊該按鈕,IDE將會(huì)在所有正在運(yùn)行和已連接的應(yīng)用中查找選定的對(duì)象名稱。找到與該名稱匹配的對(duì)象后,將在Application Object視圖中顯示該對(duì)象。Application Object視圖支持以與用戶選取對(duì)象相同的方式查看對(duì)象。用戶可以利用所有常用的應(yīng)用測(cè)試(AUT)檢測(cè)功能查看找到的對(duì)象,例如在應(yīng)用窗口中高亮顯示對(duì)象,或在Properties視圖中查看各個(gè)屬性值。

開發(fā)體驗(yàn)改進(jìn)

JUnit報(bào)告包含被跳過的測(cè)試用例

Squish允許通過各種方式顯示測(cè)試執(zhí)行結(jié)果或被跳過的測(cè)試,包括命令行選項(xiàng)、test.skip腳本函數(shù)或者BDD中的隱式行為。這些信息在分析測(cè)試結(jié)果時(shí)可能會(huì)有所幫助。自BDD引入以來,Squish就在其主要的XML3報(bào)告格式中包含了關(guān)于被跳過的步驟、測(cè)試用例和部分的詳細(xì)信息。但是,JUnit報(bào)告缺失了這些信息,導(dǎo)致在將 Squish 測(cè)試結(jié)果與基于 JUnit 格式的工具集成時(shí)存在差距。現(xiàn)在這個(gè)問題得到了改進(jìn),在Junit格式報(bào)告中使用<skipped>包含相應(yīng)信息,如果需要,將詳細(xì)說明跳過測(cè)試用例、部分或步驟的原因。

瀏覽器檢測(cè)

Squish for Web中的檢測(cè)邏輯已擴(kuò)展為考慮用戶在不同操作系統(tǒng)上選擇的默認(rèn)瀏覽器,而不再根據(jù)平臺(tái)和版本選擇默認(rèn)瀏覽器。這樣的改變旨在改進(jìn)新用戶的默認(rèn)選擇,同時(shí)保證Squish測(cè)試可以在使用不同瀏覽器的情況下進(jìn)行必要配置。這將確保用戶日常使用且持續(xù)更新的瀏覽器作為Squish的首選瀏覽器。

改善離線文檔

Squish團(tuán)隊(duì)不久前將其文檔管理系統(tǒng)從docbook格式轉(zhuǎn)為qdoc格式。由于技術(shù)原因,,這導(dǎo)致了Squish二進(jìn)制包中生成的HTML文檔有所退步。其整體風(fēng)格不再與在線版本一致,且不再支持搜索功能。現(xiàn)在這兩點(diǎn)都已得到解決,離線文檔的樣式與在線版本保持一致,且集成了搜索功能,可以在離線情況下在本地進(jìn)行搜索。


深圳市優(yōu)飛迪科技有限公司成立于2010年,是一家專注于產(chǎn)品開發(fā)平臺(tái)解決方案與物聯(lián)網(wǎng)技術(shù)開發(fā)的國(guó)家級(jí)高新技術(shù)企業(yè)。

十多年來,優(yōu)飛迪科技在數(shù)字孿生、工業(yè)軟件尤其仿真技術(shù)、物聯(lián)網(wǎng)技術(shù)開發(fā)等領(lǐng)域積累了豐富的經(jīng)驗(yàn),并在這些領(lǐng)域擁有數(shù)十項(xiàng)獨(dú)立自主的知識(shí)產(chǎn)權(quán)。同時(shí),優(yōu)飛迪科技也與國(guó)際和國(guó)內(nèi)的主要頭部工業(yè)軟件廠商建立了戰(zhàn)略合作關(guān)系,能夠?yàn)榭蛻籼峁┩暾漠a(chǎn)品開發(fā)平臺(tái)解決方案。

優(yōu)飛迪科技技術(shù)團(tuán)隊(duì)實(shí)力雄厚,主要成員均來自于國(guó)內(nèi)外頂尖學(xué)府、并在相關(guān)領(lǐng)域有豐富的工作經(jīng)驗(yàn),能為客戶提供“全心U+端到端服務(wù)”。

Squish 7.2新版本發(fā)布:改進(jìn)屏幕截圖驗(yàn)證,支持Qt for WebAssembly等多項(xiàng)新功能的圖3

登錄后免費(fèi)查看全文
立即登錄
App下載
技術(shù)鄰APP
工程師必備
  • 項(xiàng)目客服
  • 培訓(xùn)客服
  • 平臺(tái)客服

TOP