如何将测试用例文本转换为带步骤拆分的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)
关键说明
- 步骤拆分逻辑:用正则表达式
r',|\.|(?i)and'匹配逗号、句号和大小写不敏感的"and"作为分隔符,确保所有指定分隔符都能触发拆分;拆分后清理每个步骤的前后空格并过滤空内容,避免无效行。 - 关联测试用例:遍历每个测试用例时,对拆分后的每个步骤单独生成一条记录,直接复用当前测试用例的
Test case / Scenario和Pre-requisites值,确保每个步骤都和所属测试用例绑定。 - 前置条件处理:如果你的前置条件是列表格式,用
', '.join()转成字符串,方便在DataFrame中存储;如果原始就是字符串,直接复用即可。
运行这段代码后,每个拆分后的步骤都会对应正确的测试用例名称,解决你之前遇到的列填充错误问题。
内容的提问来源于stack exchange,提问作者jainmiah Shaik
相关产品推荐
相关产品推荐

