MacacaUIFinder元素查找器
MacacaUIFinder元素查找器
1. 這是什么?
- 這是一個用JavaSwing寫的Macaca元素查找器,方便測試的小伙伴們定位元素,如果覺得不錯,還請點個Star鼓勵下,嘿嘿.
地址:https://github.com/MatrixSeven/MacacaUIFinder
2. 為了什么?
- 為了解決在
app-inspector上找到元素后,沒一次在Java中啟動Macaca(啟動鏈接MacacaServer的過程)定位元素巨慢,有時候一個元素定位失敗了,
就要關閉macaca-server,然后啟動app-inspector,找到元素,然后在次切換到macaca-server.我這里推薦啟動app-inspector后開很多
瀏覽器tab頁面,把需要定位元素的頁面都在tab中打開,然后打開本軟件一次尋找元素,確認無誤后拷貝出可用的定位串,直接在Java的測試用例中使用,而不必
為了一個元素沒有定位到反復重啟Macaca-client(啟動鏈接是一個非常耗時的動作). - 還為了什么?為了我的女朋友...也為了更多掙扎在自動化UI測試的小伙伴們.
3. 為什么代碼這么Low.
- 沒辦法,代碼幾乎一天抽時間寫出來的.而且Swing的布局實在是
惡心,本來想用JavaFX,但是沒有找到好的資料,不過寫完后發現了個TornadoFX,用
Kotlin寫DSL,真是在好用了.大家可以嘗試下
4. 配置文件格式
- 具體參照官方Demo里面的Json字段來填寫sample-java
[
{
"name":"iphoneX",
"deviceName":"iPhone X",
"bundleId":"測試包bundleId",
"udid":"真實設備的udid",
"platformName":"iOS"
},
{
"name":"小米8",
"deviceName":"xiaomi 8",
"app": "apk下載路徑",
"udid":"真實設備的udid",
"platformName":"android"
}
]
5. 啟動命令
直接git clone本項目或者下載MacacaElementUI-1.0.jar然后直接執行java -jar MacacaElementUI-1.0.jar即食用該軟件.
6. 關于設計
- 雖然很low,但是總體還是有設計可尋
在寫這個UI的時候為了避免層層嵌套,采用了事件發布訂閱模式,每觸發一個按鈕/組件,
就會發布對應的事件到事件管理者,然后事件管理者會才用線程分發的模式來分發這個事件給對應的
訂閱者,從而完成UI/事件的處理與各個JComponent的分離.
7. 實際效果
-
配置頁面

-
執行頁面

8. 提示
- 軟件可能有未知bug.
- 目前處于測試階段,勿噴.

浙公網安備 33010602011771號