RPA.Tables能否实现与PrettyTable一致的表格输出展示效果?
实现方案
方案1:复用Python PrettyTable逻辑(推荐,和原有Python实现逻辑一致)
第一步:编写Python自定义关键字文件prettytable_utils.py,代码如下:
from prettytable import PrettyTable from robot.api import logger def generate_prettytable(headers, rows): table = PrettyTable(field_names=headers) for row in rows: table.add_row(row) table_str = str(table) logger.info(table_str) return table_str
第二步:在Robot Framework脚本中导入并调用:
*** Settings *** Library prettytable_utils.py *** Test Cases *** 生成运行结果表格 @{table_headers} Create List 用例名称 运行结果 耗时 @{row1} Create List 登录校验 PASS 120ms @{row2} Create List 数据上传 FAIL 350ms @{table_rows} Create List ${row1} ${row2} ${output_table} Generate Prettytable ${table_headers} ${table_rows} Log 运行结果表格:\n${output_table}
方案2:使用RPA.Tables库原生实现
原有写法错误原因是传入的嵌套字典不符合Create Table的入参格式,正确用法如下:
*** Settings *** Library RPA.Tables *** Test Cases *** RPA.Tables生成表格 &{row1} Create Dictionary 用例名称=登录校验 运行结果=PASS 耗时=120ms &{row2} Create Dictionary 用例名称=数据上传 运行结果=FAIL 耗时=350ms @{table_data} Create List ${row1} ${row2} ${table_obj} Create Table ${table_data} ${table_str} Table To String ${table_obj} Log ${table_str}
方案3:手动拼接Markdown格式表格
如果需要适配Markdown格式的输出报告,可直接拼接字符串实现:
*** Test Cases *** 生成Markdown表格 @{headers} Create List 用例名称 运行结果 耗时 ${md_table} Set Variable |${"|".join(${headers})}|\n|${"---|".join([""]*(${len(headers)}+1))}\n @{row1} Create List 登录校验 PASS 120ms ${md_table} Catenate ${md_table} |${"|".join(${row1})}|\n Log ${md_table}
内容的提问来源于stack exchange,提问作者HKL
相关产品推荐
相关产品推荐

