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

如何使用Robot Framework交叉校验多个IP是否存在重复

Robot Framework 多IP地址交叉校验方案

原有方案失效原因

Should Not Match Regexp是BuiltIn库下的单字符串正则匹配关键字,仅支持传入1个待校验字符串、1个匹配规则,其余参数会被解析为报错提示、正则匹配标记等配置项,本身不具备多值交叉比对能力,传入多个IP变量时无法覆盖第3、第4个值的校验逻辑。

推荐实现方案

优先使用Robot Framework自带的Collections标准库实现,无额外依赖,逻辑简单可靠:

  • 测试套件配置段提前导入Collections库
  • 将所有待校验的IP变量存入同一个列表
  • 调用Lists Should Not Contain Duplicates关键字完成全量交叉校验,只要列表内存在重复值就会自动抛出错误,日志中会同步打印重复的具体值,支持自定义报错提示。

示例代码

*** Settings ***
Library    Collections

*** Variables ***
${Debug IP}        192.168.101.103
${Gateway IP}      191.168.104.102
${Subnet mask IP}  132.145.128.101
${NEW IP}          192.168.101.24

*** Test Cases ***
IP地址合法性校验
    @{all_ips}    Create List    ${Debug IP}    ${Gateway IP}    ${Subnet mask IP}    ${NEW IP}
    # 若存在IP前后带空格的场景,可加一步遍历去除首尾空格的逻辑
    Lists Should Not Contain Duplicates    ${all_ips}    msg=配置错误:检测到重复IP地址

自定义逻辑校验方案

如果需要定制更灵活的校验规则(比如排除特定IP、重复时输出更详细的位置信息),可以通过双层循环两两比对实现交叉校验:

*** Test Cases ***
自定义IP重复校验
    @{all_ips}    Create List    ${Debug IP}    ${Gateway IP}    ${Subnet mask IP}    ${NEW IP}
    ${total}    Get Length    ${all_ips}
    FOR    ${index1}    IN RANGE    ${total}
        ${ip1}    Get From List    ${all_ips}    ${index1}
        FOR    ${index2}    IN RANGE    ${index1 + 1}    ${total}
            ${ip2}    Get From List    ${all_ips}    ${index2}
            Run Keyword If    '${ip1}' == '${ip2}'    Fail    重复IP:${ip1},分别位于第${index1+1}、${index2+1}个配置项
        END
    END

内容的提问来源于stack exchange,提问作者Abhishek Kambalapalli

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 15:39:15