python接口自动化(三)——从excel中获取数据

python接口自动化(三)——从excel中获取数据

1、按照之前的设计思路,我们需要从excel中去获取测试用例,所我们先封装一个获取数据的工具

from Data.with_config import *
from api_gj.with_excel import with_excel
from api_gj.with_json import open_json
class GetData:

    def __init__(self):
        self.read_excel = with_excel()

    #获取数据量(行数)
    def get_case_lines(self):
        return self.read_excel.get_lines()

    #获取是否运行
    def get_if_run(self, row):
        col = int(if_run())
        run_model = self.get_case_cell(row, col)
        if run_model == 'Y':
            return run_model
        else:
            return None

    #获取是否携带header
    def get_if_header(self, row):
        col = int(get_data())
        header = self.get_case_cell(row, col)
        if header != 'None':
            return header
        else:
            return None

    #判断请求方式
    def get_request_methed(self, row):
        col = int(run_way())
        methed = self.get_case_cell(row, col)
        return methed

    #获取url
    def get_request_url(self, row):
        col = int(get_url())
        url = self.get_case_cell(row, col)
        return url

    #获取请求数据
    def get_request_data(self, row):
        col = int(get_data())
        data = self.get_case_cell(row, col)
        return data

    #通过关键字拿到json数据
    def get_json_data(self, row):
        opera_json = open_json('aaaa.json')
        data = self.get_request_data(row)
        if data == 'None':
            request_data = None
        else:
            request_data = opera_json.get_data(data)
        return request_data

    #获取预期结果
    def get_expcet_reult(self, row):
        col = int(get_expect())
        request_reult = self.get_case_cell(row, col)
        if request_reult == 'None':
            return None
        else:
            return request_reult

    #获取某一单元格的内容
    def get_case_cell(self, row, col):
        return self.read_excel.get_cell_data(row, col)

    #获取数据字典
    def get_data_dict(self):
        return self.read_excel.to_dict()

2、由于excel中表头中的字段较多,且是固定的,所以传入获取数据的时候传入的列的参数可以做一个转换:

#coding:utf-8

class global_var:
    #case_id
    Id = '0'
    name = '1'
    url = '2'
    run = '3'
    request_way = '4'
    header = '5'
    case_depend = '6'
    data_depend = '7'
    field_depend = '8'
    data ='9'
    expect = '10'
    result = '11'

#获取case_id
def get_id():
    return global_var.Id

#获取url
def get_url():
    return global_var.url

#获取是否运行
def if_run():
    return global_var.run

#获取request_way(运行方式)
def run_way():
    return global_var.request_way

#获取header
def get_header():
    return global_var.header

#获取case_depend
def case_depend():
    return global_var.case_depend

#获取data_depend
def data_depend():
    return global_var.data_depend

#获取field_depend
def field_depend():
    return global_var.field_depend

#获取data
def get_data():
    return global_var.data

#获取expect(预期结果)
def get_expect():
    return global_var.expect

#获取result(返回结果)
def get_result():
    return global_var.result

  将这两部分代码合起来看就容易懂很多,主要是为了便捷传入对应的‘’列数‘’可以获取到对应的字段

原文地址:https://www.cnblogs.com/fccyccf/p/13745685.html