文件目录
第一步:准备测试数据/编写测试用例
测试数据
第二步:准备公共文件放在Common文件夹下
1.配置文件操作
handle_config文件
```python
from configparser import ConfigParser
import os
from Commom.handle_path import conf_dir
class HandleConfig(ConfigParser):
def __init__(self,file_path):
super().__init__()
self.read(file_path, encoding="utf-8")
file_path = os.path.join(conf_dir,'nmb.ini')
conf = HandleConfig(file_path)
print(conf.get('log','name'))
2.excel文件操作
handle_excel
"""
excel类,你的需求是实现是什么?
1、读取表头
2、读取数据 - 读取表头以外的所有数据。 - 返回值:列表,成员是每一行数据
初始化工作? 加载一个excel,打开一个表单。
"""
from openpyxl import load_workbook
import json
class HandleExcel:
def __init__(self,file_path,sheet_name):
self.wb = load_workbook(file_path)
self.sh = self.wb[sheet_name]
def __read_titles(self):
titles = []
for item in list(self.sh.rows)[0]: # 遍历第1行当中每一列
titles.append(item.value)
return titles
def read_all_datas(self):
all_datas = []
titles = self.__read_titles()
for item in list(self.sh.rows)[1:]: # 遍历数据行
values = []
for val in item: # 获取每一行的值
values.append(val.value)
res = dict(zip(titles, values)) # title和每一行数据,打包成字典
# 将请求数据从json字符串转换为字典对象
res['request_data'] = json.loads(res['request_data'])
all_datas.append(res)
return all_datas
def close_file(self):
self.wb.close()
if __name__ == '__main__':
import os
file_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), "login_cases.xlsx")
exc = HandleExcel(file_path,"login")
cases = exc.read_all_datas()
exc.close_file()
for case in cases:
print(case)
3.requests请求操作
handle_requests
"""
基于项目做定制化封装
1、鉴权:token
2、项目通用的请求头:
{"X-Lemonban-Media-Type": "lemonban.v2"}
3、请求体格式:application/json
"""
import requests
from Commom.my_logger import logger
def __handle_header(token=None):
"""
处理请求头。加上项目当中必带的请求头。如果有token,加上token。
:param token: token值
:return: 处理之后headers字典
"""
headers = {
"X-Lemonban-Media-Type": "lemonban.v2",
"Content-Type":"application/json"}
if token:
headers["Authorization"] = "Bearer {}".format(token)
return headers
#
def send_requests(method,url,data=None,token=None):
# 得到请求头
logger.info('发起一次HTTP请求')
headers = __handle_header(token)
logger.info('请求头为:{}'.format(headers))
logger.info('请求方法为:{}'.format(method))
logger.info('请求url为:{}'.format(url))
logger.info('请求数据为:{}'.format(data))
# 根据请求类型,调用请求方法
method