Python+requests+unittest+excel实现接口自动化测试框架

一、框架结构:

 工程目录

二、Case文件设计

三、基础包 base

3.1 封装get/post请求(runmethon.py)

复制代码
 1 import requests
 2 import json  3 class RunMethod:  4 def post_main(self,url,data,header=None):  5 res = None  6 if header !=None:  7 res = requests.post(url=url,data=data,headers=header)  8 else:  9 res = requests.post(url=url,data=data) 10 return res.json() 11 12 def get_main(self,url,data=None,header=None): 13 res = None 14 if header !=None: 15 res = requests.get(url=url,data=data,headers=header,verify=False) 16 else: 17 res = requests.get(url=url,data=data,verify=False) 18 return res.json() 19 20 def run_main(self,method,url,data=None,header=None): 21 res = None 22 if method == 'Post': 23 res = self.post_main(url,data,header) 24 else: 25 res = self.get_main(url,data,header) 26 return json.dumps(res,ensure_ascii=False,sort_keys=True,indent=2) 
复制代码

3.2 封装mock(mock.py)

复制代码
1 from mock import mock
2 #模拟mock 封装 3 def mock_test(mock_method,request_data,url,method,response_data): 4 mock_method = mock.Mock(return_value=response_data) 5 res = mock_method(url,method,request_data) 6 return res
复制代码

四、数据操作包 operation_data

4.1 获取excel单元格中的内容(get_data.py)  

复制代码
  1 #coding:utf-8
  2 from tool.operation_excel import OperationExcel  3 import data_config  4 from tool.operation_json import OperetionJson  5 from tool.connect_db import OperationMysql  6 class GetData:  7 def __init__(self):  8 self.opera_excel = OperationExcel()  9  10 #去获取excel行数,就是case的个数  11 def get_case_lines(self):  12 return self.opera_excel.get_lines()  13  14 #获取是否执行  15 def get_is_run(self,row):  16 flag = None  17 col = int(data_config.get_run())  18 run_model = self.opera_excel.get_cell_value(row,col)  19 if run_model == 'yes':  20 flag = True  21 else:  22 flag = False  23 return flag  24  25 #是否携带header  26 def is_header(self,row):  27 col = int(data_config.get_header())  28 header = self.opera_excel.get_cell_value(row,col)  29 if header != '':  30 return header  31 else:  32 return None  33  34 #获取请求方式  35 def get_request_method(self,row):  36 col = int(data_config.get_run_way())  37 request_method = self.opera_excel.get_cell_value(row,col)  38 return request_method  39  40 #获取url  41 def get_request_url(self,row):  42 col = int(data_config.get_url())  43 url = self.opera_excel.get_cell_value(row,col)  44 return url  45  46 #获取请求数据  47 def get_request_data(self,row):  48 col = int(data_config.get_data())  49 data = self.opera_excel.get_cell_value(row,col)  50 if data == '':  51 return None  52 return data  53  54 #通过获取关键字拿到data数据  55 def get_data_for_json(self,row):  56 opera_json = OperetionJson()  57 request_data = opera_json.get_data(self.get_request_data(row))  58 return request_data  59  60 #获取预期结果  61 def get_expcet_data(self,row):  62 col = int(data_config.get_expect())  63 expect = self.opera_excel.get_cell_value(row,col)  64 if expect == '':  65 return None  66 return expect  67  68 #通过sql获取预期结果  69 def get_expcet_data_for_mysql(self,row):  70 op_mysql = OperationMysql()  71 sql = self.get_expcet_data(row)  72 res = op_mysql.search_one(sql)  73 return res.decode('unicode-escape')  74  75 def write_result(self,row,value):  76 col = int(data_config.get_result())  77  self.opera_excel.write_value(row,col,value)  78  79 #获取依赖数据的key  80 def get_depend_key(self,row):  81 col = int(data_config.get_data_depend())  82 depent_key = self.opera_excel.get_cell_value(row,col)  83 if depent_key == "":  84 return None  85 else:  86 return depent_key  87  88 #判断是否有case依赖  89 def is_depend(self,row):  90 col = int(data_config.get_case_depend())  91 depend_case_id = self.opera_excel.get_cell_value(row,col)  92 if depend_case_id == "":  93 return None  94 

转载于:https://www.cnblogs.com/txx403341512/p/9354107.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值