python 接口自动化 excel参数化封装

1、定义config  文件

  里面定义全局用的参数, 比如下面用到的 excel 的地址信息。

config定义如下

# !/usr/bin/python3
# -*- coding: utf-8 -*-
import os

# 路径配置;项目的路径
BASE_PATH = os.path.dirname(
    os.path.dirname(os.path.abspath(__file__)))
# 项目对应的文件夹路径,拼接存放测试用例的路径
CASE_PATH = os.path.join(BASE_PATH, 'Testcase')#定义文件夹路径,遍历文件夹下的用例信息。
Log_PATH= os.path.join(BASE_PATH, 'log')#定义log 的生成路径
#定义EXCEl文件路径
path = r'D:\Workspace\BItestData\Testcase\api.xls'

 2、定义excel 的解析方式,注释部分的代码是单独获取某行某列的参数。

    导入config 配置的path 路径,获取到excel路径及文件名

   根据自己的excel 各列的要求定义相关列的获取方法。

# !/usr/bin/python3
# -*- coding: utf-8 -*-
import os
import xlrd
import Util.config as cf
class OpeExcel(object):
    def __init__(self, path):
        self.path = path
    # def __init__(self,file_name=None,sheet_id=None):
    #     if file_name:
    #         self.file_name = file_name
    #         self.sheet_id = sheet_id
    #     else:
    #         self.file_name = r'D:\Workspace\BItestData\Testcase\api.xls'
    #         self.sheet_id = 0
    #     self.data = self.get_data()
    # #获取sheets的内容
    # def get_data(self):
    #     data = xlrd.open_workbook(self.file_name)
    #     tables = data.sheets()[self.sheet_id]
    #     return tables
    # #获取单元格行数
    # def get_lines(self):
    #     tables = self.data
    #     return tables.nrows
    # #获取单元格数据 获取
    # def get_value(self,row,col):
    #     return self.data.cell_value(row,col)
    @property
    def getSheet(self):
        # 获取索引 获取excel 当前sheet
        xl = xlrd.open_workbook(self.path)
        sheet = xl.sheet_by_index(0)
        return sheet

    @property
    def getRows(self):
        # 获取行数
        row = self.getSheet.nrows
        return row

    @property
    def getCol(self):
        # 获取列数
        col = self.getSheet.ncols
        return col

    # 以下是分别获取每一列的数值
    #获取用例ID信息
    @property
    def getId(self):
        TestId = []
        for i in range(1, self.getRows):
            TestId.append(self.getSheet.cell_value(i, 0))
        return TestId

    # 获取用例描述信息
    @property
    def getDes(self):
        TestDes = []
        for i in range(1, self.getRows):
            TestDes.append(self.getSheet.cell_value(i, 1))
        return TestDes

    #获取URL地址信息
    @property
    def getUrl(self):
        TestUrl = []
        for i in range(1, self.getRows):
            TestUrl.append(self.getSheet.cell_value(i, 2))
        return TestUrl

    # 获取用例请求参数信息
    @property
    def getData(self):
        TestData = []
        for i in range(1, self.getRows):
            TestData.append(self.getSheet.cell_value(i, 4))
        return TestData

    # 获取请求方式信息
    @property
    def getMethod(self):
        TestMethod = []
        for i in range(1, self.getRows):
            TestMethod.append(self.getSheet.cell_value(i, 3))
        return TestMethod

    @property
    def getCode(self):
        TestCode = []
        for i in range(1, self.getRows):
            TestCode.append(self.getSheet.cell_value(i, 5))
        return TestCode

if __name__ == '__main__':
     opers = OpeExcel(cf.path)
     print(opers.getId) //用例ID
     print(opers.getDes)//用例的描述
     print(opers.getUrl)//请求地址
     print(opers.getMethod)//请求方式
     print(opers.getData)//请求的data数据

3、输出信息

4、 打印部分的信息封装成各请求list 信息 带入request 请求方式。


你可能感兴趣的:(测试)