自動化測試系統開發手記(一)
QT自動化測試系統手記(一)
上週,收到公司郵件,大約是要在月底給一個西語投行系統演示自動化測試的demo。自然,就是Kondor,一個廣泛應用於投行交易管理的系統。
說實在,kondor有些複雜。 Kondor的Front office是用QT4.8.7 X64位編譯的desktop,back office是用的web,而且僅支援IE。眾所周知,對於IE的自動化測試通常採用Selenium,不過在頁面中增加Flash表格就是一個有點意思的系統。
先不說Selenmium,畢竟,這些測試畢竟相對簡單。確實也是如此,我把selenium接入到自己的自動化測試系統僅僅用了不到2天。IE WebDriver基於IE的Com的擴充套件說起不難。倒是QT的部分,花了不少時間,直到上週依舊還有些使用者介面執行緒問題。
QT的主要問題是,版本太老。開始知道要接入Kondor的自動化測試時候,看了下Kondor的類庫,4.8.7X64.以前沒有接觸過QT,就開始google模式。大約花了一週左右,算基本瞭解需要知道的Qt的模式。也微信了一個做Qt數十年的同學,就開始幹活。於是,花了大量的硬碟下載了從QT4.8.x到最新的SDK,一下子硬碟就少了幾百G。
第一個關鍵問題是,官網沒有x64的版本,僅有原始碼和32位。於是,重新按照說明下載visual studio2008~2010的不同版本,進行64位編譯。然後問題來了。編譯的大小和Kondor的QTcore4.87的大小不一樣。要知道,在C++開發中,類庫大小版本通常是一個Crash的未知風險。不過也管不了許多,強行接入。
接入後,問題並非想象的簡單。Kondor用了不少KDE的控制元件和Q3的控制元件。辛虧,KDE的控制元件大量繼承Qt,倒也算幸運。不過在訪問Kondor物件的metaobject時候,會經常crash。好在我自己的模式和HP UFT等系統不一樣,也比HP的UFT穩定,算是基本能夠操控Kondor front office的所有功能。也感嘆,KDE和Qt的物件模型要比Infragistics等window廠家的東西,在模型方面要簡單的多(過幾天開貼寫Infragistics的)。不過,在對Image和截圖處理依舊有個炸彈。
如果採用現有模式,那個炸彈基本是無解。因為Qt貌似不允許在非介面執行緒中呼叫Qimage,需要在事件的slot中之類。而我的程式碼是無法進入Kondor的Slot程式碼,因為Kondor對我而言就是一個黑盒子。
好在在權衡現有架構後,想到一個簡單辦法,規避了在Kondor程式內部操作image的事情,就給公司的留言說,說不定幾個月後,我們可以參加巴西的狂歡節。老闆也很搞笑,留言說,他開始打包了 :)
當然,現在巴西美國疫情極其嚴重,冒險去巴西?
備註
在推特吹牛,說自己一個人搞定HP UFT一個團隊乾的事情,還比HP UFT的東西穩定強大,哈哈哈。
相關文章
- 測試開發之自動化篇-自動化測試框架設計框架
- PHP 開發入門自動化測試歷程(一)PHP
- 淺談自動化測試框架開發框架
- 軟體測試筆記——11.自動化測試和手動測試的選擇筆記
- 解放雙手 - Android 開發應該嘗試的 UI 自動化測試AndroidUI
- 自動化測試系列 —— UI自動化測試UI
- Python 自動化測試開發大綱Python
- 自動化測試-敏捷開發的基礎敏捷
- 軟體開發中的自動化測試
- 面向開發的測試技術(三):Web自動化測試Web
- 自己動手寫Web自動化測試框架(6):自動化測試框架的規劃Web框架
- 緊耦合金融系統群的測試自動化策略(一)
- 自己動手寫Web自動化測試框架Web框架
- 自動化測試開源策略
- 搭建自己的前端自動化測試腳手架(一)前端
- 測試開發全棧之 Python 自動化全棧Python
- 前端開發自動化單元測試趨勢前端
- 用Python開發自動化測試指令碼Python指令碼
- 前端自動化測試初探(一)前端
- 測試開發之自動化篇-Appium指令碼開發APP指令碼
- 【自動化測試入門】自動化測試思維
- AutoRunner 功能自動化測試專案實訓之自動化測試原理(一)
- 測者的測試技術手冊:自動的自動化EvoSuite 自動生成JUnit的測試用例UI
- 優化自動化測試流程,使用 flask 開發一個 toy jenkins工具優化FlaskJenkins
- 介面自動化測試錄製工具,讓python selenium自動化測試指令碼開發更加方便Python指令碼
- PHP 開發入門自動化測試歷程(二)PHP
- PHP 開發入門自動化測試歷程(三)PHP
- 自動化測試工具縮小開發和交付差距
- 使用go語言開發自動化API測試工具GoAPI
- ECU 自動化生產測試系統
- 動手開發第一個 Cypress 測試應用
- 《Web介面開發與自動化測試(基於Python語言)》讀書筆記(一)WebPython筆記
- 軟體測試:自動化測試
- 測試開發之介面篇-使用K6完成介面自動化測試
- 自動化裝置測試與自動化測試的區別
- 自己動手寫Web自動化測試框架(1) :概述Web框架
- 自動化測試知識體系(ABOK)
- 自動化測試理解