Python接口测试—post和get重构

来自接口测试初学者的笔记,写的不对的地方大家多多指教哦

之前有介绍过封装get和post方法,这篇文章主要优化之前的内容

环境

  • PyCharm 2021.2.2
  • 使用美多商城的接口

思路

  • 创建公共类:class Request
  • 定义公共方法:request_api
  • 重构get方法
  • 重构post方法

重构后完整的代码为

# 重构get/post方法
class Request:

    # 定义公共方法,uri是接口具体地址
    def request_api(self, url, data=None, json=None, headers=None, cookies=None, method="get"):
        # 增加方法的参数,根据参数来验证get/post请求
        if method == "get":
            # get请求
            response = requests.get(url, data=data, json=json, headers=headers, cookies=cookies)
        elif method == "post":
            # post请求
            response = requests.post(url, data=data, json=json, headers=headers, cookies=cookies)
        # 获取结果响应内容,判断返回内容的格式
        code = response.status_code
        try:
            body = response.json()
        except Exception as e:
            body = response.text
        # 内容存到字典,并将字典返回
        res = dict()
        res["code"] = code
        res["body"] = body
        return res

    # 重构get方法
    # 定义方法和参数
    def get(self, url, **kwargs):
        # 调用公共方法
        return self.request_api(url, method="get", **kwargs)

    # 重构post方法
    # 定义方法和参数
    def post(self, url, **kwargs):
        # 调用公共方法
        return self.request_api(url, method="post", **kwargs)

测试

import requests
from utils.request_util import Request

request = Request()

def login_get():
    # 定义测试数据(uri是随机写的)
    url = "http://1.1.1.1:111/login/"
    data = {"username": "python", "password": "12345678"}
    # 使用重构后的post
    r = request.get(url, json=data)
    print(r)

def login_post():
    # 定义测试数据(uri是随机写的)
    url = "http://1.1.1.1:111/login/"
    data = {"username": "python", "password": "12345678"}
    # 使用重构后的post
    r = request.post(url, json=data)
    print(r)

if __name__ == '__main__':
    login()
    info()

Q:判断响应的内容格式?

A:由于响应的内容有可能是json和text格式的,所以在公共部分做检验的话,在最后实际调用的时候就不需要去判断格式了

Q: ** kwargs 什么意思?

A:传参个数,由于具体的传参内容是不确定的,所以这边用**kwargs代替参数,如果传参的内容有变化,那么直接在公共方法中的get和post请求方法的传参后面添加具体参数

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容