RobotFramework环境配置二十二:创建报告(CSV文件)

创建报告(CSV文件)

项目结束:Suite Teardown
主要目的:创建一份清晰的CSV报告
源代码:report.py

RobotFramework环境配置二十二:创建报告(CSV文件)_第1张图片

一、项目结束:Suite Teardown

在项目结束时,创建报告。

RobotFramework环境配置二十二:创建报告(CSV文件)_第2张图片

二、数据源(测试结果)

Create Report | %{G_TOTAL_RESULT}

数据源:%{G_TOTAL_RESULT} 在 Common_Test_Teardwon 中记录。

RobotFramework环境配置二十二:创建报告(CSV文件)_第3张图片
${TEST_NAME}:RIDE 自带变量,用例名
${TEST_STATUS}:RIDE 自带变量,用例状态(PASS 或者 FAIL)
${TEST MESSAGE}:RIDE 自带变量,用例报错信息

RobotFramework环境配置二十二:创建报告(CSV文件)_第4张图片

三、report.py 源代码

# -*- encoding = cp936 -*-
# Author: Allan
# Version: 1.0
# Data: 2017-5-3
import os, sys
import csv

class report():
    def __init__(self):
        #Current Log Path:
        self.curr_dir = 'f:\\robotframework\\logs\\current'

    def Read_From_File(self, filename):
        # Read data from the given file
        try:
            f = open(filename)
            data = f.read()
        except Exception, e:
            print str(e)
        finally:
            f.close()

        return data

    def Write_To_CSV_File(self, filename, *data):
        # Write the values to the CSV file.
        file = os.path.join(self.curr_dir, filename) # Default File Path

        reload(sys)
        sys.setdefaultencoding('cp936') 

        with open(file, 'wb') as csvfile:
            spamwriter = csv.writer(csvfile, dialect='excel')
            spamwriter.writerow(['Test Result'])
            spamwriter.writerow(['Case', 'Status', 'Error Message'])
            for row in data:
                for col in row:
                    spamwriter.writerow(col)
        csvfile.close()

    def Reorganize_Data(self, data):
        # Reorganize data for writing them to CSV file
        allList = []
        reorganized = data.split('|')
        for row in reorganized:
            allList.append(row.split(':'))
        return allList

    def Create_Report(self, filename):
        # Create CSV Report
        file = os.path.join(self.curr_dir, 'report.csv') # Default File Path
        lines = self.Read_From_File(filename)
        data = self.Reorganize_Data(lines)
        self.Write_To_CSV_File(file, data)

你可能感兴趣的:(Robotframework)