腾讯内部自动化测试教程:python+pytest接口自动化-requests发送get请求

2023-12-05

python中用于请求http接口的有自带的 urllib 和第三方库 requests ,但 urllib 写法稍微有点繁琐,所以在进行接口自动化测试过程中,一般使用更为简洁且功能强大的 requests 库。下面我们使用 requests 库发送get请求。

requests库

简介

requests 库中提供对用的方法用于常用的HTTP请求,对应如下:

requests.get()			# 用于GET请求
requests.post()			# 用于POST请求
requests.put()			# 用于PUT请求
requests.delete()		# 用于DELETE请求

当然还有更多的方法,这里只列举常用的。

安装

安装命令: pip install requests

发送get请求

get请求参数格式说明

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 query string for 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. url,即接口地址
  2. params,接口参数,可选(即可填可不填)
  3. **kwargs,可以添加其他请求参数,如设置请求头headers、超时时间timeout、cookies等

不带参数请求

import requests

res = requests.get(url="https://www.cnblogs.com/lfr0123/")
# 请求得到的res是一个Response对象,如果想要看到返回的文本内容,需要使用.text
print(res.text)

带参数请求

import requests

url = "http://www.baidu.com/s"
params = {"wd": "给你一页白纸-博客园", "ie": "utf-8"}
res = requests.get(url=url, params=params)
print(res.text)

加入请求头headers

有些接口限制只能被浏览器访问,这时按照上面的代码去请求就会被禁止,我们可以在代码中加入 headers 参数伪装成浏览器进行接口请求,示例如下:

import requests

url = "http://www.baidu.com/s"
params = {"wd": "给你一页白纸-博客园", "ie": "utf-8"}

# User-Agent的值为浏览器类型
headers = {
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.82 Safari/537.36"
    }

res = requests.get(url=url, params=params, headers=headers)
print(res.text)

部分结果如下:

这里的响应体其实就是在百度中搜索 给你一页白纸-博客园 的结果页面。

除此之外,还可以加入timeout、cookies等,写法如下:

# timeout只限制请求的超时时间,单位为s,若超时则报错
res = requests.get(url=url, params=params, headers=headers, timeout=20, cookies=cookies)

响应内容

发送请求后会获取到接口响应的内容,如上面示例中res.text,其他响应内容获取方式如下:

res.status_code		# 响应状态码
res.headers			# 响应头
res.encoding		# 响应体编码格式
res.text			# 响应体,字符串形式的文本信息
res.content			# 响应体,二进制形式的文本信息,会自动解码
res.cookies			# 响应的cookie
res.json()			# 响应体格式为json,则需要通过json()进行解码

这里需要注意, res.text res.content 的使用,具体使用哪种方式获取响应体内容,需要根据编码方式进行选择,最笨的方法就是一种不行换另一种试试。

示例如下:

import requests

url = "http://www.baidu.com/s"
params = {"wd": "给你一页白纸-博客园", "ie": "utf-8"}
# User-Agent的值为浏览器类型
headers = {
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.82 Safari/537.36"
    }

res = requests.get(url=url, params=params, headers=headers)
print(res.text)
print(res.status_code)
print(res.headers)
print(res.encoding)
print(res.cookies)

结果如下:

结果中由上而下依次对应代码中print的响应内容。

自动化测试相关教程推荐:

2023最新自动化测试自学教程新手小白26天入门最详细教程,目前已有300多人通过学习这套教程入职大厂!!_哔哩哔哩_bilibili

2023最新合集Python自动化测试开发框架【全栈/实战/教程】合集精华,学完年薪40W+_哔哩哔哩_bilibili

测试开发相关教程推荐

2023全网最牛,字节测试开发大佬现场教学,从零开始教你成为年薪百万的测试开发工程师_哔哩哔哩_bilibili

postman/jmeter/fiddler测试工具类教程推荐

讲的最详细JMeter接口测试/接口自动化测试项目实战合集教程,学jmeter接口测试一套教程就够了!!_哔哩哔哩_bilibili

