接口测试框架----数据分离

data.xls:放置测试用例数据

requestData.json:放置测试请求参数

excel_data.py:读取文件得行与列

operationJson.py:读取json文件得内容

operationExcel.py:读取excel文件中得内容

public.py:放置公共得方法

1.创建data.xls文件。(涉及到对文件数据的修改后缀名.xls)

 2.创建requestData.json将请求的数据放在该文件中

 

3.excel_data.py读取文件得行与列

 

class ExcelVariable:
caseID = 0
#请求地址的列
url = 2
#请求参数的列
request_data = 3
#期望结果的列
expect = 4
#实际结果的列
result = 5
def getCaseID():
return ExcelVariable.caseID

def getUrl():
return ExcelVariable.url

def getRequestData():
return ExcelVariable.request_data

def getExpect():
return ExcelVariable.expect

def getResult():
return ExcelVariable.result

4.operationExcel.py:读取excel文件中得内容

import  xlrd
from xlutils.copy import copy
from utils.public import *
from utils.excel_data import *

class OperationExcel:
def getExcel(self):
'''找到excel文件'''
db = xlrd.open_workbook(data_dir('data','data.xls'))
#操作excel中第几个sheet文件
sheet = db.sheet_by_index(0)
return sheet
def get_rows(self):
'''获取excel的行数'''
return self.getExcel().nrows

def get_row_cel(self,row,col):
'''获取单元格的内容'''
return self.getExcel().cell_value(row,col)

def getCaseID(self,row):
'''获取测试ID'''
return self.get_row_cel(row,getCaseID())

def get_url(self,row):
'''获取请求地址'''
return self.get_row_cel(row,getUrl())

def get_request_data(self,row):
'''获取请求参数'''
return self.get_row_cel(row,getRequestData())

def getExpect(self,row):
'''获取期望结果'''
return self.get_row_cel(row,getExpect())

def getResult(self):
'''获取实际结果'''
return self.get_row_cel(row,getResult())
oprea = OperationExcel()
print(oprea.get_request_data(1))

5.public.py:放置公共得方法

import os
def data_dir(data='data',filename=None):
'''
获取文件的位置
:param data: 文件夹名
:param filename: 具体文件名
:return:
'''
return os.path.join(os.path.dirname(os.path.dirname(__file__)),data,filename)

6.operationJson.py:读取json文件得内容

 

import json
from utils.public import *

class OperationJson:
def getReadJson(self):
'''打开json文件'''
with open(data_dir(filename='requestData.json'),encoding='utf-8') as fp:
#读取json文件中的内容
data = json.load(fp)
return data

def get_json_data(self,keyword):
'''通过key值获得value'''
return self.getReadJson()[keyword]




 

posted @ 2019-03-19 17:19  燕鸻  阅读(651)  评论(0)    收藏  举报