一個關於遠端控制桌面的工具
哈嘍阿,各位社群的老鐵們~
經過上次跟各位的深入交流,發現用 vnc 這種東西實現自動化點點點始終不是那麼回事。
因此就用 python3 寫了一個遠端操控桌面的小工具。
因為需要在國產系統上使用,國產系統安裝各種依賴是比較痛苦的。
所以這個工具要儘可能少的去依賴其他的第三方庫。
主要思路:
1,待測的客戶端起一個 tcp 服務
2,服務端透過這個服務獲取客戶端的截圖
3,服務端根據截圖定位客戶端的桌面座標
4,服務端向客戶端傳送定位座標及需要執行的滑鼠或鍵盤動作的請求
5,客戶端接收請求並執行相應動作
主要問題及解決方案:
1,如何截圖: linux 可以透過 PyQt5 這個庫使用 QT5 實現,沒有 QT5 的系統透過鍵盤上的 PrintSc 實現
2,如何透過截圖定位座標:透過 @shixue33 大佬的點播,看了一下 airtest 的原始碼,對我來說這個中文註釋可是太友好了。
主要使用 airtest 的 find_template 方法實現的。原理還是 opencv,只不過 airtest 已經封裝好了。
3,如何控制鍵盤滑鼠: linux 透過 Xlib 這個庫實現。
以上這些東西基本度娘都有,而且相對其他工具來講在國產系統上還是比較容易安裝的。很多基本上都是自帶了。
所以就少了很多解決到天靈蓋兒發麻的依賴問題。
基本的功能都驗證過了,還沒進行具體的業務使用。
接下來會嘗試使用一下,看看效果。
各位老鐵等我訊息。
=============================================
流光一瞬,華表千年。半年的時間就這麼過去了。
縫縫補補,修修改改這個小工具也算用了起來
整體狀態一般,僅僅處在一個能用的水平上。
工具相對簡單,更多的是在專案上進行的二次封裝。
說一說修改與需要關注的地方
1. 關於截圖
之前採用 qt 截圖,備用方案為鍵盤的 PrintSC 實現,由於後者的效率太低已經棄用。
現在是 qt 截圖轉為二進位制直接響應。
python 使用 qt5 在 linux 上截圖有個小坑,如果在函式里導包,第二次呼叫這個函式的時候會有一個段錯誤的報錯。
2.圖片識別率
工具上現在使用 airtest 的模板匹配,很單一但是識別效果還是可以接受的。
令人難受的是如果環境多的話需要每個環境截一份定點陣圖片。
也測試過使用特徵點匹配,在我的現有專案上效果不太好。暫時沒有加進去,後期為了提高識別率可能會加進去。
這方面感興趣的小夥伴可以去看看 airtest 原始碼,常用的特徵點匹配演算法都有。
3.嘗試加入記錄座標的小功能
有一個問題,如果圖片已經出現了但是沒識別到該怎麼辦?
遂加入了一個小功能,如果此次圖片識別成功會記錄座標,如果下次識別失敗會獲取對應座標後執行相應動作。
經過驗證,這個功能屬實沒啥用。
4.初始化應用狀態
在上一條用例失敗後,可能會出現其他的視窗,會導致下一個用例失敗。
然後又加了一個功能,就是把失敗後可能出現的畫面都擷取下來,然後逐個點選關閉視窗。
感覺這個方法很笨,各位社群的老鐵如果有更好的辦法還請不吝賜教。
基本上也就這樣了,問題還有很多,但是爭取搞成一個能拿的出手的東西。
最後說說我的現狀
由於我所在產品線自動化測試就我一人,而且還不隸屬開發部門。
很多程式碼問題只能自己想,自己查。工作狀態很自閉。基本屬於閉門造車。
最近開發完了手頭這個專案的自動化指令碼,內心深感疲憊。喪失了之前的鬥志。
感覺自己可能需要換換環境了。
相信未來還是會好起來的!
相關文章
- 13 個有助於遠端團隊工作的工具
- 《遠端控制》-服務端實現(一)服務端
- VNC遠端控制,VNC遠端控制連線WindowsVNCWindows
- 如何使用ssh工具便於遠端管理
- MobaXterm 2022,遠端控制
- Rdo遠端桌面,Rdo遠端桌面的功能,該如何對N個伺服器批次操作伺服器
- TeamViewer 15 遠端控制工具 下載及安裝教程View
- 電腦遠端控制怎麼弄 學會遠端控制電腦
- 遠端桌面工具哪個好?Microsoft Remote Desktop遠端桌面連線工具中文版ROSREM
- 用於 Linux 桌面的 4 個掃描工具Linux
- Windows遠端桌面的奇技淫巧Windows
- 電腦遠端控制怎麼弄 遠端控制別人的電腦
- Java關於IO的一個小工具Java
- ToDesk 1.0.0928a 中文版 Mac必備遠端控制工具Mac
- 謹防遠端控制淪為詐騙工具,ToDesk安全遠控防詐提醒
- Linux遠端控制技術Linux
- 遠端控制的操作流程
- 怎麼遠端控制電腦 遠端控制電腦的兩種方法分享
- win7桌面遠端連線 如何一鍵連線Win7
- Windows遠端桌面的使用(Remote Desktop Connection)WindowsREM
- Rd遠端桌面是什麼?使用rd遠端桌面的方式有哪些
- 遠端控制軟體哪個好用?精選安全遠控軟體ToDesk
- 除了teamviewer,還有什麼遠端控制伺服器的工具?View伺服器
- Mac相機遠端控制工具:DSLR Assistant for Mac免啟用版Mac
- VNC遠端控制軟體XP版,VNC遠端控制軟體XP版下載VNC
- 遠端桌面控制軟體,遠端桌面控制軟體推薦,及其連線方法
- vnc遠端控制軟體,vnc遠端控制軟體有什麼用,操作教程VNC
- 常用遠端工具分享
- SSH遠端訪問及控制
- 如何遠端控制數位相機
- Remote Desktop Manager 2022,遠端控制REM
- 遠端訪問及控制——ssh
- 遠端連線伺服器工具 比自帶好用遠端工具伺服器
- win10遠端控制伺服器管理工具怎麼安裝_win10安裝遠端控制伺服器管理工具的方法Win10伺服器
- 遠端桌面控制器,遠端桌面控制器哪款容易上手?如何連線
- 怎麼防止電腦被遠端控制?Win10系統停用遠端控制方法Win10
- 基於 WebSocket 的 PPT 遠端控制器簡單實現Web
- Meterpreter生成被控端並進行遠端控制