自動化測試之控制元件點選
UI自動化測試,首要考慮的是我們所選用的測試工具或框架對測試程式的支援如何。而這個支援,則主要是通過對控制元件的識別和操作來體現的;但是,不管一個測試工具或者框架對測試程式的支援程式如何,它執行測試程式時最終都是以螢幕的絕對座標來定位執行的,儘管我們平時都能聽到很多人在說,儘量避免用座標。
儘量避免用座標和最終通過座標來識別,這個看起來有點衝突,但是卻又不會衝突,是不是有點類似太極的感覺了。
座標,通常分為兩類:絕對座標和相對座標。
1. 通常我們所說的座標都是基於螢幕左上角的絕對座標。測試工具和我們人的操作最終也都是通過這個座標來進行測試程式操作的,只不過有的我們知道,有的我們不知道,僅此而已。
通俗的講:我們人手動來點選螢幕的時候,只是在點選的位置
自動化測試本質上就是來模擬人的行為的操作,所以實現過程大致類似。它首先通過我們在程式碼中編寫的id、text、index、class等來定位到我們要操作的控制元件,然後再讀取這個控制元件的x、y屬性來傳送點選事件。但是,在使用層面,我們只看到了通過id來點選,至於其他獲取座標這些,leave them alone。
2. 說到相對座標,這個就稍微有點複雜。目前已知的相對方式有相對左上、左下、右上、右下、中上、中下、居中;並且根據是否隨著父視窗變化而變化,又可分類為:不擴充套件、同步擴充套件(和父視窗一起放大/縮小)、按比例擴充套件(父視窗擴大3倍,該物件也擴大3倍)。
舉個例子來說,螢幕上有一個記事本視窗“記事本.txt”,它的座標絕對座標是400,600,這個記事本的開始選單欄,它的座標是450,700。如果假設記事本視窗的座標為
上面就是相對的解釋。其實說白了,所謂相對座標,就是一種優化的座標計算方式,可以讓我們用盡量少的改動去適應更多的變化。
至於它的相對方式和擴充套件方式,則就只是其中的一些計算方式,在這裡就不一一舉例了。
那麼,瞭解了上面的這些,我們可以做些什麼呢?
平時在開展自動化測試時,總是會遇到一些不能識別的自定義控制元件,尤其是app型別程式。那麼這時候我們就可以通過上面的座標適配來完善解決一下。
下面,我來簡單說一個基於座標的控制元件識別的簡單實現思路:
1. 實現思想:通過虛擬截圖的方式來提供一個快速定位虛擬控制元件的座標系,並對齊賦予一些額外的識別引數;嵌入到其他測試工具中直接使用。
2. 首先,通過呼叫windows api或者其他截圖程式,對測試程式的全視窗截一個半透明的截圖(可以按比例縮放);
然後,獲取測試程式的座標,並監控這個截圖上的拖拽事件來計算控制元件的座標系,並寫入xml檔案;
其次,將這個xml檔案匯入到測試工具的物件庫中進行使用。這裡需要注意,有的測試工具不支援外部自定義物件,所以需要做一些轉換。
3. 程式碼:以後再傳吧。這塊東西最好做成視覺化的,比較易於操作
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/11323760/viewspace-1062771/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 自動化測試面試點面試
- 測試開發之自動化篇-自動化測試框架設計框架
- “自動化測試解放雙手”,測試自動化好處大盤點!
- 自動化測試畫布控制元件找不到控制元件
- Android 自動化測試之 MonkeyAndroid
- UI自動化測試之AirtestUIAI
- App自動化測試:高階控制元件互動技巧APP控制元件
- 採用自動化測試的情形及自動化測試的優缺點
- 自動化測試系列 —— UI自動化測試UI
- AutoRunner 功能自動化測試專案實訓之自動化測試原理(一)
- UI自動化測試-web元素選擇UIWeb
- 【自動化測試入門】自動化測試思維
- 前端自動化測試之葵花寶典前端
- 軟體測試筆記——11.自動化測試和手動測試的選擇筆記
- 【WEB自動化測試之控制元件定位】基於HTML5控制元件的唯一控制元件屬性定位Web控制元件HTML
- 自動化裝置測試與自動化測試的區別
- 如何做自動化測試?什麼是自動化測試?
- 軟體測試:自動化測試
- 如何選擇合適的自動化測試工具?
- airTest自動化測試AI
- selenium自動化測試
- 自動化測試篇
- python自動化測試Python
- API自動化測試API
- 自動化測試框架框架
- 自動化測試理解
- 自動化測試思路
- jest 自動化測試
- 介面自動化測試
- Appium自動化測試之常用的adb命令APP
- 自動化測試之:Jenkins安裝與部署Jenkins
- 測試開發全棧之 Python 自動化全棧Python
- 移動裝置的自動化測試工具,如何選型?
- 如何學習自動化測試?從手工測試到自動化測試的過程…
- 求大神指點思路-python 自動化介面測試Python
- 小程式自動化測試--測試3
- 手工測試和自動化測試 BattleBAT
- 自動化測試系列(三)|UI測試UI
- Web自動化-Selenium自動化測試-4-編寫測試用例Web