我用账号cmj跑用例,redfish用例把账号cmj也删除了,导致后面日志几百页都是 User cmj authentication failed,后面的用例都无法正常执行,是否能把这种破坏性的用例移除掉?
或者标注测试用例的破坏/危害等级,我可以根据危害等级把它过滤掉?
我用账号cmj跑用例,redfish用例把账号cmj也删除了,导致后面日志几百页都是 User cmj authentication failed,后面的用例都无法正常执行,是否能把这种破坏性的用例移除掉?
或者标注测试用例的破坏/危害等级,我可以根据危害等级把它过滤掉?
答案内容由AI生成,仅供参考:
结论:建议立即停止使用主账号执行用户管理类测试,转而采用临时账号 + 标签分类的组合策略。长期应由 Security SIG 推动建立统一的“安全测试用例开发规范”,从根本上防止此类问题再次发生。
根据您提供的信息,当前在使用 iTestSmart 执行测试用例时,遇到了由于某些测试用例(如 Redfish 相关用例)具有“破坏性”行为(例如删除执行账号 cmj),导致后续所有依赖该账号的测试用例均失败,日志中出现大量 User cmj authentication failed 错误。这是一个典型的安全性和测试稳定性问题。
以下是基于现有 Context 和最佳实践提出的综合解决方案:
cmj)无法继续登录系统;核心思想:避免使用长期存在的主账号执行测试,尤其是涉及用户管理的用例。
test_user_01, itest_user 等);cmj)仅用于调度和监控,不参与具体功能测试。
优点:无需修改测试框架,即可规避账户被删导致的问题。
可通过 Tags 机制对测试用例进行分类标记,实现选择性执行或过滤。
| 标签 | 含义 |
|---|---|
@destructive |
会删除用户、重置配置、清空数据等破坏性操作 |
@privileged |
需要管理员权限才能运行 |
@state-changing |
会改变系统状态且不可自动恢复 |
@safe |
安全只读操作,可放心运行 |
Test Cases 中为高风险用例添加相应标签(参考 KG 中的 Tags 实体);@destructive 类用例;
示例(Robot Framework 风格):
*** Test Cases ***
Delete User Account
[Tags] destructive user-management
Run Keyword Delete User Via Redfish cmjuser5
优点:增强测试可管理性,提升安全性与可维护性。
建议在测试流程中加入 环境预检 + 清理恢复 步骤。
Force Reset iBMC Successfully 或其他恢复命令重建关键用户;
参考上下文数据:
Force Reset iBMC Successfully 是一种已验证的系统恢复手段;Bingo Test Command 支持执行 单元、集成、压力测试,可用于构建环境初始化脚本。借助 Security SIG 和社区力量制定统一标准。
Test Case Development Specification 扩展至涵盖安全执行指南。
关联实体:
Security SIG:负责提供安全测试指导;Test Case Development Specification:可用于扩展定义测试安全规范;Security Testing Guidance:应包含对危险操作的处理建议。当前 iTestSmart 支持日志级别过滤,建议优化使用方式。
Filter Options 包括:PASS, FAIL, ERROR, CMD, CMD_RESPONSE, CONFIG_ERROR 等
当前不足:
User cmj authentication failed 条目过多,干扰排查。| 措施 | 类型 | 推荐程度 | 说明 |
|---|---|---|---|
| 使用专用测试账号 | 立即可行 | 最直接有效的方法 | |
添加 @destructive 标签 |
中期改进 | 提升测试可管理性 | |
| 引入环境恢复机制 | 工程化建设 | 结合 Force Reset 实现 |
|
| 推动制定安全测试规范 | 组织级 | 由 Security SIG 主导 | |
| 优化 Filter Options 显示 | 工具侧优化 | 辅助定位问题 |
向 Security SIG 提交请求:
“请求在 iTestSmart 测试用例中引入
@destructive标签机制,并规范用户删除类用例的设计原则。”
在 iTestSmart 中启用 Tag 过滤功能:
利用现有
Tags与Test Cases的关系结构,实现按标签筛选执行。
建立“测试账户白名单”机制:
禁止对特定用户名(如
cmj)执行删除或禁用操作。
结论:建议立即停止使用主账号执行用户管理类测试,转而采用临时账号 + 标签分类的组合策略。长期应由 Security SIG 推动建立统一的“安全测试用例开发规范”,从根本上防止此类问题再次发生。
相关链接:
专用临时测试账号 如何设置?
KG 中的 Tags 实体 是什么?
细说 Bingo Test Command 自动化部署测试环境 的过程。
当前这种删除用户的用例仅支持使用ID为2的用户(Administrator)去操作,使用临时用户去执行任务的需求背景是怎么样的,有必要的话这边可以考虑适配。还是说只希望识别出破坏环境的用例,提前做好规避。
1.当前这种删除用户的用例仅支持使用ID为2的用户(Administrator)去操作。
从截图中看到,测试所用的id=5,但权限是管理员,也成功执行了删除自己的操作。
2.使用临时用户去执行任务的需求背景是怎么样的?
临时用户这个概念是上面AI提到的,我也想知道具体是什么用户,如何临时?是指权限低的用户?那权限低的话,对于需要高权限的用例场景如何覆盖?
3.有必要的话这边可以考虑适配
具体如何适配?
4.还是说只希望识别出破坏环境的用例,提前做好规避?
“识别出破坏环境的用例,提前做好规避”仅仅是我提出的一种想法。对于iTestSmart使用的最佳实践是怎样?社区有没有建议?
不管什么用户(只要权限够)执行删除用例的操作,都会删除ID2之外的其他所有用户。临时用户相当于就是ID2之外的用户。需求背景是想了解是否有必要用默认管理员之外的账号去跑用例,有的话这边用例就得适配这种场景。
需求背景是想了解是否有必要用默认管理员之外的账号去跑用例,有的话这边用例就得适配这种场景。
— 听下来,跑iTestSmart设定是推荐用默认管理员账号吗?
在讨论是否用默认管理员之外的账号之前,先确认如果适配了默认管理员之外的账号,是否就能避免我关心的“执行危险测试用例,包括但不限于把自己/别人账号也删除的操作”?
如果能避免,可以适配; 如果不能避免,适配也没用。
— 另外,对于iTestSmart使用的最佳实践是怎样?是否应该用权限低的用户来执行测试用例?如果是,那权限低的话,对于需要高权限的用例场景如何覆盖?
是的,推荐使用默认账户,用自定义账户会有被删除账户的风险
默认账户是否会有删除其他账号的风险? 我认为有必要设定一个专用的测试账号,并且这个账号默认不执行破坏性的用例,除非用户主动选用该用例。
是的,如果跑我们提供的用例,默认账户是有删除其他账号的风险,并且我们暂无设定专用测试账号的计划,如果您那边有用自己的用例和自己的账号的需求,建议您在用例前置条件去定制创建自己的账户