Python自动化学习笔记(十二)接口自动化测试1.0

文件目录请添加图片描述

第一步:准备测试数据/编写测试用例

测试数据

在这里插入图片描述

第二步:准备公共文件放在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 
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值