【代码实现接口测试】Requests库

Requests库

Requests库是用Python编写的,基于urllib,采用Apache2 Licensed开源协议的HTTP库;
相比与urllib库,Requests库更加方便,可节约大量工作,完全满足HTTP测试需求。

解决乱码问题

# 解决乱码问题:
# 导包
import requests

# 发送请求
response = requests.get("http://www.baidu.com")

# 查看响应
# 查看响应数据编码格式
print("原始的数据编码为:", response.encoding)
print("设置前响应数据:", response.text)

# 设置响应数据编码格式
response.encoding = "utf-8"
print("设置编码后数据编码为:", response.encoding)
print("设置好响应数据:", response.text)

print(response.text)

运行结果展示:
在这里插入图片描述
在这里插入图片描述

发送url参数

# 导包
import  requests

# 发送请求
# 直接通过url传递参数
response = requests.get("http://localhost:8080/Home/Goods/search.html?q=iPhone")

# 通过params传递参数:
# (1)字符串
urlA = "http://localhost:8080/Home/Goods/search.html"
stringA = "q=iPhone"
response = requests.get(url=urlA,params=stringA)

# (2)字典
dictA = {
    "q":"iPhone"
}
response = requests.get(url=urlA, params=dictA )

# 查看响应
print(response.text)

Post请求提交form表单数据

代码:

"""
1.请求TPshop项目的登录接口,
2.登录接口URL: http://localhost:8080/index.php?m=Home&c=User&a=do_login
"""

# 导包
import requests
# 发请求
login_url = "http://localhost:8080/index.php?m=Home&c=User&a=do_login"
login_data = {
    "username":"17788888888",
    "password":"17788888888",
    "verify_code":"8888"
}

responce = requests.post(url=login_url, data=login_data)

# 看响应
print(responce.json())

运行结果:

在这里插入图片描述
为什么格式正确它显示验证码错误??

Post提交json数据

代码如下:

# 导包
import requests
# 发送请求
login_url = "http://ihrm-test.itheima.net/api/sys/login"
login_data = {
    "mobile":"13800000002",
    "password":"123456"
}

responce = requests.post(url=login_url, json=login_data)

# 查看响应
print(responce.json())

运行结果如下:
在这里插入图片描述

其他请求类型

如PUT、DELETE、HEAD以及OPTIONS

import requests

response = requests.put("http://www.baidu.com", data={"key":"value"})
response = requests.delete("http://www.baidu.com")

响应内容

response.status_code状态码
response.url请求url
response.encoding查看响应头部字符编码
response.headers头信息
response.cookiescookie信息
response.text文本形式的响应内容
response.content字节形式的响应内容
response.json()JSON形式的响应内容

代码如下:


import requests

# 访问百度首页的接口`http://www.baidu.com`,获取以下响应数据
response = requests.get("http://www.baidu.com")

# 获取响应状态码
print("响应状态码:", response.status_code)

# 获取请求URL
print("URL:", response.url)

# 获取响应字符编码
print("编码格式为:", response.encoding)

# 获取响应头数据
print("响应头信息:", response.headers)
print("Content-Type:",response.headers.get("Content-Type"))

# 获取响应的cookie数据
print("cookies:", response.cookies)
print("提取指定的cookie", response.cookies.get("BDORZ"))

# 获取文本形式的响应内容
print("文本形式显示响应内容:", response.text)

# 获取字节形式的响应内容
print("获取字节形式的响应内容:", response.content)
print("获取字节形式的响应内容:", response.content.decode("utf-8"))

运行结果:
在这里插入图片描述

设置请求头

"""
请求头: Content-Type: application/json
请求体:{"mobile":"13800000002","password":"123456"}
"""

import requests
login_url = "http://ihrm-test.itheima.net/api/sys/login"
login_header = {
    "Content-Type":"application/json"
}
login_data ={
    "mobile":"13800000002",
    "password":"123456"
}

response = requests.post(url=login_url, json=login_data, headers=login_header)

# 查看响应
print(response.json())

运行结果如下:
在这里插入图片描述

Session

session对象代表一次用户会话:从客户端浏览器连接服务器开始,到客户端浏览器与服务器断开会话能让我们在跨请求时候保持某些参数,比如在同一个session实例发出的所有请求之间保持cookie

import requests
# 创建session对象
session = requests.Session()

response = session.get("http://localhost:8080/index.php?m=Home&c=User&a=verify")

# 登录
login_url = "http://localhost:8080/index.php?m=Home&c=User&a=do_login"
login_data = {
    "username":"17788888888",
    "password":"17788888888",
    "verify_code":"8888"
}
response = session.post(url=login_url, data=login_data)
print(response.json())

# http://localhost:8080/Home/Order/order_list.html
response = session.get("http://localhost:8080/Home/Order/order_list.html")
print(response.text)

代码运行结果:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值