android-midscene-automation 0.1.30 → 0.1.32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +16 -26
- package/README.md +16 -26
- package/bin/sync-readme-docs.mjs +49 -0
- package/index.html +1 -1
- package/package.json +8 -8
- package/remote-agent/index.ts +1 -1
- package/server/appium-recorder/appium-runner.ts +97 -43
- package/server/appium-recorder/bounded-loop.ts +118 -0
- package/server/appium-recorder/history-capture.ts +34 -0
- package/server/appium-recorder/report.ts +1 -1
- package/server/appium-recorder/repository.ts +9 -0
- package/server/appium-recorder/routes.ts +29 -5
- package/server/appium-recorder/run-history.ts +34 -0
- package/src/appium-recorder/AppiumPage.vue +114 -54
- package/src/appium-recorder/RunHistoryDialog.vue +153 -0
- package/src/appium-recorder/bounded-loop.ts +66 -0
- package/src/appium-recorder/components/BreakLoopSettings.vue +29 -0
- package/src/appium-recorder/components/ComponentInspector.vue +26 -0
- package/src/appium-recorder/components/ComponentTree.vue +24 -4
- package/src/appium-recorder/components/FlowCanvas.vue +19 -1
- package/src/appium-recorder/components/FlowNodeCard.vue +6 -3
- package/src/appium-recorder/components/FlowNodeSearch.vue +62 -0
- package/src/appium-recorder/components/FlowStepEditor.vue +9 -4
- package/src/appium-recorder/components/LoopSettings.vue +37 -0
- package/src/appium-recorder/components/NestedConditionBranches.vue +11 -3
- package/src/appium-recorder/components/NodeDetail.vue +30 -6
- package/src/appium-recorder/components/RecordedSteps.vue +24 -4
- package/src/appium-recorder/components/RecorderWorkspace.vue +132 -0
- package/src/appium-recorder/components/VisualChangeEndPicker.vue +21 -0
- package/src/appium-recorder/flow-copy.ts +1 -0
- package/src/appium-recorder/flow-graph.ts +4 -9
- package/src/appium-recorder/flow-labels.ts +7 -0
- package/src/appium-recorder/flow-merge.ts +3 -2
- package/src/appium-recorder/flow-normalize.ts +1 -0
- package/src/appium-recorder/flow-search.ts +29 -0
- package/src/appium-recorder/node-locators.ts +25 -0
- package/src/appium-recorder/run-history.ts +50 -0
- package/src/appium-recorder/tree.ts +2 -5
- package/src/appium-recorder/types.ts +7 -0
- package/src/appium-recorder/visual-change-pairs.ts +16 -10
- package/src/components/device/DevicePreviewPanel.vue +62 -10
- package/src/style.css +24 -7
- package/src/ui-refresh.css +40 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,11 +1,25 @@
|
|
|
1
1
|
# 更新记录
|
|
2
2
|
|
|
3
|
-
## v0.1.
|
|
3
|
+
## v0.1.32
|
|
4
|
+
- 添加画面变化结束节点时,多组可配对检测支持按名称及开始节点编号选择,允许交叉结束;只有一组时直接添加,保留分支及重复结束校验。
|
|
5
|
+
- 画面变化结束节点校验覆盖祖先及子分支:同一执行路径已存在对应结束节点时,后续分支不能重复添加;互斥分支仍可分别结束。
|
|
6
|
+
- 脚本列表新增“历史结果对比”:保存运行结果、应用版本、设备、截图和日志,支持筛选查看通过率、耗时趋势与失败节点分布,对比两次运行并删除选中历史;手动终止不计入通过率,旧报告不自动补录。
|
|
7
|
+
- 画面变化检测在每个结束节点执行后立即对比本次截图,避免循环及重复调用脚本时多组检测复用最后一轮图片;截图缺失时明确报告异常,不使用旧图替代。
|
|
8
|
+
- “启动 APP”支持在流程中途、判断分支及循环体内多次添加,按所选位置执行;连接脚本仅跳过开头的应用初始化,中途启动操作正常保留。
|
|
9
|
+
- Midscene 相关模块统一从 1.12.2 升级至 1.12.5。
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
## v0.1.31
|
|
13
|
+
- 组件详情展示 Resource ID、Accessibility ID、XPath 和 UiAutomator 四种定位内容,支持分别复制,方便配置循环退出条件;缺少对应属性时显示未提供。
|
|
14
|
+
- “流程控制”新增有界循环及退出循环:支持固定次数、元素出现或消失时退出,必须设置最大执行次数;循环体支持嵌套判断、合流和连接脚本。退出节点可选择当前或外层循环,退出外层时同时结束内部循环并直接执行目标循环结束路径,日志及 HTML 报告标注轮次和退出目标。
|
|
15
|
+
- 新增流程节点搜索,支持按名称、操作类型、定位内容和日志关键字筛选,展示所属分支并在多个结果间切换;普通画布与流程总览支持定位高亮,不改变节点布局及批量选中状态。
|
|
16
|
+
- Midscene 相关模块统一从 1.12.0 升级至 1.12.2。
|
|
17
|
+
- 录制工作区支持拖拽调整设备预览、组件树栏宽,自动保存布局并支持恢复默认。
|
|
4
18
|
|
|
19
|
+
## v0.1.30
|
|
5
20
|
- 新增节点批量删除功能,支持多选节点,选中节点及所属子节点以柔和红色背景和浅色文字标记,确认后统一删除;支持普通与放大视图同步操作。
|
|
6
21
|
|
|
7
22
|
## v0.1.29
|
|
8
|
-
|
|
9
23
|
- 判断节点新增“合并分支”,支持选择一侧公共流程起点,将两侧后续汇入同一段居中流程;另一侧可保留独有操作或确认删除重复后缀,支持嵌套判断及各类分支,公共节点只执行一次且不随单侧节点删除。
|
|
10
24
|
- 将 Checkbox、RadioButton 判断入口合并为“判断勾选”,新增 Switch 支持;添加和回放时自动校验组件类型及可勾选属性,读取实时 checked 状态进入 true / false 分支,不改变控件状态,兼容已有独立判断节点。
|
|
11
25
|
- “流程控制”新增终止流程节点,执行到该节点时主动结束本次回放,不再执行后续节点或连接脚本;子脚本触发时也结束整个流程,保留执行日志和报告,不作为执行失败。
|
|
@@ -13,7 +27,6 @@
|
|
|
13
27
|
- Appium 配置新增流程背景色设置,默认沿用浅绿色,支持预选颜色、颜色选择器、#RGB / #RRGGBB 输入校验和恢复默认;保存后持久化,普通画布、放大视图和连接脚本预览统一应用。
|
|
14
28
|
|
|
15
29
|
## v0.1.28
|
|
16
|
-
|
|
17
30
|
- Appium 配置中的流程背景色独立成区,与节点模型配置分开展示,保留预选颜色、自定义颜色及保存入口。
|
|
18
31
|
- “组件操作”新增文字点击分支节点,无需预选元素,支持精准匹配和模糊匹配原生组件文字;匹配并点击后进入“匹配到文字”,等待超时未找到则进入“未匹配到文字”。支持编辑文字和超时,多元素匹配及点击异常明确报错,日志和报告保留分支结果。
|
|
19
32
|
- “流程控制”新增输出日志节点,支持设置日志内容和自定义关键字,默认按 `stageLog:内容` 输出;支持添加后编辑,回放实时输出、日志文件及报告均保留日志内容,多行内容逐行添加关键字。
|
|
@@ -22,7 +35,6 @@
|
|
|
22
35
|
- 新增原生 Checkbox 和 RadioButton 状态判断节点,添加时校验选中元素类型,回放时读取 `checked` 属性,按 `true / false` 进入对应分支,不改变勾选状态;组件详情显示原生勾选属性,回放日志和报告记录判断结果。
|
|
23
36
|
|
|
24
37
|
## v0.1.27
|
|
25
|
-
|
|
26
38
|
- npx android-midscene-automation 启动时默认使用固定的系统用户数据目录保存脚本、配置、报告和运行态文件,并在启动时尝试迁移旧版启动目录下的数据,降低升级后脚本或配置“不见了”的风险。
|
|
27
39
|
- 新增脚本列表复制和重命名能力,可直接生成“原文件名 Copy”副本并修改脚本名称,便于复用已有录制流程。
|
|
28
40
|
- 新增检测画面变化能力,支持框选设备预览区域或使用当前选中元素作为检测区域,通过“检测画面变化N-开始节点 / 结束节点”对同一分支内的前后截图进行差异对比。
|
|
@@ -32,34 +44,28 @@
|
|
|
32
44
|
- 回放报告截图和截图节点改为使用 ADB 截图,避免 Appium /screenshot 超时后堵塞 UiAutomator2 命令队列;Appium 请求超时时也会显示更准确的超时提示。
|
|
33
45
|
|
|
34
46
|
## v0.1.26
|
|
35
|
-
|
|
36
47
|
- 修复流程节点复制与粘贴问题,避免 `structuredClone` 失败、粘贴后原节点消失、分支插入位置错误和复制后相对位置偏移。
|
|
37
48
|
- 修复判断分支已有节点时入口添加按钮缺失的问题,分支入口现在会保留可插入节点,并正确连接到首个分支节点。
|
|
38
49
|
- 滑动操作支持在添加弹窗和节点配置中修改起点、终点坐标及滑动时长。
|
|
39
50
|
- 长按操作支持设置长按时间,并在节点卡片中显示长按坐标和时长。
|
|
40
51
|
|
|
41
52
|
## v0.1.25
|
|
42
|
-
|
|
43
53
|
- Android 设备预览恢复使用 scrcpy 实时流,优化实时流参数,减少 H.264 丢帧导致的花屏;刷新画面时会重启底层 Playground 预览流并等待会话就绪。
|
|
44
54
|
- 测试脚本生成新增提示词模板,可在通用提示词、广告测试、表单填写、聊天对话、播放器测试、搜索列表、订单支付、权限弹窗、个人设置和 H5/WebView 等场景间切换,并支持编辑或上传当前原始 Prompt。
|
|
45
55
|
- 优化 AI 生成流程,支持后台处理和终止生成;生成中锁定原始 Prompt,再次点击“AI 生成”可恢复进度弹窗,终止后不再弹出额外提示。
|
|
46
56
|
- 优化脚本生成提示词策略,区分广告、播放器、弹窗等被测目标与无关遮挡内容,登录流程增加登录后遮挡弹窗处理和无遮挡首页成功判定。
|
|
47
57
|
|
|
48
58
|
## v0.1.24
|
|
49
|
-
|
|
50
59
|
- 参数配置的运行配置新增保存校验,Android SDK 路径必须包含 `platform-tools/adb`,回放报告目录必须填写已存在且可写入的绝对路径。
|
|
51
60
|
- Midscene 自定义提供方的 `Model Name` 和 `Model Family` 改为输入框,`Base URL` 匹配已知提供方时自动填充模型名称和模型系列,并在字段旁新增官方配置说明入口。
|
|
52
61
|
|
|
53
62
|
## v0.1.23
|
|
54
|
-
|
|
55
63
|
- 常见问题拆分为独立 `FAQ.md` 文档,并在 README 的“功能文档”中增加跳转入口。
|
|
56
64
|
|
|
57
65
|
## v0.1.22
|
|
58
|
-
|
|
59
66
|
- 升级 Midscene 相关依赖到 `v1.12.0`
|
|
60
67
|
|
|
61
68
|
## v0.1.21
|
|
62
|
-
|
|
63
69
|
- 录制步骤流程图升级为独立画布与节点卡片视图,优化节点内容排版、操作图标、选中态、批量复制和还原位置体验。
|
|
64
70
|
- 统一普通流程线、操作按钮连线和判断分支线条样式,按节点实际高度计算连接位置,修复线条颜色不一致、断裂、多余线条、节点重叠和分支错位问题。
|
|
65
71
|
- 优化判断分支布局,统一“是 / 否”分支的 T 形连接样式,避免分支节点堆叠、左右分支连接错乱及多出第三分支。
|
|
@@ -69,36 +75,29 @@
|
|
|
69
75
|
- 修复放大面板后点击操作按钮或节点配置会重置缩放的问题,保持当前画布大小和位置。
|
|
70
76
|
|
|
71
77
|
## v0.1.20
|
|
72
|
-
|
|
73
78
|
- Appium 流程支持单节点、连续节点及完整判断子流程的复制与粘贴。
|
|
74
79
|
- 优化判断分支布局和流程总览,支持在总览中编辑完整流程。
|
|
75
80
|
- Appium session 与“启动 APP”节点解耦,并避免将桌面、设置等系统 Activity 误识别为脚本入口。
|
|
76
81
|
- 修复复杂判断脚本加载失败及加载后无法进入“当前录制”的问题。
|
|
77
82
|
|
|
78
83
|
## v0.1.19
|
|
79
|
-
|
|
80
84
|
- 回放输出支持保留完整 Appium 服务日志,并可在执行过程中手动终止。
|
|
81
85
|
- 新增单文件 HTML 截图回放报告,提供时间轴、步骤导航和连续播放效果。
|
|
82
86
|
|
|
83
87
|
## v0.1.18
|
|
84
|
-
|
|
85
88
|
- 使用说明和更新记录自动嵌入 README,可直接在 npm 页面渲染查看。
|
|
86
89
|
|
|
87
90
|
## v0.1.17
|
|
88
|
-
|
|
89
91
|
- 新增在线文档查看入口,支持渲染使用说明和更新记录。
|
|
90
92
|
|
|
91
93
|
## v0.1.16
|
|
92
|
-
|
|
93
94
|
- 优化参数配置页面布局,将预设 App 参数归入运行配置区域。
|
|
94
95
|
|
|
95
96
|
## v0.1.15
|
|
96
|
-
|
|
97
97
|
- README 新增 Midscene 与 Appium 两种测试方式及环境要求说明。
|
|
98
98
|
- 明确 Midscene 需要配置模型,Appium 无需模型即可运行。
|
|
99
99
|
|
|
100
100
|
## v0.1.14
|
|
101
|
-
|
|
102
101
|
- 参数配置支持指定 Android SDK 和回放报告目录,并在回放前检查 Android SDK。
|
|
103
102
|
- 回放完成后生成包含节点配置、执行结果和日志的 Markdown 报告。
|
|
104
103
|
- 脚本列表支持 JSON 脚本导入和下载。
|
|
@@ -108,25 +107,20 @@
|
|
|
108
107
|
- 新增节点备注、未保存提醒和页面状态持久化。
|
|
109
108
|
|
|
110
109
|
## v0.1.13
|
|
111
|
-
|
|
112
110
|
- 修复历史脚本新增节点后无法覆盖保存的问题。
|
|
113
111
|
- 修复连接脚本未按顺序继续执行的问题。
|
|
114
112
|
|
|
115
113
|
## v0.1.12
|
|
116
|
-
|
|
117
114
|
- “启动 APP”统一为流程开始节点操作,每个脚本最多添加一次。
|
|
118
115
|
- 连接脚本回放时自动跳过子脚本的重复启动操作。
|
|
119
116
|
|
|
120
117
|
## v0.1.11
|
|
121
|
-
|
|
122
118
|
- 修复 npm 页面中的更新记录访问链接。
|
|
123
119
|
|
|
124
120
|
## v0.1.10
|
|
125
|
-
|
|
126
121
|
- npm 包新增项目更新记录,并清理未随包发布的内部文档链接。
|
|
127
122
|
|
|
128
123
|
## v0.1.9
|
|
129
|
-
|
|
130
124
|
- 录制步骤升级为可拖动、缩放和编辑的流程图,支持“是 / 否”判断分支。
|
|
131
125
|
- 支持在流程任意位置插入操作,并编辑节点、定位器、超时和输入内容。
|
|
132
126
|
- 支持 Activity 跳转检测和单 Activity 脚本录制保护。
|
|
@@ -134,23 +128,19 @@
|
|
|
134
128
|
- 新增脚本管理列表,可加载、删除和回放已录制脚本。
|
|
135
129
|
|
|
136
130
|
## v0.1.8
|
|
137
|
-
|
|
138
131
|
- 新增 selector 唯一性检测和父级上下文定位,解决多个组件共用同一 ID 的问题。
|
|
139
132
|
- 回放支持多级定位和坐标兜底,并记录页面检查点与完整失败诊断信息。
|
|
140
133
|
|
|
141
134
|
## v0.1.7
|
|
142
|
-
|
|
143
135
|
- 新增存在则点击、输入、清空、返回等可选操作。
|
|
144
136
|
- 新增等待出现、判断存在和等待消失等等待与判断能力。
|
|
145
137
|
|
|
146
138
|
## v0.1.6
|
|
147
|
-
|
|
148
139
|
- 新增可复用设备预览,支持点击画面选择组件树节点和刷新实时画面。
|
|
149
140
|
- 组件树支持滚动浏览并展示当前 Activity。
|
|
150
141
|
- 录制操作统一通过“添加操作”菜单选择。
|
|
151
142
|
|
|
152
143
|
## v0.1.5
|
|
153
|
-
|
|
154
144
|
- 首次提供 Appium 无模型录制与回放能力。
|
|
155
145
|
- 支持从组件树录制点击、输入、断言和延时,并保存为可回放脚本。
|
|
156
146
|
- App 包名与参数配置中的预设 App 统一管理。
|
package/README.md
CHANGED
|
@@ -1229,12 +1229,26 @@ Linux: ~/.local/share/android-midscene-automation
|
|
|
1229
1229
|
|
|
1230
1230
|
# 项目更新记录
|
|
1231
1231
|
|
|
1232
|
-
## v0.1.
|
|
1232
|
+
## v0.1.32
|
|
1233
|
+
- 添加画面变化结束节点时,多组可配对检测支持按名称及开始节点编号选择,允许交叉结束;只有一组时直接添加,保留分支及重复结束校验。
|
|
1234
|
+
- 画面变化结束节点校验覆盖祖先及子分支:同一执行路径已存在对应结束节点时,后续分支不能重复添加;互斥分支仍可分别结束。
|
|
1235
|
+
- 脚本列表新增“历史结果对比”:保存运行结果、应用版本、设备、截图和日志,支持筛选查看通过率、耗时趋势与失败节点分布,对比两次运行并删除选中历史;手动终止不计入通过率,旧报告不自动补录。
|
|
1236
|
+
- 画面变化检测在每个结束节点执行后立即对比本次截图,避免循环及重复调用脚本时多组检测复用最后一轮图片;截图缺失时明确报告异常,不使用旧图替代。
|
|
1237
|
+
- “启动 APP”支持在流程中途、判断分支及循环体内多次添加,按所选位置执行;连接脚本仅跳过开头的应用初始化,中途启动操作正常保留。
|
|
1238
|
+
- Midscene 相关模块统一从 1.12.2 升级至 1.12.5。
|
|
1239
|
+
|
|
1240
|
+
|
|
1241
|
+
## v0.1.31
|
|
1242
|
+
- 组件详情展示 Resource ID、Accessibility ID、XPath 和 UiAutomator 四种定位内容,支持分别复制,方便配置循环退出条件;缺少对应属性时显示未提供。
|
|
1243
|
+
- “流程控制”新增有界循环及退出循环:支持固定次数、元素出现或消失时退出,必须设置最大执行次数;循环体支持嵌套判断、合流和连接脚本。退出节点可选择当前或外层循环,退出外层时同时结束内部循环并直接执行目标循环结束路径,日志及 HTML 报告标注轮次和退出目标。
|
|
1244
|
+
- 新增流程节点搜索,支持按名称、操作类型、定位内容和日志关键字筛选,展示所属分支并在多个结果间切换;普通画布与流程总览支持定位高亮,不改变节点布局及批量选中状态。
|
|
1245
|
+
- Midscene 相关模块统一从 1.12.0 升级至 1.12.2。
|
|
1246
|
+
- 录制工作区支持拖拽调整设备预览、组件树栏宽,自动保存布局并支持恢复默认。
|
|
1233
1247
|
|
|
1248
|
+
## v0.1.30
|
|
1234
1249
|
- 新增节点批量删除功能,支持多选节点,选中节点及所属子节点以柔和红色背景和浅色文字标记,确认后统一删除;支持普通与放大视图同步操作。
|
|
1235
1250
|
|
|
1236
1251
|
## v0.1.29
|
|
1237
|
-
|
|
1238
1252
|
- 判断节点新增“合并分支”,支持选择一侧公共流程起点,将两侧后续汇入同一段居中流程;另一侧可保留独有操作或确认删除重复后缀,支持嵌套判断及各类分支,公共节点只执行一次且不随单侧节点删除。
|
|
1239
1253
|
- 将 Checkbox、RadioButton 判断入口合并为“判断勾选”,新增 Switch 支持;添加和回放时自动校验组件类型及可勾选属性,读取实时 checked 状态进入 true / false 分支,不改变控件状态,兼容已有独立判断节点。
|
|
1240
1254
|
- “流程控制”新增终止流程节点,执行到该节点时主动结束本次回放,不再执行后续节点或连接脚本;子脚本触发时也结束整个流程,保留执行日志和报告,不作为执行失败。
|
|
@@ -1242,7 +1256,6 @@ Linux: ~/.local/share/android-midscene-automation
|
|
|
1242
1256
|
- Appium 配置新增流程背景色设置,默认沿用浅绿色,支持预选颜色、颜色选择器、#RGB / #RRGGBB 输入校验和恢复默认;保存后持久化,普通画布、放大视图和连接脚本预览统一应用。
|
|
1243
1257
|
|
|
1244
1258
|
## v0.1.28
|
|
1245
|
-
|
|
1246
1259
|
- Appium 配置中的流程背景色独立成区,与节点模型配置分开展示,保留预选颜色、自定义颜色及保存入口。
|
|
1247
1260
|
- “组件操作”新增文字点击分支节点,无需预选元素,支持精准匹配和模糊匹配原生组件文字;匹配并点击后进入“匹配到文字”,等待超时未找到则进入“未匹配到文字”。支持编辑文字和超时,多元素匹配及点击异常明确报错,日志和报告保留分支结果。
|
|
1248
1261
|
- “流程控制”新增输出日志节点,支持设置日志内容和自定义关键字,默认按 `stageLog:内容` 输出;支持添加后编辑,回放实时输出、日志文件及报告均保留日志内容,多行内容逐行添加关键字。
|
|
@@ -1251,7 +1264,6 @@ Linux: ~/.local/share/android-midscene-automation
|
|
|
1251
1264
|
- 新增原生 Checkbox 和 RadioButton 状态判断节点,添加时校验选中元素类型,回放时读取 `checked` 属性,按 `true / false` 进入对应分支,不改变勾选状态;组件详情显示原生勾选属性,回放日志和报告记录判断结果。
|
|
1252
1265
|
|
|
1253
1266
|
## v0.1.27
|
|
1254
|
-
|
|
1255
1267
|
- npx android-midscene-automation 启动时默认使用固定的系统用户数据目录保存脚本、配置、报告和运行态文件,并在启动时尝试迁移旧版启动目录下的数据,降低升级后脚本或配置“不见了”的风险。
|
|
1256
1268
|
- 新增脚本列表复制和重命名能力,可直接生成“原文件名 Copy”副本并修改脚本名称,便于复用已有录制流程。
|
|
1257
1269
|
- 新增检测画面变化能力,支持框选设备预览区域或使用当前选中元素作为检测区域,通过“检测画面变化N-开始节点 / 结束节点”对同一分支内的前后截图进行差异对比。
|
|
@@ -1261,34 +1273,28 @@ Linux: ~/.local/share/android-midscene-automation
|
|
|
1261
1273
|
- 回放报告截图和截图节点改为使用 ADB 截图,避免 Appium /screenshot 超时后堵塞 UiAutomator2 命令队列;Appium 请求超时时也会显示更准确的超时提示。
|
|
1262
1274
|
|
|
1263
1275
|
## v0.1.26
|
|
1264
|
-
|
|
1265
1276
|
- 修复流程节点复制与粘贴问题,避免 `structuredClone` 失败、粘贴后原节点消失、分支插入位置错误和复制后相对位置偏移。
|
|
1266
1277
|
- 修复判断分支已有节点时入口添加按钮缺失的问题,分支入口现在会保留可插入节点,并正确连接到首个分支节点。
|
|
1267
1278
|
- 滑动操作支持在添加弹窗和节点配置中修改起点、终点坐标及滑动时长。
|
|
1268
1279
|
- 长按操作支持设置长按时间,并在节点卡片中显示长按坐标和时长。
|
|
1269
1280
|
|
|
1270
1281
|
## v0.1.25
|
|
1271
|
-
|
|
1272
1282
|
- Android 设备预览恢复使用 scrcpy 实时流,优化实时流参数,减少 H.264 丢帧导致的花屏;刷新画面时会重启底层 Playground 预览流并等待会话就绪。
|
|
1273
1283
|
- 测试脚本生成新增提示词模板,可在通用提示词、广告测试、表单填写、聊天对话、播放器测试、搜索列表、订单支付、权限弹窗、个人设置和 H5/WebView 等场景间切换,并支持编辑或上传当前原始 Prompt。
|
|
1274
1284
|
- 优化 AI 生成流程,支持后台处理和终止生成;生成中锁定原始 Prompt,再次点击“AI 生成”可恢复进度弹窗,终止后不再弹出额外提示。
|
|
1275
1285
|
- 优化脚本生成提示词策略,区分广告、播放器、弹窗等被测目标与无关遮挡内容,登录流程增加登录后遮挡弹窗处理和无遮挡首页成功判定。
|
|
1276
1286
|
|
|
1277
1287
|
## v0.1.24
|
|
1278
|
-
|
|
1279
1288
|
- 参数配置的运行配置新增保存校验,Android SDK 路径必须包含 `platform-tools/adb`,回放报告目录必须填写已存在且可写入的绝对路径。
|
|
1280
1289
|
- Midscene 自定义提供方的 `Model Name` 和 `Model Family` 改为输入框,`Base URL` 匹配已知提供方时自动填充模型名称和模型系列,并在字段旁新增官方配置说明入口。
|
|
1281
1290
|
|
|
1282
1291
|
## v0.1.23
|
|
1283
|
-
|
|
1284
1292
|
- 常见问题拆分为独立 `FAQ.md` 文档,并在 README 的“功能文档”中增加跳转入口。
|
|
1285
1293
|
|
|
1286
1294
|
## v0.1.22
|
|
1287
|
-
|
|
1288
1295
|
- 升级 Midscene 相关依赖到 `v1.12.0`
|
|
1289
1296
|
|
|
1290
1297
|
## v0.1.21
|
|
1291
|
-
|
|
1292
1298
|
- 录制步骤流程图升级为独立画布与节点卡片视图,优化节点内容排版、操作图标、选中态、批量复制和还原位置体验。
|
|
1293
1299
|
- 统一普通流程线、操作按钮连线和判断分支线条样式,按节点实际高度计算连接位置,修复线条颜色不一致、断裂、多余线条、节点重叠和分支错位问题。
|
|
1294
1300
|
- 优化判断分支布局,统一“是 / 否”分支的 T 形连接样式,避免分支节点堆叠、左右分支连接错乱及多出第三分支。
|
|
@@ -1298,36 +1304,29 @@ Linux: ~/.local/share/android-midscene-automation
|
|
|
1298
1304
|
- 修复放大面板后点击操作按钮或节点配置会重置缩放的问题,保持当前画布大小和位置。
|
|
1299
1305
|
|
|
1300
1306
|
## v0.1.20
|
|
1301
|
-
|
|
1302
1307
|
- Appium 流程支持单节点、连续节点及完整判断子流程的复制与粘贴。
|
|
1303
1308
|
- 优化判断分支布局和流程总览,支持在总览中编辑完整流程。
|
|
1304
1309
|
- Appium session 与“启动 APP”节点解耦,并避免将桌面、设置等系统 Activity 误识别为脚本入口。
|
|
1305
1310
|
- 修复复杂判断脚本加载失败及加载后无法进入“当前录制”的问题。
|
|
1306
1311
|
|
|
1307
1312
|
## v0.1.19
|
|
1308
|
-
|
|
1309
1313
|
- 回放输出支持保留完整 Appium 服务日志,并可在执行过程中手动终止。
|
|
1310
1314
|
- 新增单文件 HTML 截图回放报告,提供时间轴、步骤导航和连续播放效果。
|
|
1311
1315
|
|
|
1312
1316
|
## v0.1.18
|
|
1313
|
-
|
|
1314
1317
|
- 使用说明和更新记录自动嵌入 README,可直接在 npm 页面渲染查看。
|
|
1315
1318
|
|
|
1316
1319
|
## v0.1.17
|
|
1317
|
-
|
|
1318
1320
|
- 新增在线文档查看入口,支持渲染使用说明和更新记录。
|
|
1319
1321
|
|
|
1320
1322
|
## v0.1.16
|
|
1321
|
-
|
|
1322
1323
|
- 优化参数配置页面布局,将预设 App 参数归入运行配置区域。
|
|
1323
1324
|
|
|
1324
1325
|
## v0.1.15
|
|
1325
|
-
|
|
1326
1326
|
- README 新增 Midscene 与 Appium 两种测试方式及环境要求说明。
|
|
1327
1327
|
- 明确 Midscene 需要配置模型,Appium 无需模型即可运行。
|
|
1328
1328
|
|
|
1329
1329
|
## v0.1.14
|
|
1330
|
-
|
|
1331
1330
|
- 参数配置支持指定 Android SDK 和回放报告目录,并在回放前检查 Android SDK。
|
|
1332
1331
|
- 回放完成后生成包含节点配置、执行结果和日志的 Markdown 报告。
|
|
1333
1332
|
- 脚本列表支持 JSON 脚本导入和下载。
|
|
@@ -1337,25 +1336,20 @@ Linux: ~/.local/share/android-midscene-automation
|
|
|
1337
1336
|
- 新增节点备注、未保存提醒和页面状态持久化。
|
|
1338
1337
|
|
|
1339
1338
|
## v0.1.13
|
|
1340
|
-
|
|
1341
1339
|
- 修复历史脚本新增节点后无法覆盖保存的问题。
|
|
1342
1340
|
- 修复连接脚本未按顺序继续执行的问题。
|
|
1343
1341
|
|
|
1344
1342
|
## v0.1.12
|
|
1345
|
-
|
|
1346
1343
|
- “启动 APP”统一为流程开始节点操作,每个脚本最多添加一次。
|
|
1347
1344
|
- 连接脚本回放时自动跳过子脚本的重复启动操作。
|
|
1348
1345
|
|
|
1349
1346
|
## v0.1.11
|
|
1350
|
-
|
|
1351
1347
|
- 修复 npm 页面中的更新记录访问链接。
|
|
1352
1348
|
|
|
1353
1349
|
## v0.1.10
|
|
1354
|
-
|
|
1355
1350
|
- npm 包新增项目更新记录,并清理未随包发布的内部文档链接。
|
|
1356
1351
|
|
|
1357
1352
|
## v0.1.9
|
|
1358
|
-
|
|
1359
1353
|
- 录制步骤升级为可拖动、缩放和编辑的流程图,支持“是 / 否”判断分支。
|
|
1360
1354
|
- 支持在流程任意位置插入操作,并编辑节点、定位器、超时和输入内容。
|
|
1361
1355
|
- 支持 Activity 跳转检测和单 Activity 脚本录制保护。
|
|
@@ -1363,23 +1357,19 @@ Linux: ~/.local/share/android-midscene-automation
|
|
|
1363
1357
|
- 新增脚本管理列表,可加载、删除和回放已录制脚本。
|
|
1364
1358
|
|
|
1365
1359
|
## v0.1.8
|
|
1366
|
-
|
|
1367
1360
|
- 新增 selector 唯一性检测和父级上下文定位,解决多个组件共用同一 ID 的问题。
|
|
1368
1361
|
- 回放支持多级定位和坐标兜底,并记录页面检查点与完整失败诊断信息。
|
|
1369
1362
|
|
|
1370
1363
|
## v0.1.7
|
|
1371
|
-
|
|
1372
1364
|
- 新增存在则点击、输入、清空、返回等可选操作。
|
|
1373
1365
|
- 新增等待出现、判断存在和等待消失等等待与判断能力。
|
|
1374
1366
|
|
|
1375
1367
|
## v0.1.6
|
|
1376
|
-
|
|
1377
1368
|
- 新增可复用设备预览,支持点击画面选择组件树节点和刷新实时画面。
|
|
1378
1369
|
- 组件树支持滚动浏览并展示当前 Activity。
|
|
1379
1370
|
- 录制操作统一通过“添加操作”菜单选择。
|
|
1380
1371
|
|
|
1381
1372
|
## v0.1.5
|
|
1382
|
-
|
|
1383
1373
|
- 首次提供 Appium 无模型录制与回放能力。
|
|
1384
1374
|
- 支持从组件树录制点击、输入、断言和延时,并保存为可回放脚本。
|
|
1385
1375
|
- App 包名与参数配置中的预设 App 统一管理。
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { readFile, writeFile } from 'node:fs/promises';
|
|
2
|
+
|
|
3
|
+
const generatedStart = '<!-- generated-docs:start -->';
|
|
4
|
+
const generatedEnd = '<!-- generated-docs:end -->';
|
|
5
|
+
const readmeUrl = new URL('../README.md', import.meta.url);
|
|
6
|
+
|
|
7
|
+
const stripFirstHeading = (markdown) =>
|
|
8
|
+
markdown.replace(/^#\s+[^\r\n]+\r?\n+/, '').trim();
|
|
9
|
+
|
|
10
|
+
const stripUsageFaqPointer = (markdown) =>
|
|
11
|
+
markdown.replace(
|
|
12
|
+
/\n## 常见问题\r?\n\r?\n常见问题已独立整理到 \[FAQ\.md\]\(\.\/FAQ\.md\)。\r?\n/g,
|
|
13
|
+
'\n',
|
|
14
|
+
);
|
|
15
|
+
|
|
16
|
+
const linkReadmeAnchors = (markdown) =>
|
|
17
|
+
markdown.replace(/\[FAQ\.md\]\(\.\/FAQ\.md\)/g, '[常见问题](#常见问题)');
|
|
18
|
+
|
|
19
|
+
const [readme, usage, faq, changelog] = await Promise.all([
|
|
20
|
+
readFile(readmeUrl, 'utf8'),
|
|
21
|
+
readFile(new URL('../USAGE.md', import.meta.url), 'utf8'),
|
|
22
|
+
readFile(new URL('../FAQ.md', import.meta.url), 'utf8'),
|
|
23
|
+
readFile(new URL('../CHANGELOG.md', import.meta.url), 'utf8'),
|
|
24
|
+
]);
|
|
25
|
+
|
|
26
|
+
const generatedIndex = readme.indexOf(generatedStart);
|
|
27
|
+
const readmeBody = (
|
|
28
|
+
generatedIndex >= 0 ? readme.slice(0, generatedIndex) : readme
|
|
29
|
+
).trimEnd();
|
|
30
|
+
|
|
31
|
+
const generatedDocs = [
|
|
32
|
+
generatedStart,
|
|
33
|
+
'',
|
|
34
|
+
'# Appium 录制器使用说明',
|
|
35
|
+
'',
|
|
36
|
+
linkReadmeAnchors(stripUsageFaqPointer(stripFirstHeading(usage))),
|
|
37
|
+
'',
|
|
38
|
+
'# 常见问题',
|
|
39
|
+
'',
|
|
40
|
+
stripFirstHeading(faq),
|
|
41
|
+
'',
|
|
42
|
+
'# 项目更新记录',
|
|
43
|
+
'',
|
|
44
|
+
stripFirstHeading(changelog),
|
|
45
|
+
'',
|
|
46
|
+
generatedEnd,
|
|
47
|
+
].join('\n');
|
|
48
|
+
|
|
49
|
+
await writeFile(readmeUrl, `${readmeBody}\n\n${generatedDocs}\n`, 'utf8');
|
package/index.html
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "android-midscene-automation",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.32",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "git+https://github.com/oooooooko/android-midscene-automation.git"
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
],
|
|
29
29
|
"scripts": {
|
|
30
30
|
"dev": "vite --host 127.0.0.1",
|
|
31
|
-
"prepack": "node
|
|
31
|
+
"prepack": "node bin/sync-readme-docs.mjs",
|
|
32
32
|
"remote-agent": "tsx remote-agent/index.ts",
|
|
33
33
|
"build": "vue-tsc -b && vite build",
|
|
34
34
|
"preview": "vite preview --host 127.0.0.1",
|
|
@@ -38,12 +38,12 @@
|
|
|
38
38
|
"dependencies": {
|
|
39
39
|
"@dagrejs/dagre": "1.1.5",
|
|
40
40
|
"@element-plus/icons-vue": "2.3.2",
|
|
41
|
-
"@midscene/android": "https://registry.npmjs.org/@midscene/android/-/android-1.12.
|
|
42
|
-
"@midscene/android-playground": "1.12.
|
|
43
|
-
"@midscene/core": "https://registry.npmjs.org/@midscene/core/-/core-1.12.
|
|
44
|
-
"@midscene/playground": "https://registry.npmjs.org/@midscene/playground/-/playground-1.12.
|
|
45
|
-
"@midscene/shared": "https://registry.npmjs.org/@midscene/shared/-/shared-1.12.
|
|
46
|
-
"@midscene/web": "1.12.
|
|
41
|
+
"@midscene/android": "https://registry.npmjs.org/@midscene/android/-/android-1.12.5.tgz",
|
|
42
|
+
"@midscene/android-playground": "https://registry.npmjs.org/@midscene/android-playground/-/android-playground-1.12.5.tgz",
|
|
43
|
+
"@midscene/core": "https://registry.npmjs.org/@midscene/core/-/core-1.12.5.tgz",
|
|
44
|
+
"@midscene/playground": "https://registry.npmjs.org/@midscene/playground/-/playground-1.12.5.tgz",
|
|
45
|
+
"@midscene/shared": "https://registry.npmjs.org/@midscene/shared/-/shared-1.12.5.tgz",
|
|
46
|
+
"@midscene/web": "https://registry.npmjs.org/@midscene/web/-/web-1.12.5.tgz",
|
|
47
47
|
"@vitejs/plugin-vue": "6.0.7",
|
|
48
48
|
"@vue-flow/core": "1.48.2",
|
|
49
49
|
"archiver": "7.0.1",
|
package/remote-agent/index.ts
CHANGED
|
@@ -18,7 +18,7 @@ const agentName = argValue('agent-name', agentId);
|
|
|
18
18
|
const token = argValue('token', process.env.REMOTE_AGENT_TOKEN || '');
|
|
19
19
|
|
|
20
20
|
if (!server) {
|
|
21
|
-
console.error('缺少 --server,例如:npm run remote-agent -- --server http
|
|
21
|
+
console.error('缺少 --server,例如:npm run remote-agent -- --server http://<控制台主机地址>:5173');
|
|
22
22
|
process.exit(1);
|
|
23
23
|
}
|
|
24
24
|
|