RobotFramework 接口测试-不定参数问题

在使用rf做接口测试时,我主要是通过excel来保存测试数据,模板如下:

第1列是用例名称简单说明,第2列为接口url,第3+n列是接口入参,最后二列为返回值status,和返回data中的参数

固定行列值的数据我们可以很方便通过指定行列值来获取,难点是,每个接口的入参个数不固定,怎样才能获取到入参数据呢?

我的思路是,先获取该sheet页中总列数n=6,则可以算出入参的下标为2至n-1-2=3,即[2,3],用一个字典存放入参数据。

我写了一个读取测试数据的公共关键字,如下:

RobotFramework 接口测试-不定参数问题_第1张图片

参数为文件路径,(如果excel文件放在项目代码文件目录下,则直接写excel名称即可),sheet页名称,需读取测试数据在sheet页中的行数

其中,第一行中getExcelColumnCount函数是通过自写库导入:

    ## 获取Excel列数
    def getExcelColumnCount(self, file_name, sheet_name):
        with closing(load_workbook(filename=file_name)) as wb:
            columns = wb.get_sheet_by_name(name = str(sheet_name)).max_column
            return columns

第5行,获取测试数据,将其存放在一个字典列表@{dict}中,List Read Excel函数是通过自写库导入:

	## 读取从某一行某一列开始的n个值
    def listReadExcel(self, file_name, sheet_name, cell_row,cell_col,n):
        with closing(load_workbook(filename=file_name, data_only=True)) as wb:
            ws = wb.get_sheet_by_name(str(sheet_name))
            cellValueList = []
            for i in range(int(n)):
                cellValue = ws.cell(row=int(cell_row),column=int(cell_col)+i).value
                cellValueList.append(cellValue)
            return cellValueList

第9-12行,将后面需要用到的参数设置为全局变量,方便调用

然后在测试用例步骤中调用该关键字,如下:

读取参数再单独写一个关键字,根据下标,从@{dict}中依次读取,这里需要注意的是,rf中的参数与excel中的参数位置需要一致,才能够读取到正确的参数值

RobotFramework 接口测试-不定参数问题_第2张图片

你可能感兴趣的:(robot,接口自动化测试,python)