如何在机器人框架中读取csv文件以进行数据验证

时间:2014-02-18 15:54:29

标签: csv selenium-webdriver robotframework

我想阅读CSV文件进行数据验证。用于读取CSV文件的任何库或关键字都可以。我正在使用Robot Framework with Ride。

3 个答案:

答案 0 :(得分:6)

您可以在python中轻松创建自己的库,以便读取和编写csv文件。这样做可以让您创建所需的任何关键字。您可以简单地读取并返回所有数据,或者使用一个返回行数,列数或其他任何内容的关键字。

读取csv文件的示例关键字:

将以下定义保存在名为csvLibrary.py的文件中。它创建一个关键字库,其中包含一个名为“read csv file”的关键字。 Pass是csv文件的路径,它将数据作为列表列表返回。

import csv
class csvLibrary(object):

    def read_csv_file(self, filename):
        '''This creates a keyword named "Read CSV File"

        This keyword takes one argument, which is a path to a .csv file. It
        returns a list of rows, with each row being a list of the data in 
        each column.
        '''
        data = []
        with open(filename, 'rb') as csvfile:
            reader = csv.reader(csvfile)
            for row in reader:
                data.append(row)
        return data

示例测试:

此测试将使用csvLibrary打开.csv文件,读取它,并将结果作为列表列表返回:

*** Settings ***
| Library | csvLibrary.py

*** Test cases *** 
| Reading a csv file
| | ${data}= | read csv file | test.csv
| | log | ${data}

答案 1 :(得分:0)

我做了类似的事情:

${content} | Get File | ${dir}/Newfolder2/random.xml Should Contain | ${content} | ${text}

其中: $ {content},$ {dir}和$ {text}只是一些变量(名称应该是不言自明的)和 Get File and Should Contain是标准关键字(对于Get File,你必须导入OperatingSystem lib)

答案 2 :(得分:0)

我会先修复你在py脚本中编写的for循环。我遇到了完全相同的问题,我必须在列表索引中调用子集的子集(即data [0] [0]而不是data [0])。我像这样写了我的for循环:

data = []
with open(filename, 'rb') as csvfile:
     reader = csv.reader(csvfile, delimiter='<something here>')
     for row in reader:
        for i in row:
             data.append(i)
return data

如果你的csv文件来自excel,你可以使用参数:

reader = csv.reader(csvfile, delimiter=',', dialect='excel')

以及