2023自学fiddler抓包,请一定要看完【如何1天学会fiddler抓包】的全网最详细视频教程!!_哔哩哔哩_bilibili

2023全网封神,B站讲的最详细的Postman接口测试实战教学,小白都能学会_哔哩哔哩_bilibili

总结:

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

如果对你有帮助的话,点个赞收个藏,给作者一个鼓励。也方便你下次能够快速查找。

如有不懂还要咨询下方小卡片,博主也希望和志同道合的测试人员一起学习进步

在适当的年龄,选择适当的岗位,尽量去发挥好自己的优势。

我的自动化测试开发之路,一路走来都离不每个阶段的计划,因为自己喜欢规划和总结,

测试开发视频教程、学习笔记领取传送门!!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

腾讯内部自动化测试教程:python+pytest接口自动化-requests发送get请求 的相关文章

随机推荐

  • 腾讯视频崩了!“将本增笑”连环暴击!

    一波未平一波又起 滴滴崩了的风波还未平息 腾讯视频就迫不及待的上热搜 语雀崩了 阿里崩了 滴滴崩了 腾讯视频蹦了 疯狂打破大厂技术神话 下一位是谁 12月3日晚 腾讯视频出现网络故障 有网友反馈出现首页无法加载内容 VIP用户看不了会员视频
  • 【车载开发系列】FlashMemory基本概念

    车载开发系列 FlashMemory基本概念 车载开发系列 FlashMemory基本概念 车载开发系列 FlashMemory基本概念 一 FlashMemory的特征 二 常见的FlashMemory 1 NOR FlashMemory
  • 不瞒各位,不安装软件也能操作Xmind文档

    大家好 我是小悟 作为搞技术的一个人群 时不时就要接收产品经理发过来的思维脑图 而此类文档往往是以Xmind编写的 如果你的电脑里面没有安装Xmind的话 不好意思 是打不开这类后缀结尾的文档 打不开的话就看不到 无法洞察产品经理的意思 无
  • 【元胞自动机】元胞自动机交通流模拟仿真【含Matlab源码 1252期】

    博主简介 热爱科研的Matlab仿真开发者 修心和技术同步精进 Matlab项目合作可私信 个人主页 海神之光 代码获取方式 海神之光Matlab王者学习之路 代码获取方式 座右铭 行百里者 半于九十 更多Matlab仿真内容点击 Matl
  • SQL自学通之表达式条件语句与运算

    目录 一 目标 二 表达式条件语句 1 表达式 2 条件 2 1 WHERE 子句 三 运算 1 数值型运算 1 1 加法 1 2 减法 1 3 除法 1 4 乘法 1 5 取模 优先级别 2 比较运算 3 字符操作 LIKE
  • 计算机图形图像技术(图像锐化处理与图像解析)

    一 实验原理 1 拓展Sobel算子锐化 void Sobel Array src Array dst int ddepth int dx int dy int ksize 参数 src 为输入图像 dst 为输出图像 大小和通道数与源图像
  • 计算机网络复习资料

    一 题型 选择题 包括单选和多选 共30分 其中单选每题1分 计20分 多选每题2分 计10分 简答题 每题5分 共20分 分析计算题 共40分 共4题 论述题 本题10分 共1题 二 考试大纲 人工智能 主 计科 补 1 概述 1 互联网
  • 年底了,项目预算怎么创建?9个步骤直接搞定

    如果将项目比作一辆汽车 那么预算就是它的燃料 就像汽车需要汽油一样 项目也需要资金和资源来维持运转 而作为项目经理 应该尽量用最有效的方式规划和使用这些资源 使项目按时交付 项目预算是一项计划 其中详细说明了将花费多少钱 用于哪些方面以及何
  • 【元胞自动机】元胞自动机传染病传播模拟【含Matlab源码 1680期】

    博主简介 热爱科研的Matlab仿真开发者 修心和技术同步精进 Matlab项目合作可私信 个人主页 海神之光 代码获取方式 海神之光Matlab王者学习之路 代码获取方式 座右铭 行百里者 半于九十 更多Matlab仿真内容点击 Matl
  • EPS地形图绘制技巧--快捷键

    如何导入外业点数据 1 打开EPS软件 新建一个工程 如下 2 在 文件 输入输出 调入坐标文件数据 中 调入测量点数据 如下 3 具体步骤如下 1 绘制图形时如何快速捕捉到相应的点 S 在 加线 状态下 输入法切换成英文状态 将鼠标放置在
  • 探索混合模板学习在推荐系统中的应用与个性化推荐效果评估

    在当今数字化时代 推荐系统成为了我们日常生活中不可或缺的一部分 无论是购物网站 社交媒体平台还是音乐应用 推荐系统都能够根据我们的兴趣和偏好 为我们提供个性化的推荐内容 然而 传统的推荐算法在面对用户行为的多样性和数据的海量性时 往往难以取
  • 数据通信技术复习资料

    一 分值分布 1 简答题 60分 共12题 5分一个 含画图 填表形式 2 计算题 35分 共4题 3 论述题 5分 共1题 二 考试范围 1 光纤通信技术占20分 2 数据通信原理主要考1 5章 其中4 5章15分的基本概念 第1章15分
  • 【元胞自动机】元胞自动机交通事故通行【含Matlab源码 1345期】

    博主简介 热爱科研的Matlab仿真开发者 修心和技术同步精进 Matlab项目合作可私信 个人主页 海神之光 代码获取方式 海神之光Matlab王者学习之路 代码获取方式 座右铭 行百里者 半于九十 更多Matlab仿真内容点击 Matl
  • 北京某电视台:持续采购监控易远程维保服务

    一 背景介绍 北京某电视台是一家知名的电视媒体机构 随着业务的发展和技术的不断更新 其对IT设备的管理和维护需求也日益增长 为了确保IT设备的稳定运行和降低运维成本 该电视台决定再次采购监控易1年的远程维保服务 二 解决方案 监控易是一款高
  • Python核心编程之基础内功

    目录 一 语句和语法 1 注释 2 继续 3 多个语句构成代码组
  • 餐饮行业想要做好软文推广的三大技巧,媒介盒子分享

    数字化时代的来临 使越来越多的餐饮品牌和从业者利用软文推广来展示自己的产品 服务和品牌形象 而餐饮行业想要做好软文推广 并不是一味输出内容就行 今天媒介盒子就来和大家分享餐饮行业想要做好软文推广的三大技巧 一 nbsp 软文推广作用 我们首
  • 有哪些好用的视频格式转换方法?推荐这些

    这不快到圣诞节了嘛 为了避免出门人挤人 我和几个朋友商量好了一起在家里聚餐看电影 又能感受节日的氛围 又能避免人挤人 想想就很美好 我这种计划型人格当然要早早计划起来啦 虽然离圣诞节还有一段时间 但是我已经开始在挑选合适的电影 不过下载了几
  • 【元胞自动机】元胞自动机HIV扩散模拟【含Matlab源码 1292期】

    博主简介 热爱科研的Matlab仿真开发者 修心和技术同步精进 Matlab项目合作可私信 个人主页 海神之光 代码获取方式 海神之光Matlab王者学习之路 代码获取方式 座右铭 行百里者 半于九十 更多Matlab仿真内容点击 Matl
  • 封装了一个顺滑嵌套滚动的框架

    首先查看效果图 就是开始滚动的时候 上面的头部和下面的内容是 一起滚动的 但是当滚动到segment 的时候 segment 是悬停 的 下面的tableView是分区的 架构设计 我们设计一个架构 以下面的tablView为主体 上面的内
  • 腾讯内部自动化测试教程:python+pytest接口自动化-requests发送get请求

    python中用于请求http接口的有自带的 urllib 和第三方库 requests 但 urllib 写法稍微有点繁琐 所以在进行接口自动化测试过程中 一般使用更为简洁且功能强大的 requests 库 下面我们使用 requests