如何在Robot Framework中从含文本和数字的字符串变量中提取整数
Robot Framework提取wmic输出内存数值的实现方法
有两种常用的稳定实现方案:
方案1:按行拆分提取(逻辑直观,适合输出格式稳定的场景)
你可以直接用Robot Framework内置String库的行拆分关键字处理输出:
- 第一步:调用你自定义的命令执行关键字,将wmic指令返回结果存入变量
${cmd_output} - 第二步:用
Split To Lines关键字将输出按换行符拆分为列表,表头WorkingSetSize为列表第0项,数值为第1项 - 第三步:用
Strip String清理数值行的多余空白、换行符,可按需转换为整数类型
示例代码:
*** Settings *** Library String *** Test Cases *** 获取应用内存占用 # 替换为你自己的命令执行关键字,拿到wmic输出 ${cmd_output} 你的命令执行关键字 wmic process where name="${executableName}" get WorkingSetSize # 按行拆分输出 ${output_lines} Split To Lines ${cmd_output} # 取第二行数值,清理首尾空白 ${mem_value_raw} Strip String ${output_lines}[1] # 转换为整数方便后续对比计算 ${mem_value} Convert To Integer ${mem_value_raw} Log 提取到的内存大小为 ${mem_value} 字节
方案2:正则匹配提取(容错性高,适合输出格式可能有波动的场景)
如果存在同名称多进程、输出带多余空行的情况,直接用正则匹配数字更稳妥:
*** Settings *** Library String *** Test Cases *** 正则提取内存数值 ${cmd_output} 你的命令执行关键字 wmic process where name="${executableName}" get WorkingSetSize # 匹配输出中所有连续数字序列,取第一个匹配结果即为内存数值 ${match_result} Get Regexp Matches ${cmd_output} \\d+ ${mem_value} Convert To Integer ${match_result}[0] Log 提取到的内存大小为 ${mem_value} 字节
内容的提问来源于stack exchange,提问作者Ali Alvi
相关产品推荐
相关产品推荐

