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.
- 目前处于测试阶段,勿喷.