unittest实现上传图片接口自动化

一.准备测试数据1.文件目录2.准备测试用例命名为api_case.xlsx,放在TestDatas目录里title:用例名称method:请求方式url:接口地址request_data:参数files:文件,这里写了文件名,用字符串拼接进行传参expected:返回结果(在返回结果是多项时,通过列表循环进行对比,再进行断言)3.准备测试图片二.封装需要用到的文件Commom文件夹1.handle_config读取ini配置文件from configparser imp
摘要由CSDN通过智能技术生成

一.准备测试数据

1.文件目录
在这里插入图片描述

2.准备测试用例
在这里插入图片描述
命名为api_case.xlsx,放在TestDatas目录里

title:用例名称
method:请求方式
url:接口地址
request_data:参数
files:文件,这里写了文件名,用字符串拼接进行传参
expected:返回结果(在返回结果是多项时,通过列表循环进行对比,再进行断言)

3.准备测试图片
在这里插入图片描述

二.封装需要用到的文件

Commom文件夹

1.handle_config

读取ini配置文件

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.handle_excel
读取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()

3.handle_path
配置文件路径

import os

#获取项目的路径,向上两层
base_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
print(base_dir)

#测试用例路径
cases_dir = os.path.join(base_dir,'TestCases')
#测试数据路径
datas_dir = os.path.join(base_dir,'TestDatas')
#测试报告路径
reports_dir = os.path.join(base_dir,'Outputs\\reports')
#日志路径
logs_dir = os.path.join(base_dir,'Outputs\\logs')
#配置文件路径
conf_dir = os.path.join(base_dir,'Conf')

4.handle_requests
封装请求头/请求方法以及日志输出
因为这个没有必要的请求头,所以请求头为None

import requests
from Commom.my_logger import logger


def __handle_header():
    """
    处理请求头。加上项目当中必带的请求头。如果有token,加上token。
    :param token: token值
    :return: 处理之后headers字典
    """
    headers = {
   }

    return headers

def send_requests(method, url, data=None, token=None, files=None):
    # 得到请求头
    logger.info('发起一次HTTP请求')
    headers = {
   }
    logger.info('请求头为:{}'.format(headers))
    logger.info('请求方法为:{}'.format(method))
    logger.info('请求url为:{}'.format(url))
    logger.info('请求数据为:{}'.format(data))
    # 根据请求类型,调用请求方法

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值