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

如何将测试用例文本转换为带步骤拆分的Pandas DataFrame

解决方案

先明确测试用例数据结构(假设你是用列表字典存储测试用例,若原始数据格式不同,可调整数据输入部分),下面是修正后的代码,能确保每个拆分后的步骤都关联对应的测试用例:

import pandas as pd
import re

# 假设你的两个SBI转账测试用例数据
test_cases = [
    {
        "Test case / Scenario": "成功完成IMPS转账至其他SBI账户",
        "Pre-requisites": ["已登录SBI手机银行APP", "账户余额充足", "收款方账户信息已保存"],
        "Steps Description": "进入转账页面,选择IMPS转账方式,选择已保存的收款方,输入转账金额,输入交易密码,确认转账信息,点击提交并等待成功提示"
    },
    {
        "Test case / Scenario": "尝试UPI转账至非SBI账户失败",
        "Pre-requisites": ["已登录SBI手机银行APP", "UPI功能已激活", "收款方UPI ID已输入"],
        "Steps Description": "进入转账页面,选择UPI转账方式,输入收款方UPI ID,输入超出单日限额的金额,点击下一步,验证失败后查看错误提示"
    }
]

# 定义步骤拆分函数:按逗号、句号、and拆分,清理空内容和多余空格
def split_steps(step_text):
    # 用正则匹配逗号、句号、and(不区分大小写)作为分隔符
    split_pattern = re.compile(r',|\.|(?i)and')
    steps = split_pattern.split(step_text)
    # 清理每个步骤的前后空格,过滤空字符串
    cleaned_steps = [step.strip() for step in steps if step.strip()]
    return cleaned_steps

# 展开测试用例:每个步骤对应一行,保留所属测试用例和前置条件
expanded_data = []
for case in test_cases:
    steps = split_steps(case["Steps Description"])
    for step in steps:
        expanded_data.append({
            "Test case / Scenario": case["Test case / Scenario"],
            "Pre-requisites": ', '.join(case["Pre-requisites"]),  # 转成字符串方便存储
            "Steps Description": step
        })

# 生成DataFrame
df = pd.DataFrame(expanded_data)
print(df)

关键说明

  1. 步骤拆分逻辑:用正则表达式r',|\.|(?i)and'匹配逗号、句号和大小写不敏感的"and"作为分隔符,确保所有指定分隔符都能触发拆分;拆分后清理每个步骤的前后空格并过滤空内容,避免无效行。
  2. 关联测试用例:遍历每个测试用例时,对拆分后的每个步骤单独生成一条记录,直接复用当前测试用例的Test case / Scenario和Pre-requisites值,确保每个步骤都和所属测试用例绑定。
  3. 前置条件处理:如果你的前置条件是列表格式,用', '.join()转成字符串,方便在DataFrame中存储;如果原始就是字符串,直接复用即可。

运行这段代码后,每个拆分后的步骤都会对应正确的测试用例名称,解决你之前遇到的列填充错误问题。

内容的提问来源于stack exchange,提问作者jainmiah Shaik

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 14:52:11