要根据测试结果统计测试次数、成功率并记录失败原因,并将这些数据写入Excel表格,可以使用Python的pandas
库来处理数据和openpyxl
库来写入Excel。假设您已经有一个包含测试结果的列表,每个元素是一个字典,包含test_name
(测试名称)、result
(测试结果,True表示成功,False表示失败)和failure_reason
(失败原因,仅在结果为False时提供)。以下是一个示例:
python
import pandas as pd
from openpyxl import Workbook
# 假设您的测试结果列表如下:
test_results = [
{"test_name": "Test_1", "result": True},
{"test_name": "Test_2", "result": False, "failure_reason": "Timeout Error"},
{"test_name": "Test_3", "result": True},
# 更多测试结果...
]
# 将测试结果列表转换为DataFrame
df = pd.DataFrame(test_results)
# 统计测试次数、成功率
total_tests = len(df)
success_count = df[df["result"]].shape[0]
success_rate = success_count / total_tests * 100
# 记录失败原因
failure_reasons = df[df["result"] == False]["failure_reason"].tolist()
# 将统计结果添加到DataFrame
df_summary = pd.DataFrame({
"Total Tests": [total_tests],
"Success Count": [success_count],
"Success Rate": [success_rate],
"Failure Reasons": [failure_reasons]
}, index=["Summary"])
# 将所有数据合并到一个DataFrame
full_df = pd.concat([df, df_summary], ignore_index=False)
# 写入Excel文件
with pd.ExcelWriter("test_report.xlsx", engine="openpyxl") as writer:
full_df.to_excel(writer, sheet_name="Test Results", index=False)
# 保存并关闭工作簿
workbook = writer.book
workbook.save()
在这个示例中:
- 首先,我们创建一个包含测试结果的DataFrame。
- 然后,计算总测试次数、成功次数和成功率,并将这些统计信息放入一个新的DataFrame(
df_summary
)。 - 将原始测试结果和统计信息合并到一个完整的DataFrame(
full_df
)。 - 最后,使用
pd.ExcelWriter
将full_df
写入名为"test_report.xlsx"的Excel文件,其中包含一个名为"Test Results"的工作表。
请根据实际的测试结果数据结构调整上述代码。注意,此示例中失败原因以列表形式存储在一个单元格中,如果需要将每个失败原因单独写入一行,可以稍作修改。