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