request_method.py 2.72 KB
Newer Older
antares committed
1 2 3
# -*-coding:utf-8 -*- #
# ---------------------------------------------------------------------------
# ProjectName:   test62
antares committed
4
# FileName:      request_method.py
antares committed
5 6 7 8 9 10 11
# Author:       lao_zhao
# Datetime:     2024/9/4 15:35
# Description:
# 
# ---------------------------------------------------------------------------
import requests

antares committed
12
from apiAutoTestV3.common.basic_read_ini import ReadIni
antares committed
13 14 15 16 17 18


class RequestMethod:
    def __init__(self):
        """关联登录成功的token"""
        login_url = ReadIni().get_host("bpm_host") + "/auth"
antares committed
19 20 21
        login_data = {"username": "admin", "password": "bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQ"
                                                      "qmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerV"
                                                      "lYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ="}
antares committed
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
        self.bpm_session = requests.sessions.Session()
        res = self.bpm_session.post(url=login_url, json=login_data)
        token = res.json().get("token")
        self.bpm_session.headers["Authorization"] = f"Bearer {token}"

    def request_all(self, req_method, req_url, req_mime, case_data):
        """
        封装公共的请求方法
        :param req_method:请求方法
        :param req_url:请求的url
        :param req_mime:媒体类型
        :param case_data:用例数据
        :return:Response type
        """
        if req_mime == "application/json" or req_mime == "json":
            return self.bpm_session.request(method=req_method, url=req_url, json=case_data)

        elif req_mime == "application/x-www-form-urlencoded" or req_mime == "form":
            # 除了上传文件和json类型在请求体中传参以外,其他类型的数据全部使用data关键字传参。
            return self.bpm_session.request(method=req_method, url=req_url, data=case_data)

        elif req_mime == "multipart/form-data" or req_mime == "form-data":
            return self.bpm_session.request(method=req_method, url=req_url, files=case_data)

        elif req_mime == "query" or req_mime == "params":
            return self.bpm_session.request(method=req_method, url=req_url, params=case_data)

        elif req_mime is None:
            return self.bpm_session.request(method=req_method, url=req_url)

        # 判断媒体类型是否为query|json或者为json|query, 表示请求体和地址栏同时传参
antares committed
53
        elif req_mime == "query|json" or req_mime == "json|query":
antares committed
54
            # requests是支持地址栏和请求体同时传参的。地址栏使用params传参,请求体根据不同的媒体类型选择不同的关键字传参。
antares committed
55
            return self.bpm_session.request(method=req_method, url=req_url, params=case_data["query"], json=case_data["body"])