python设计一个接口自动化测试框架

设计接口自动化测试框架

1-1测试点:接口地址,请求方式,请求数据,预期结果,header,数据依赖。

1-2操作excel,安装xlrd ,xlwt 具体想查看如何操作Excel表格https://www.cnblogs.com/zhoujie/p/python18.html

  import xlrd
 import xlwt
 data = xlrd.open_workbook('../dataconfig/interface.xlsx')
 tables = data.sheet_by_index(0)
 tables_1 = data.sheet_by_name('interface')
 print(tables.nrows)

 print(tables.cell_value(2,4));print(tables.cell(2,5).value)

1-3操作json 做数据时注意json不支持单引号,只支持双引号 正确获取json 某个数据

class Opertion_json:
def __init__(self, filename, id):
self.filename = filename
self.id = id
self.data = self.read_json()
def read_json(self):
with open(self.filename) as f:
data = json.load(f)
return data
def get_json(self):
return self.data[self.id]
if __name__ == '__main__':
filename = '../dataconfig/login.json'
data_id = 'login'
opjson = Opertion_json(filename, data_id)
print(opjson.get_json())
 

1-4获取端口数据

__author__ = '17872'
#codin = utf-8
# 从excel表格中获取封装数据
import sys
from sys import path
path.append('C:\\Users\\17872\\PycharmProjects\\untitled')
from Test_excel import OperationExcel
#必须使用import cols,否则17行不能直接调用cols,不能使用from cols import *
import cols
from Test_Json import Opertion_json
class GetData:
def __init__(self):
self.oper_excel = OperationExcel()
#获取Excel行数,就是我们的case个数
def get_case_lines(self):
return self.oper_excel.get_lines()
#获取是否执行
def get_is_run(self, row):
flag =None
col = cols.get_run()
run_mode = self.oper_excel.get_cell_value(row, col)
if run_mode == "yes":
flag = True
else:
flag = False
return flag
#是否携带header
def is_header(self, row):
flag = None
col =cols.get_header()
headler = self.oper_excel.get_cell_value(row, col)
if headler == 'yes':
return 'header'
else:
return None
#获取请求方式
def get_request_way(self, row):
col = cols.get_request_way()
request_way = self.oper_excel.get_cell_value(row, col)
return request_way
#获取URL
def get_url(self, row):
col = cols.get_url()
url = self.oper_excel.get_cell_value(row, col)
return url
#获取请求数据
def get_request_data(self, row):
col = cols.get_data()
data = self.oper_excel.get_cell_value(row, col)
if data == '':
return None
else:
return data
#通过获取关键字拿到data数据
def get_data_for_json(self, row):
filename = '../dataconfig/login.json'
oper_json = Opertion_json(filename, self.get_request_data(row))
request_data = oper_json.get_json()
return request_data
#获取预期结果
def get_expect_data(self, row):
col = cols.get_expect()
expect_data = self.oper_excel.get_cell_value(row, col)
if expect_data =='':
return None
return expect_data






 

猜你喜欢

转载自www.cnblogs.com/hyq-1/p/9094358.html