获取步骤位置
什么是步骤位置?
步骤位置描述了当前自定义脚本在用例执行树中的 层级路径,用于定位当前脚本所处的具体位置。
你可以通过 at.get_position() 获取当前步骤的位置信息。
基本用法
python
position = at.get_position()
print(position)返回值: 一个列表,每个元素是一个字典,包含以下字段:
| 字段 | 类型 | 说明 |
|---|---|---|
position | int | 当前层级的出现次序(从 0 开始) |
name | str | 当前层级的名称 |
type | str | 当前层级的类型 |
列表从外到内排列,第一个元素是最外层,最后一个元素是当前脚本的直接父级。
返回值示例
在主用例下
python
position = at.get_position()
# [{'position': 0, 'name': '主用例', 'type': 'main_case'}]表示当前脚本位于 主用例(第 1 次) 下。
在主用例下的多任务执行器中(第 1 个)
python
position = at.get_position()
# [
# {'position': 0, 'name': '主用例', 'type': 'main_case'},
# {'position': 0, 'name': '多任务执行器', 'type': 'multitasker'}
# ]表示当前脚本位于 主用例(第 1 次) → 多任务执行器(第 1 个) 中。
在主用例下的多任务执行器中(第 2 个)
python
position = at.get_position()
# [
# {'position': 0, 'name': '主用例', 'type': 'main_case'},
# {'position': 1, 'name': '多任务执行器', 'type': 'multitasker'}
# ]表示当前脚本位于 主用例(第 1 次) → 多任务执行器(第 2 个) 中。
使用场景
根据位置执行不同逻辑
python
position = at.get_position()
# 判断是否在多任务执行器中
is_in_multitasker = any(p['type'] == 'multitasker' for p in position)
if is_in_multitasker:
print("当前在多任务执行器中执行")
else:
print("当前在主用例中执行")获取当前层级深度
python
position = at.get_position()
depth = len(position)
print(f"当前层级深度: {depth}")日志记录
python
position = at.get_position()
# 拼接位置路径
path = " → ".join([f"{p['name']}(第{p['position'] + 1}个)" for p in position])
print(f"当前位置: {path}")
# 输出示例: 当前位置: 主用例(第1个) → 多任务执行器(第2个)注意事项
at.get_position()是同步方法,无需awaitposition字段从 0 开始计数- 返回的列表长度反映了当前脚本的嵌套深度
- 此方法仅在用例执行上下文中有效,单接口调试中无法获取有意义的位置信息
总结
步骤位置提供了当前脚本在用例执行树中的精确定位:
- 通过
at.get_position()获取位置列表 - 列表从外到内描述完整的层级路径
- 每个层级包含次序、名称和类型信息
- 适合用于条件判断、日志记录和调试