python-requests库学习笔记01

本文分析了Requests库的请求函数,包括requests.request()和session.request()的用法,以及如何通过正则表达式和JsonPath进行接口关联,提供了一个实际测试类的示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Requests库以及底层方法调用逻辑

def get(url, params=None,**kwargs):
	url:接口地址
	params:参数
	**kwargs:可变长度的字典
def post(url, data=None,json=None,"*kwargs):
	url:接口地址
	data:参数(表单---X-www-form-urlencoded)
	json:参数(JSON---application/json)
		postman四种传参方式:
		1.form-data(既有表单也有文件上传) files
		2.x-www-form-urlencoded(纯表单) data
		3.raw(json:application/json)(传json格式的参数)json
		4.binary(application/octrent-stream):(二进制文件)datal

	**kwargs:可变长度的字典
def put(url,data=None,**kwargs):
	url:接口地址
	data:参数
def delete(url,**kwargs):
	url:接口地址
------------------------------------------------------------------------
上面的四个方法其实底层都是调用的request方法
requests.request("get",url,params=params,**kwargs)
-------------------------------------------------------------------------
requests.request()调用的是session.request方法
session.request(method=method, url=url,**kwargs)

def request{
    self,
    method, 		请求方式
    url,			请求路径
    params = None, 	params参数
    data = None,	data参数
    headers = None,请求头
    cookies = None, cookies信息
    files = None,	文件上传
    auth = None,	鉴权
    timeout = None,超时
    allow_redirects = True,重定向
    proxies = None,	设置代理
    hooks = None,	钩子
    stream - None,	文件下载
    verify = None,	证书验证
    certIone,		CA证书
    json = None,	json参数
	}:




requests.request()和session.request()的区别:前者的每个请求都是独立的,后者自动的关联所有请求的cookie信息。

Requests响应部分:

res.text 		返回字符串形式的结果
res.json() 		返回字典形式的结果
res.content()	返回字节类型的结果
res.status_code	返回状态码
res.reason		返回状态信息
res.cookie		返回cookie信息
res.encoding	返回编码格式
res.headers 	返回响应头
res.request.xxx	得到请求数据

Requests接口自动化测试实战

接口关联三个层次:
1.通过类变量保存中间变量实现接口关联。
2.通过单独的文件保存中间变量实现接口关联。
3.极限封装成零代码的方式实现接口关联。

接口关联两种方式:

(1)正则提取实现接口关联

re.seach() 通过正则匹配一个值,通过下标(1]取值,没有匹配到返回None.

re.findall() 通过正则匹配多个值,返回List,通过下标取值,没有匹配到返回None

(2)JsonPath提取实现接口关联

jsonpath.jsonpath()返回一个列表,通过下标取值,没有找到返回None.

import requests
import jsonpath as jsonpath


class TestApi:

    # 类变量
    access_token = ""
    username = "33828"
    password = "C4CA4238A0B923820DCC509A6F75849B"
    Token = "3A06C898-C41E-4635-A595-7EBCDFD420C0"

    def test_get_token(self):
        url = "http://192.168.5.218:8057/api/auth/Authorization/GetAccessToken"
        json_data = {
            "grant_type": "password",
            "username": TestApi.username,
            "password": TestApi.password
        }
        res = requests.post(url=url, json=json_data)
        lis = jsonpath.jsonpath(res.json(), '$.access_token')
        TestApi.access_token = res.json()["access_token"]

        print(res.status_code)
        print(res.json())
        print(lis[0])
        print(TestApi.access_token)

    def test_get_label(self):
        label_url = "http://192.168.5.218:8057/api/label/LabelProvider/GetLabelBatchExt"
        headers_data = {
            "Token": TestApi.access_token,
            "Content-Type": "application/json"
        }
        order_json = {
            "OrderIdlst": ["F33828240222000D"],
            "Format": 3,
            "Token": TestApi.Token,
            "UAccount": TestApi.username,
            "Password": TestApi.password
        }
        res = requests.post(url=label_url, headers=headers_data, json=order_json)
        print(res.json()["Data"])


if __name__ == '__main__':
    TestApi().test_get_token()
    TestApi().test_get_label()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值