You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在同一Squish测试套件中使用多个对象映射?

Squish多对象映射拆分配置解决方案

问题概述

  • 基于Squish构建测试框架,需将庞大的Object Map按逻辑拆分为多个脚本式映射,部分映射要支持多测试套件共享访问
  • 拆分后自定义命名的映射文件(如custom_name_common_map.py)无法被识别,仅测试套件本地的names.py能生效
  • 即便删除或重命名names.py,Squish仍会自动生成该文件
  • 已在suite.conf配置OBJECTMAP = custom_name_common_map.py、设置备用对象映射,但均无效果

关键概念说明

  • names.pyc:这是Python编译生成的字节码文件,由Python解释器自动创建,目的是加快脚本加载速度,不需要手动编辑或打开,删除后会随names.py重新生成。

解决方案步骤

1. 配置正确的对象映射路径

Squish加载对象映射的优先级为:测试套件本地names.py > 配置的默认对象映射 > 备用对象映射。要让自定义共享映射生效:

  • 打开目标测试套件的suite.conf文件,将OBJECTMAP设置为共享自定义映射的相对路径,比如针对你的目录结构,suite_tst_example_1的suite.conf应写:
    OBJECTMAP = ../../shared/scripts/custom_name_common_map.py
    
  • 删除测试套件本地names.py中的对象定义(保留自动生成的空文件也可以),避免它覆盖共享映射的内容。

2. 导入多个映射文件

如果同一测试套件需要用到多个对象映射,可在主自定义映射文件中导入其他映射的内容。比如在custom_name_common_map.py中添加:

# 导入其他业务模块的对象映射
from shared.scripts.another_custom_map import *

如果导入时提示找不到模块,可在测试套件的初始化脚本(如test.py开头)添加路径:

import sys
sys.path.append("../../shared/scripts")

3. 添加共享脚本路径到测试套件设置

  • 打开Squish IDE,进入目标测试套件的Settings > Python > Script Paths
  • 添加共享脚本目录的路径(比如../../shared/scripts),确保Squish能正确找到自定义映射文件。

4. 避免对象命名冲突

多个映射文件中如果有同名对象定义,会以最后加载的为准。建议给不同模块的对象加专属前缀(比如通用对象加common_),避免命名冲突。

优化后目录结构示例

suite_example
├── shared
│   ├── scripts
│   │   ├── custom_name_common_map.py  # 通用共享对象映射
│   │   ├── another_custom_map.py      # 业务专属对象映射
│   │   └── names.py                   # Squish自动生成,无需修改
│   └── steps
│       └── example_steps.py
└── tst-example
    └── suite_tst_example_1
        ├── shared
        │   └── scripts
        │       └── names.py           # 仅存放当前套件专属对象,或留空
        └── suite.conf                 # 配置OBJECTMAP指向共享映射文件

内容的提问来源于stack exchange,提问作者Molnár Katalin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 12:35:10