Appearance
步骤配置
录制完成后,每一步都可以继续编辑。步骤配置用于修正定位、补充等待、调整输入值、设置断言内容,让用例从“一次录制结果”变成可长期维护的测试资产。

可配置字段
| 字段 | 说明 | 常见用途 |
|---|---|---|
| 操作类型 | 当前步骤执行的动作,例如点击、输入、断言、等待、智能步骤。 | 录制识别不准确时手动修正。 |
| 步骤描述 | 给团队成员看的说明。 | 解释该步骤业务意图。 |
| CSS 选择器 | 用 CSS 定位目标元素。 | 页面改版后修复定位。 |
| XPath | 用 XPath 定位目标元素。 | CSS 不稳定或目标结构复杂时作为兜底。 |
| 输入值 | 输入、断言、下拉选择或等待步骤使用的值。 | 修改输入内容、断言内容或等待时长。 |
| 执行前等待 | 当前步骤执行前等待的毫秒数。 | 等待动画、接口返回、组件可交互。 |
| 自然语言指令 | 智能步骤的操作说明。 | 用自然语言描述复杂界面操作。 |
操作类型
常见操作类型包括:
- 点击:点击按钮、菜单、链接或选项。
- 输入:向输入框、文本域或可编辑区域输入内容。
- 勾选 / 取消勾选:处理 checkbox。
- 悬浮:触发 hover 菜单或浮层。
- 文本断言:验证页面文本或指定元素文本。
- JSON 断言:验证结构化 JSON 内容。
- 等待:显式等待一段时间。
- 智能步骤:用自然语言描述操作,由系统规划执行。
如果只是定位失败,优先修改 CSS/XPath 或重新录制局部步骤,不建议随意修改操作类型。
输入值
输入值 的含义取决于操作类型:
| 操作类型 | 输入值含义 |
|---|---|
| 输入 | 回放时写入目标输入框的内容。 |
| 点击下拉选项 | 目标选项文本。 |
| 文本断言 | 期望出现的文本。 |
| JSON 断言 | 期望 JSON 原文。 |
| 等待 | 等待毫秒数。 |
| 键盘操作 | 按键名称,例如 Enter。 |
修改输入值不会改变目标元素定位。如果元素本身找不到,需要调整 CSS、XPath 或重新录制该步骤。
动态输入值
输入步骤支持动态值。动态值只影响回放时实际输入的内容,不影响该步骤的目标元素。
| 类型 | 回放时输入 | 适用场景 |
|---|---|---|
| 固定值 | 始终输入保存的值。 | 登录账号、固定查询条件、稳定断言前置数据。 |
| 随机字符串 | 每次生成一段小写字母和数字。 | 新建名称、唯一编码、避免重复数据。 |
| 随机数字 | 每次生成一段数字。 | 手机号后缀、编号、金额类测试数据。 |
| 时间戳 | 输入当前时间戳。 | 需要唯一值但不关心可读性。 |
| 前缀 + 时间戳 | 输入固定前缀加当前时间戳。 | 需要可识别又唯一的测试数据,例如 case-1710000000000。 |
动态值适合“新建数据不能重名”的场景。例如创建项目、创建任务、创建规则时,可以使用“前缀 + 时间戳”避免重复名称导致失败。
长度范围
随机字符串和随机数字可以配置长度范围:
- 随机字符串默认 8 到 128 位,最大 1024 位。
- 随机数字默认 1 到 5 位,最大 128 位。
长度范围不宜过大。建议优先选择业务字段允许的正常长度,避免因为输入过长触发表单校验。
敏感输入值
录制密码类字段时,系统会将输入值标记为敏感值。敏感值会加密存储,编辑界面不展示明文。
如果忘记敏感输入值,需要重新输入新值并保存。不要在步骤描述、断言或普通输入字段里填写真实密码。
执行前等待
执行前等待 是当前步骤开始前等待的时间,单位为毫秒。
适合使用执行前等待的场景:
- 点击后页面有短动画。
- 下拉框选项需要接口加载。
- 保存后需要等待提示出现。
- 列表刷新需要一点时间。
- 某个按钮要等前一步接口返回后才可点击。
建议从较小值开始,例如 500、1000 或 2000。不要为了掩盖不稳定定位给每一步都加长等待,否则会让整条用例变慢,也会掩盖真实的页面性能问题。
定位配置
CueCast 录制时会保存 CSS、XPath 和智能定位元数据。回放时会优先使用智能定位候选,并保留 CSS/XPath 作为兼容兜底。
字段优先级与作用范围
下表描述的是“编辑步骤”弹窗中几个常见字段,对回放定位和执行的实际影响范围。
| 字段 | 主要作用 | 对 CDP 主路径的优先级 | 对 DOM 降级路径的影响 | 备注 |
|---|---|---|---|---|
| 系统自动生成的智能定位信息 | 录制时自动保存的定位线索,包含元素语义、组件结构、文本和上下文信息。 | 最高。回放时会先尝试这部分信息。 | 同样优先使用。 | 这部分不在普通编辑弹窗里直接展示,主要由系统维护。 |
CSS 选择器 | 作为 CSS 兜底定位。 | 低于系统自动生成的智能定位信息;若是稳定 #id 形式,会高于普通 CSS。 | 作为 CSS fallback 使用。 | 手工修改 CSS 不会自动覆盖系统已经记录的智能定位信息。 |
XPath | 作为 XPath 兜底定位。 | 低于系统自动生成的智能定位信息;通常高于普通 CSS fallback。 | 作为 XPath fallback 使用。 | 适合结构层级明确、CSS 不好写的目标。 |
输入值 | 输入内容、断言内容、等待毫秒数、按键名,或部分点击步骤的文本值。 | 对 input 不影响目标定位;对部分下拉/菜单点击会参与文本兜底。 | 同样可能参与文本兜底。 | 修改输入值通常不会修复“找不到元素”;更多是修正业务值或断言值。 |
步骤描述 | 面向团队成员的说明文本。 | 普通步骤不参与定位。 | 普通步骤不参与定位。 | 仅智能步骤会在缺少自然语言指令时回退使用描述。 |
自然语言指令 | 智能步骤的执行指令。 | 不参与普通步骤定位;直接决定智能步骤要做什么。 | 不参与普通步骤定位;直接决定智能步骤要做什么。 | 仅对智能步骤有效。 |
上表里的第一项,可以理解为系统在录制时自动记下的“元素身份信息”。它通常比单独一条 CSS 或 XPath 更稳定,所以回放会优先使用这部分信息。
对智能步骤来说,系统会优先使用“自然语言指令”。如果这个字段留空,才会退回使用“步骤描述”作为执行说明。因此,步骤描述虽然通常是给团队看的备注,但在智能步骤里也可能影响执行结果。
CSS 的两种优先级
在步骤编辑页里修改 CSS 选择器 时,系统不会主动把它标记成“高优先级稳定定位器”。当前只有下面这类选择器,会在回放时被识别为更高一档的稳定 CSS:
- 纯
#id形式,例如#submit、#save-btn - 且这个 id 不是框架临时生成、容易变化的动态 id
下面这些都属于普通 CSS fallback:
button.primary.form .submit-btn[data-testid="save"]div.ivu-select-selection
也就是说,步骤编辑里填的 CSS 默认只是一个兼容兜底。只有它恰好满足“稳定 id”规则,回放主路径才会把它提到更高优先级。
什么时候改哪个字段
- 元素定位失败,但页面已经在正确状态:优先判断系统自动记录的定位线索是否已经失效,再修改 CSS 或 XPath。
- 只是业务值不对、断言内容不对、下拉项文本不对:修改
输入值。 - 想让输入内容每次自动变化:修改“动态输入值”配置,而不是改 CSS/XPath。
- 想给团队看懂步骤意图:修改
步骤描述。 - 想改变 AI 智能步骤的执行意图:修改
自然语言指令。
当页面改版导致步骤失败时,建议按以下顺序处理:
- 查看失败截图,确认页面是否进入了预期状态。
- 如果页面正确但元素找不到,更新 CSS 或 XPath。
- 如果是下拉、弹窗、表格行等复杂组件,优先局部重新录制该段。
- 如果业务路径已经变化,再重新录制整条用例。
断言值
文本断言和 JSON 断言都使用输入值字段保存期望内容。
文本断言支持三种断言目标和四种匹配方式:
断言目标:
| 目标 | 说明 |
|---|---|
| 整页文本 | 在页面可见文本中匹配 |
| 指定元素 | 读取指定 CSS/XPath 元素的文本进行匹配 |
| 错误提示 | 优先匹配 toast/message/dialog 等错误提示区域 |
匹配方式:
| 方式 | 规则 |
|---|---|
| 包含 | 页面/元素文本包含期望值即通过 |
| 等于 | 文本与期望值完全相等 |
| 不包含 | 文本不包含期望值 |
| 正则匹配 | 期望值作为正则表达式匹配 |
JSON 断言读取目标输入框、文本域或容器文本,后端按 JSON 语义比较,忽略格式空白、换行和对象键顺序。
保存与验证
编辑步骤后,建议立即单条回放当前用例。确认通过后,再执行所在分组或执行计划。
如果一次改了多个步骤,建议记录修改原因,方便团队后续排查。
