使用不同的testnam生成报告

2024-10-01 17:37:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在生成一个包含7个标题的报表,并将test name作为pdf文件的第一个值,我将一个测试名硬编码为“report1”。下面是我的代码

testname = "report1"
try:
     report(testname,arg2,arg3,arg4,arg5,arg6,arg7)
except Exception:
     print "Error during reporting.Check the input parameters"

def report(self,testname,arg2,arg3,arg4,arg5,arg6,arg7):
    for name in self.testname:
        "report runs here"

报告如下所示

TestName Cvalue  RValue  Lower  Higher  Measured   Result
report1  1500    50      100    10000   845        pass

我需要再次运行应用程序以获取第二个测试名为“report2”的报告。我必须更改testname,这样每次运行testname都必须将数字增加1,并显示“report2”。请建议


Tags: nameselfreport标题报表报告arg3arg2
2条回答

为了实现这个特性,您必须将current_report_number存储在某个地方。您可以使用python pickle模块来持久化current_report_number

你可以参考这个代码段

import pickle


try:
    report_id = pickle.load(open("config.dat"))
except IOError:
    #First run, config file does n't exist
    report_id = 0
report_id += 1
print report_id


# REPORT GEN START

# REPORT GEN END

#persist current report id
pickle.dump(report_id, open("config.dat", "w"))

您需要将“next report number”存储在某个位置,以使它在脚本运行之间保持不变

简单而愚蠢的方法是每次扫描报表目录,然后根据现有报表的最大数量选择下一个报表名称

例如,如果您已经有:

my_reports/
    report1
    report2

下一个名称应该是report3

一个简单的代码片段:

import os
import re

def get_next_report_name(report_dir):
    """Returns next report file name."""
    max_number = 0
    for file_name in os.listdir(report_dir):
        match = re.match(r'^report(\d+)$', file_name)
        if match:
            max_number = max(max_number, int(match.group(1)))
    return 'report{0}'.format(max_number + 1)

report_dir = 'INSERT YOUR REPORT DIR HERE'
testname = get_next_report_name(report_dir)

请注意,此算法不可伸缩,因为文件越多,查找下一个数字所需的时间就越长。在现实生活中,你应该发明一些更有效率的东西

相关问题 更多 >

    热门问题