接口自动化_Requests库

一、Requests第三方库

requests库用用来发送http协议请求以及接收http协议响应的第三方库,主要用于接口自动化测试

安装:pip install requests

  

二、requests方法:

  requests.get()    发送get请求

  requests.post()   发送post请求

  requests.delete()   发送delete请求

  requests.put()   发送put请求

  requests.request()   最核心的方法

def request(
self,
method,  #请求方式
url,  #请求路径
params=None,  #get请求参数
data=None,  #post请求和get请求传参
   json=None,  #post请求传参
headers=None,  #请求头
cookies=None,  #cookie信息
files=None,  #文件上传
--------------------------------------------
auth=None,  #鉴权
timeout=None,  #超时
allow_redirects=True,  #是否运行重定向
proxies=None,  #设置代理
hooks=None,  
stream=None,  #文件下载
verify=None,  #ssh认证
cert=None,  #CA证书
):

  requests.session()   创建会话对象

requests.get(url,params=None,**kwargs)

requests.post(url,data=None,json=None,**kwargs)

data和json传参的区别:

postman中:

  1.请求的参数是:from-data   代表是表单传参或者文件上传  ,type=file

  Content-Type:multipart/form-data 

  2.请求的参数是:x-www-form-urlencoded  代表是表单传参 ,(k1=1&k2=2)

  Content-Type:application/x-www-form-urlencoded    (data传参)

  3.请求的参数是:raw,代表原始格式传参

  Content-Type:text:text/plain    (data传参)

         javascript:application/javascript

         json:application/json    (json传参)

         html:text/html

         xml:application/xml

  4.请求的参数是:binary,代表原始格式传参

  Content-Type:application/octent-stream

 

 

 

python中:

data传参表示表单传参,默认的请求头:Content-Type:application/x-www-form-urlencoded,请求参数的格式:k1=1&k2=2,参数是纯键值对的字典,如:(key1:value1,key2:value2)   

data传参表示文本传参:默认请求头:Content-Type:text/plain,参数:str类型

json传参表示用json格式传参,默认的请求头:json:application/json,参数是字典类型,包括键值对和列表的字典类类型

三、response返回对象

  res.text  返回接口的文本信息

  res.content  返回bytes字节类型数据

  res.json()  返回字典格式数据

  res.start_code  返回状态码

  res.reason  返回状态信息

  res.cookie  返回cookie信息

  res.encoding  返回编码格式

  res.headers  返回响应头

  res.resquest.xxx  返回请求的数据

四、Requests实战:

  json.dumps()    把字典转化成字符串

  json.loads()  把字符串转化成字典

import requests
imoert re

class TestDemo:
# 类变量 获取token实现接口关联
token = ""

def test_get_token(self):
url = "http://192.168.20.102:180/flexbase/api/w/logon/login"
data = {
"username": "102_180",
"password": "1"
}
res = requests.request("post", url=url, data=data)
print(res.json())
TestDemo.token = res.json()['data']['token'] # json提取器获取token
# Test_demo.token = re.search('"token" : "(.*?)"', res) 正则表达式获取token
print(TestDemo.token)
posted @ 2022-07-26 16:54  非同凡响  阅读(299)  评论(0编辑  收藏  举报