Python自动化测试之request库详解(一)

在做接口测试,接口自动化测试的时候都会用到很多工具,如postman、jmeter、pytest等工具,除了这些工具外,我们也会用python的第3方库requests来做接口测试。接下来我会专门讲request的系列专题,希望大家能学好request库,为将来做接口自动化测试打好基础。

request简介

requests是python实现的简单易用的HTTP库,属于python的第3方库,通过pip进行安装使用。

requests中文文档:https://2.python-requests.org//zh_CN/latest/user/quickstart.html#

requests安装

1.打开cmd

2.通过pip进行安装

# 安装requests
pip install requests

同时,我也准备了一份软件测试视频教程(含接口、自动化、性能等),需要的可以直接在下方观看 ,或者直接关注VX公众号:互联网杂货铺,免费领取

软件测试视频教程观看处:

2023完整版阿里大牛7天软件测试零基础速成内部教程,从基础到项目实战学完即入职。

requests发送get请求

源码:

def get(url, params=None, **kwargs):
    r"""Sends a GET request.
    :param url: URL for the new :class:`Request` object.
    :param params: (optional) Dictionary, list of tuples or bytes to send
        in the body of the :class:`Request`.
    :param \*\*kwargs: Optional arguments that ``request`` takes.
    :return: :class:`Response <Response>` object
    :rtype: requests.Response
    """
 
    kwargs.setdefault('allow_redirects', True)
    return request('get', url, params=params, **kwargs)

1.首先导入requests模块

2.选择get方法请求地址:https://www.cnblogs.com/qican/

3.可以查看请求的返回内容

# coding:utf-8
# 导入模块
import requests
# 请求地址
url = 'https://www.cnblogs.com/qican/' 
r = requests.get(url) # 请求返回内容 text = r.text print(text)

4.请求携带参数params

5.请求地址:http://httpbin.org/get?

6.请求参数书写以字典形式编写如{ "name": "requests" }

# coding:utf-8
# 导入requests模块
import requests
# 携带参数
params = {
   "name": "request",
    "name1":"python"
}
# 请求地址
url = 'http://httpbin.org/get?'
r = requests.get(url,params=params)
text = r.text
print(text)
 
 
代码结果:
{
  "args": {
    "name": "requests", 
    "name1": "python"
  }, 
  "headers": {
    "Accept": "*/*", 
    "Accept-Encoding": "gzip, deflate", 
    "Host": "httpbin.org", 
    "User-Agent": "python-requests/2.21.0"
  }, 
  "origin": "116.247.112.151, 116.247.112.151", 
  "url": "https://httpbin.org/get?name=requests&name1=python"
}

通过观察,可以发现最后的url地址已经被更改成了name=requests和name1=python

requests请求post

源码:

def post(url, data=None, json=None, **kwargs):
    r"""Sends a POST request.
    :param url: URL for the new :class:`Request` object.
    :param data: (optional) Dictionary, list of tuples, bytes, or file-like
        object to send in the body of the :class:`Request`.
    :param json: (optional) json data to send in the body of the :class:`Request`.
    :param \*\*kwargs: Optional arguments that ``request`` takes.
    :return: :class:`Response <Response>` object
    :rtype: requests.Response
    """
 
    return request('post', url, data=data, json=json, **kwargs)

1.导入requests模块

2.选择post方法请求:http://apis.juhe.cn/simpleWeather/query

3.输入参数格式{"name":"value"}

# coding:utf-8
import requests # 导入模块
url = 'http://apis.juhe.cn/simpleWeather/query'      # 请求地址
# 请求参数
data = {
    "city":"上海",
    "key":"331eab8f3481f37868378fcdc76cb7cd"
}
r = requests.post(data=data,url=url)
print(r.text)

返回值其他内容

r.text # 返回全部内容
r.url  # 返回的url地址
r.content  # 返回解码后的内容
r.cookies  # 返回cookies
r.headers   # 返回携带的请求头
r.status_code  # 返回状态码
r.json() # 返回json格式

写在最后

PS:这套软件测试的自学教程合集。 对于在测试行业发展的小伙伴们来说应该会很有帮助。全套内容已经打包到网盘,内容总量接近500个G 。如需要软件测试学习资料,关注公众号(互联网杂货铺),后台回复1,整理不易,给个关注点个赞吧,谢谢各位大佬!

这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。

相关推荐
工业3D_大熊4 分钟前
【虚拟仿真】CEETRON SDK在船舶流体与结构仿真中的应用解读
java·python·科技·信息可视化·c#·制造·虚拟现实
SEEONTIME13 分钟前
python-24-一篇文章彻底掌握Python HTTP库Requests
开发语言·python·http·http库requests
Bearnaise13 分钟前
PointMamba: A Simple State Space Model for Point Cloud Analysis——点云论文阅读(10)
论文阅读·笔记·python·深度学习·机器学习·计算机视觉·3d
哇咔咔哇咔44 分钟前
【科普】conda、virtualenv, venv分别是什么?它们之间有什么区别?
python·conda·virtualenv
CSXB991 小时前
三十四、Python基础语法(文件操作-上)
开发语言·python·功能测试·测试工具
Dreams°1232 小时前
大数据 ETL + Flume 数据清洗 — 详细教程及实例(附常见问题及解决方案)
大数据·单元测试·可用性测试
亚图跨际2 小时前
MATLAB和Python及R潜变量模型和降维
python·matlab·r语言·生物学·潜变量模型
IT古董2 小时前
【机器学习】决定系数(R²:Coefficient of Determination)
人工智能·python·机器学习
德育处主任Pro2 小时前
『Django』APIView基于类的用法
后端·python·django
Star Patrick2 小时前
算法训练(leetcode)二刷第十九天 | *39. 组合总和、*40. 组合总和 II、*131. 分割回文串
python·算法·leetcode