requests实战--(用python实现接口测试)

2022/6/22 1:21:09

本文主要是介绍requests实战--(用python实现接口测试),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

requests是python的第三方库  我们用的时候 首先需要安装它:

pip install requests

安装之后 我们在python文件中用它的方法,首先需要导入

import requests

在requests中,可以对常用的Http请求方法发送请求

r=requests.get(url='https://www.baidu.com/')

含义:

r:表示的是返回Response(响应数据)的对象

requests:

第一个参数:method ,也就是Http的请求方法

第二个参数: url  ,请求地址

第三个参数:header ,请求头

第四个参数:json/data ,请求数据

# 测试平台的登录接口为例 通过抓包获取到请求方法 请求地址 请求参数 请求头(请求头也要带大括号)
r=requests.post(
    url="http://47.95.142.233:8000/login/auth/",
    json={"username":"13xxxxxx","password":"xxxxxx"},
    headers={"Content-Type":"application/json"}
)

print(r.status_code)
print(r.json())
print(json.dumps(r.json(),indent=True,ensure_ascii=False))      # json序列化 格式化的输出
print(r.json()["token"])

json和data 的区别:

json:数据格式就是json格式

data:

       1、表单

  2、如果数据格式是json的数据格式,但是我们要用data参数,那么就需要对参数进行序列化处理

当json类型时,如果使用data=,需要序列化处理:

1 r=requests.post(
2     url="http://47.95.142.233:8000/login/auth/",
3     data=json.dumps({"username":"13xxxxxx","password":"xxxxxx"}),
4     headers={"Content-Type":"application/json"}
5 )

requests基础方法:

import  requests
r=requests.get(url='https://www.baidu.com/')
# 获取状态码
print(r.status_code)
#获取json的数据类型
# print(r.json())
# print(r.text)
# 获取请求地址
print(r.url)
#获取二进制内容
# print(r.content)
# 获取响应头
print(r.headers)
# 获取响应时间,这边一直以毫秒为单位,没有超过1s的话一直显示为0s
print(r.elapsed.seconds)

风暴平台基本为例 (增删改查)

动态参数的处理思路:

登录成功后,会返回一个token ,我们访问个人主页的时候会带上这个token,但是每次登录返回的token值是不一样的 ,所以,我们就说这个token是个动态参数 我们就以这个为例

1、我们登录成功后 我会创建一个写的函数,调用这个写的函数把返回的token值写在一个文件里

2、我们在访问个人主页的时候,则创建一个读的函数,访问个人主页的时候我们调用读这个函数读取这个文件里的token调用

#! /usr/bin/env python
# -*- coding:utf-8 -*-
# author:张红


import requests
import json

# 动态参数的写入
def writeID(filename,countent):
    with open(file=filename,mode='w')as f:
        f.write(countent)


# 动态参数的读
def getID(filename):
    with open(file=filename,mode='r')as f:
        return f.read()

# 登录
def login():
    r=requests.post(
        url='http://47.95.142.233:8000/login/auth/',
        json={"username":"13xxxxxx","password":"xxxxxx"},
        headers={'Content-Type':'application/json;charset=UTF-8'},

    )
    writeID(filename='token',countent=r.json()['token'])
    # return r.json()['token']
login()

# 首页
def index():
    r=requests.get(
        url='http://47.95.142.233:8000/interface/index',
        headers={'Authorization':'JWT {token}'.format(token=getID(filename='token'))}
    )
    print(r.json())
# index()

# 添加产品
def addProduct():
    r=requests.post(
        url='http://47.95.142.233:8000/interface/product/',
        headers={'Authorization':'JWT {token}'.format(token=getID(filename='token'))
                # 'Content - Type':'application / json;charset = UTF - 8'
                 },
        json={"name":"撒旦","product_type":"APP","version":"1","master":"是","description":"多少"}

    )
    writeID(filename='productID',countent=json.dumps(r.json()['id']))
    print(r.text)
    print(r.status_code)
addProduct()


# 修改产品名称
def modifyProduct():
    id=int(getID(filename='productID'))
    r=requests.put(
        url='http://47.95.142.233:8000/interface/product/%d/'%id,
        headers={'Authorization':'JWT {token}'.format(token=getID(filename='token'))},
        json={"name":"你好","product_type":"APP","version":"1","master":"是","description":"多少","id":id}

    )
    print(r.json())
    print(r.status_code)
modifyProduct()


# 查询产品
def queryProduct():
    r=requests.get(
        url='http://47.95.142.233:8000/interface/products',
        params={'name':'接'},
        headers={'Authorization':'JWT {token}'.format(token=getID(filename='token'))},
    )
    # print(r.json())
    print(r.status_code)
queryProduct()


# 删除产品
def deleteProduct():
    id = int(getID(filename='productID'))
    r=requests.delete(
        url='http://47.95.142.233:8000/interface/product/%d/'%id,
        headers={'Authorization':'JWT {token}'.format(token=getID(filename='token'))}
    )
    # print(r.json())
    print(r.status_code)
deleteProduct()

 

  

 



这篇关于requests实战--(用python实现接口测试)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程