接口自动化测试 python+request+excel(五)

封装操作Excel方法,后续功能进行直接调用

 

#!/usr/bin/env python3
# -*-coding:utf-8-*-
# __author__: hunter

import xlrd


class HandleExcel:
    """封装操作Excel的方法"""

    def __init__(self, file='D:/hunter_/interfaceTest/interface/tool/demo2.xlsx', sheet_id=0):
        self.file = file
        self.sheet_id = sheet_id
        self.data = self.get_data()
        # 为了创建一个实例时就获得Excel的sheet对象,可以在构造器中调用get_data()
        # 因为类在实例化时就会自动调用构造器,这样创建一个实例时就会自动获得sheet对象了

    # 获取某一页sheet对象
    def get_data(self):
        data = xlrd.open_workbook(self.file)
        sheet = data.sheet_by_index(self.sheet_id)
        return sheet

    # 获取Excel数据行数
    def get_rows(self):
        rows = self.data.nrows

        return rows

    # 获取某个单元格写入数据
    def get_value(self, row, col):
        value = self.data.cell_value(row, col)
        return value

    # 向某个单元格写入数据
    def write_value(self):
        pass

# 封装Excel的列名常量
def get_caseseq():
    '''获取caseSeq'''
    caseSeq = 0
    return caseSeq


def get_apitype():
    apiType = 1
    return apiType


def get_apiseq():
    apiSeq = 2
    return apiSeq


def get_apiName():
    apiName = 3
    return apiName


def get_priority():
    priority = 4
    return priority


def get_url():
    url = 5
    return url


def get_mothod():
    mothod = 6
    return mothod


def get_header():
    header = 7
    return header


def get_purpose():
    purpose = 8
    return purpose


def get_params():
    params = 9
    return params


def get_expectvalue():
    expectvalue = 10
    return expectvalue


if __name__ == '__main__':
    test = HandleExcel()
    print(test.get_data())
    print(test.get_rows())
    print(test.get_value(0, 0))

 

Excel表格数据:

 

 

调用封装Excel的封装方法,进行循环遍历

#!/usr/bin/env python3
# -*-coding:utf-8-*-
# __author__: hunter

from conn.run_demo import RunMain
from interface.tool.handle_excel import *


class RunTestCase:
    def __init__(self):
        self.Runmain = RunMain()        # 实例化调用get/post请求基类
        self.data = HandleExcel()       # 实例化操作Excel文件类

    def go_run(self):
        rows_count = self.data.get_rows()                   # 获取Excel行数
        for i in range(1, rows_count):                      # 利用行数进行迭代处理每个接口
            url = self.data.get_value(i, get_url())         # 循环获取URL的值
            print(url)
            print('=====')
            method = self.data.get_value(i, get_mothod())   # 循环获取method的值
            data = self.data.get_value(i, get_params())     # 循环获取请求参数
            print(data)
            print('=====')
            is_run = self.data.get_value(i, get_priority()) # 获取是否运行,即判断Excel中priority是不是为“high"
            if is_run == 'high':
                res = self.Runmain.run_main(url, method, data)  # 调用主函数
                print(res)
                print('=====')


if __name__ == '__main__':
    run = RunTestCase()
    run.go_run()

运行:

 

 接下来就是将测试结果写入Excel中,是否与预期结果一直

 

posted on 2019-09-24 15:23  逗芽  阅读(626)  评论(0编辑  收藏  举报

导航