dogtail的使用方法(三)——啟動應用


在UI自動化測試中,一切操作的都是從應用啟動開始的,而在Linux桌面應用自動化測試中,我們啟動應用的方法有多種,下面做一個簡單的介紹:

1.使用dogtail啟動

dogtail提供了應用啟動的方法,在utils庫中,使用run方法啟動:

首先導入方法:

from dogtail.utils import *

調用run方法

run('deepin-music')

即可啟動音樂

這種方法的優點是采用進程的方式直接啟動,不依賴與UI,無論桌面或任務欄上是否存在應用圖標,都可以正常啟動。

但是在實際項目中,仍然存在一個問題,

如果使用ssh遠程調用,或者Jenkins中執行測試腳本的時候,在sniff中會出現找不到應用,經過分析,可能是因為使用這種方法啟動的時候,實際是采用一個子進程啟動了應用,dogtail無法識別到。

2.從任務欄啟動

使用dogtail點擊任務欄上的應用圖標

通常有兩種方法:

(1)使用dogtail點擊任務欄上的應用圖標。

(2)已知應用圖標在任務欄上的位置,然后使用鼠標點擊對應坐標。

第二種方法的缺點是位置必須固定,如果移動位置就不行了,而使用第一種方法,無論位置在哪里,只要圖標在任務欄上存在即可。

3.點擊桌面圖標啟動

桌面圖標目前是采用圖像識別技術,定位到應用圖標的坐標,然后通過pyauogui進行點擊操作。

詳細技術方案可以參考我的另外兩篇博客:

基於opencv的模板匹配實現圖像識別,返回在屏幕中的坐標

Python三方庫PyAutoGui的使用方法

4.從啟動器啟動(俗稱開始菜單)

啟動中啟動的實現邏輯實際和任務欄上啟動差不多。

首先,需要使用鼠標點擊任務欄上的啟動器圖標,或者鍵盤super鍵,將啟動器呼出來,

然后,在啟動器中點擊對應的圖標,

但是這里有個問題,啟動器中的應用列表,一頁展示不完,所以如果我們要點擊的應用圖標不在第一頁怎么辦,通常解決方案有兩種:

(1)需要進行向下滑動,這里就涉及到相應的識別方案,判斷如果不在第一頁就往下滑動翻頁。

(2)啟動器提供搜索的功能,輸入應用名稱搜索,然后進行點擊。

從實際操作中來看,采用第二種方法的效率會高一點。

5.終端命令啟動

在python中,使用os.popen()或os.system()或者subprocess.Popen(),實現命令行啟動,比如:

import os
os.popen('deepin-music')

這種方式啟動是比較簡單的,但是在實際項目中,仍然存在遠程執行腳本的時候,dogtail無法識別的問題。

總結

以上幾種方法,各有優缺點,在實際項目中:

(1)如果需要在Jenkins中做持續集成,建議使用第二種任務欄啟動的方法。

(2)如果不會采用遠程執行的,建議采用第一種或者最后一種方案。

(3)第三種和第四種啟動方法,通常在測試用例中會涉及到,所以偶爾會用。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM