接口自动化:requests用法;header、cookie的处理

本文介绍了使用Python的requests库进行接口自动化测试,包括GET和POST请求的使用,参数传递,设置header和Cookie,以及断言方法。重点讲述了如何处理header和Cookie,以确保接口测试的有效性。

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

#学习打卡第4天

今天学习主题:接口自动化(python+pytest+requests)

学习目标:结合项目写出自动化接口脚本

学习阶段:

1、环境搭建+第三方库安装-✅

2、用例编写框架-进行中

---

一、requests

标准Http协议支持六种请求方法,即:

1、GET

2、POST

3、PUT

4、Delete

5、HEAD:HEAD和GET本质是一样的,区别在于HEAD不含有呈现数据,而仅仅是HTTP头信息 

6、Options:用于获取当前URL所支持的方法。若请求成功,则它会在HTTP头中包含一个名为“Allow”的头,值是所支持的方法,如“GET, POST”。

基本用法:

requests.get("url",params=)  #向URL发送get请求,并附带参数

requests.post("url",params=)  #向URL发送post请求,并附带参数

requests.status_code  #获取状态码

requests.text

requests.context

requests.json

发送get请求,参数在url上,通过params传输

def test_query(self):

        #参数

        payload ={

        "level" = 1

        "name" = "Jack"

        #发送请求

         r = requests.get("https://httpbin.org/get",params=payload)

        #打印信息

        print(r.text)

        #断言

        assert r.status_code == 200

发送post请求,参数在form表单里,通过data传输

def test_post(self):

        #参数

        payload ={

        "level" = 1

        "name" = "Jack"

        #发送请求

         r = requests.post("https://httpbin.org/post",data=payload)

        #打印信息

        print(r.text)

        #断言

        assert r.status_code == 200

# 构造header数据请求

def test_head(self):
    r = requests.get("https://httpbin.org/get", headers={"h": "header demo"})
    print(r.status_code)
    print(r.text)
    print(r.json())
    assert r.status_code == 200
    assert r.json()["headers"]["H"] == "header demo"

json断言

方法一:assert r.json["xxx"]["xxx"]="xxx"

方法二:安装jsonpath库,assert jsonpath(r.json(), '$..name')[0]=='xxx' 

hamcrest断言

适合用于更加复杂的断言

assert_that(r.json())['xxx']['xxx'][0]['xxx'],equal_to('xxx')

二、header、Cookie处理

1、Cookie使用场景

  • 在接口测试过程中,很多情况下,需要发送的请求附带cookies,才会得到正常的响应的结果。所以使用python+requests进行接口自动化测试也是同理,需要在构造接口测试用例时加入cookie。

2、传递Cookie的两种方式

  • 通过请求头信息传递
  • 通过请求的关键字参数cookies传递

三、认证体系

1、基本概念:

 2、实战步骤

总体思路:

  • 使用charles抓包查看此类请求
  • 在自动化测试的过程中,可以使用auth参数传递认证信息
  1. 导包:from requests.auth import HTTPBasicAuth
  2. 请求url时,带上auth参数:auth=HTTPBasicAuth("xxx","xxx")

企业微信实战

1、封装企业成员增删改查

2、封装企业部门增删改查

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值