【笔记】unittest -- pytest接口实战例子

接口请求

请求方式:post、get、delete、put
请求参数:键值对、JSON格式、文件格式

实现一个简单的接口请求:

import requests

# 发送get请求Ctrl+左键
url = 'http://api.weixin.qq.com/agp-bin/token'
# get请求的参数是url的?后面的数据为get请求的参数
data = {
    "grant_type":"client_credenttial",
    "appid":"",
    "secret":""

}
rep = requests.get(url=url, param=data)
# 打印JSON格式
print(rep.json())
# 从get请求中获取token值
access_token = rep.json()['access_token']


# 发送一个post请求
# data和JSON只需传一个就可以了

# url = "https://api.weixin.qq.com/cpi-bin/tags/update/access token=ACCESS TOKEN" # 未拼接token值前的样子

# 将获取到token变量access_token拼接成完整的url
url = "https://api.weixin.qq.com/cpi-bin/tags/update/access token=" + access_token + "" 
data = {"tag":"{'id': '134', 'name': 'holy'}"}
rep = requests.post(url,json=data)
print(rep.json())

unittest、pytest用例管理框架:

前提安装pytest:pip install pytest
清华大学镜像源:

pip install --index https://mirrors.ustc.edu.cn/pypi/web/simple/ pytest

pytest默认规则:

1.py文件必须以test开头或者_test结尾。

2.类名必须以Tes开头。

3.测试用例必须以test_开头。

注意:
get请求通过param传递参数

post请求通过JSON或者data传参,他们的区别是什么?

data

  • 数据报文:dict字典类型,那么默认情况下请求头application/x-www-form,以form表单的方式传参,格式:a=1&b=2&c=3

  • 数据报文:str类型,那么默认情况下:text/plan(如果是字典格式需要转换成str格式传参)

​json

  • 数据报文:不管dict还是str类型,默认都是application/json, 格式:{“a”: “1”, “b”: “2”,“c”: “3”}

json.dumps(data) 序列化 把字典格式的数据转换成str格式
json.loads(data) 反序列化 把str装换成字典格式

总结:
data只能够传简单的只有键值对的dict或者是str格式。json一般只能传dict格式(简单、复杂、嵌套的都可以)

import requests
import pytest
import json


class TsetSendRequests:

    # 类变量:通过类名访问
    access_token = ""

    def test_get_token(self):
        # 发送get请求Ctrl+左键
        url = 'http://api.weixin.qq.com/agp-bin/token'
        # get请求的参数是url的?后面的数据为get请求的参数
        data = {
            "grant_type":"client_credenttial",
            "appid":"",
            "secret":""
        }
        rep = requests.get(url=url, param=data)
        # 打印JSON格式
        print(rep.json())
        # get请求中返回一个token值
        TsetSendRequests.access_token = rep.json()['access_token']

    def test_edit_flag(self):
        # 发送一个post请求
        # data和JSON只需传一个就可以了
        # url = "https://api.weixin.qq.com/cpi-bin/tags/update/access token=ACCESS TOKEN" # 未拼接token值前的样子
        
        url = "https://api.weixin.qq.com/cpi-bin/tags/update/access token=" + TsetSendRequests.access_token + "" # 拼接后的url
        data = {"tag":"{'id': '134', 'name': 'holy'}"}
        rep = requests.post(url, json=data)  # 返回的是自定格式时
        # rep = requests.post(url, data=json.dump(data))  # json格式使用data传参时
        print(rep.json())

        
if __name__ == '__main__':
    pytest.main(['-vs'])        # -vs 可以将类中的print的内容打印出来
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值