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实现接口测试)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-26Python基础编程
- 2024-11-25Python编程基础:变量与类型
- 2024-11-25Python编程基础与实践
- 2024-11-24Python编程基础详解
- 2024-11-21Python编程基础教程
- 2024-11-20Python编程基础与实践
- 2024-11-20Python编程基础与高级应用
- 2024-11-19Python 基础编程教程
- 2024-11-19Python基础入门教程
- 2024-11-17在FastAPI项目中添加一个生产级别的数据库——本地环境搭建指南