接口自动化测试之-requests模块详解

news2024/9/23 7:22:29

一、requests背景

Requests 继承了urllib2的所有特性。Requests支持HTTP连接保持和连接池,支持使用cookie保持会话,支持文件上传,支持自动确定响应内容的编码,支持国际化的 URL 和 POST 数据自动编码。

二、requests安装

利用pip安装:
$ pip install requests

三、requests使用

GET请求

1.基本的GET的请求

  1. response = requests.get("http://www.baidu.com/")

  2. #也可以这样写

  3. response = requests.request("get","http://www.baidu.com/")

2.添加headers 和 params

如果想添加 headers,可以传入headers参数来增加请求头中的headers信息。如果要将参数放在url中传递,可以利用 params 参数。

  1. key = {'key': 'CC'}

  2. headers = {

  3. "User-Agent": "Mozilla/5.0"}

  4. response = requests.get("http://www.baidu.com/s?", params=key, headers=headers)

  5. print(response.text)# 查看响应内容,response.text 返回的是Unicode格式的数据

  6. print(response.content)# 查看响应内容,response.content返回的字节流数据

  7. print(response.status_code)# 查看响应码

如果你想取文本,可以通过response.text;如果想取图片/文件,则可以使用response.content。

POST方法

1.基本的POST的请求

response = requests.post("http://www.baidu.com/",data = data)
2.body带参数
  1. formdata = {

  2. "type": "AUTO",

  3. "doctype": "json",

  4. "key": "www",

  5. "ue": "UTF-8",

  6. }

  7. url = "http://auto-installment/v1/loan-credit-check"

  8. response = requests.post(url,data = data,headers=headers)

  9. print(response.text)#显示返回结果

  10. print(response.json())# 如果是json文件可以直接显示

注意:
打印的结果出现中文乱码,使用json.dupms(response, ensure_ascii=False))解决

Session

一般利用Session在跨请求的时候保持某些参数,比如实现登录后才能访问其他页面

  1. # 1. 创建session对象,可以保存Cookie值

  2. session = requests.session()

  3. # 2. 需要登录的用户名和密码

  4. data = {"username": "mxxxx", "password": "1233444"}

  5. # 3. 发送附带用户名和密码的请求,并获取登录后的Cookie值,保存在ssion里

  6. session.post("https://www.jianshu.com/sign_in", data=data)

  7. # 4. ssion包含用户登录后的Cookie值,可以直接访问那些登录后才可以访问的页面

  8. response = session.get("https://www.jianshu.com/writer#/")

注意事项:

1.在使用requests去请求一个接口时,出现报错的情况,但是这个接口本身却没有问题。这是因为接口的请求参数有两种情况:简单类型(一般少于3个)和复杂对象类型。
解决方法:在headers中定义一下这两种参数的类型
简单类型:headers={"Content-Type": "application/x-www-form-urlencoded"}
复杂对象类型:headers={"Content-Type":application/json}
2.某些HTTPS请求存在 SSL证书验证
解决方法:response = requests.get("https://www.baidu.com/", verify=False)

四、requests扩展

1.requests请求失败后,增加重试机制(若失败,将会重试3次)

  1. request_retry = requests.adapatrs.HTTPAdapaters(max_retries=3)

  2. session.mount('https://',request_retry)

 2.使用grequests实现异步请求

  1. urls = [

  2. 'http://www.url1.com',

  3. 'http://www.url2.com',

  4. 'http://www.url3.com',

  5. 'http://www.url4.com',

  6. 'http://www.url5.com',

  7. ]

  8. resp = (grequests.get(u) for u in urls)

  9. grequests.map(resp)

3.自定义cookies

我们使用Session实例来保持请求之间的cookies,但是有些特殊情况,需要使用自定义的cookies

 
  1. 我们使用Session实例来保持请求之间的cookies,但是有些特殊情况,需要使用自定义的cookies

  2. # 自定义cookies

  3. cookie = {'guid':'5BF0FAB4-A7CF-463E-8C17-C1576fc7a9a8','uuid':'3ff5f4091f35a467'}

  4. session.post('http://', cookies=cookie)

4.统计一个API请求花费的时间

session.get(url).elapsed.total_seconds() 

5.设置请求超时

session.get(url, timeout=15)

6.文件上传

Requests利用files作为参数模拟提交文件数据

  1. file = {'file':open('test.bmp','rb')} #rb表示用二进制格式打开指定目录下的文件,且用于只读

  2. r =requests.post('http://',files=file)

  3. print(r.text

 

总结:

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

 

          视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1645401.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

古墓丽影年度版喜加一 亚马逊免费游戏领取教程+下载安装教程

最近我们的老朋友亚马逊平台又为玩家们带来了一款免费的3A大作,这款游戏作为古墓丽影的续作在全球范围内都有着很高的热度和评价。但是许多玩家不知道这款游戏该如何领取,下面小编就为大家带来详细教程。 在领取之前,我们一定要优化我们的网…

Debian mariadb 10.11设定表名 大小写不敏感方法

目录 问题表现:应用中查询 表提示 表不存在 处理步骤: 1、查询表名大小写敏感情况: show global variables like %case%; 2、修改mariadb 配置设置大小写 不敏感 mysql 配置大小写不敏感 mariadb 10.11设置表名大小写不敏感 /etc/mysq…

性能拉满!NeRF与SLAM结合,最新SOTA参数减少30倍!

给大家推荐一个非常新兴的,有大量创新点可以挖掘的好方向:NeRF结合SLAM。 通过结合NeRF的高质量三维场景重建能力和SLAM的动态定位与环境理解能力,我们可以利用逐帧收集的数据,逐渐构建出高质量的3D场景模型,实现更加…

centos无法tab补全至文件

很奇怪的需求:redhat 7.9版本用cd 只能到目录,无法到文件 我个人认为不是个问题,但是甲方需求,你懂的 首先,我们要搞清楚tab补全功能的包bash-completion是否安装,这里肯定是安装了,不过还是看…

引领智算变革,九章云极DataCanvas公司激活油气行业新质生产力

近日,“2024中国石油石化企业信息技术交流大会暨油气产业数字化转型高峰论坛”在京成功举办,九章云极DataCanvas公司携“油气行业AI智算服务全栈解决方案”震撼亮相,为油气行业数智化转型和新质生产力发展提供领先的技术视角和前瞻实战经验分…

热敏电阻符号与常见术语详细解析

热敏电阻是一种电阻器,其特点是电阻值随温度的变化而显著变化,这使得它们成为非常有用的温度传感器。它们可以由单晶、多晶或玻璃、塑料等半导体材料制成,并分为两大类:正温度系数热敏电阻(#PTC热敏电阻#)和…

2024上半年软考机考新政策:科目连考、分批次考试

辽宁省信息技术教育中心发布了《关于2024年上半年计算机技术与软件专业技术资格(水平)考试批次安排的通知》。 该通知明确了2024上半年软考辽宁考区的考试时间、考试方式、考试批次安排,与2023下半年软考机考形式有多处调整。 1、考试时间&am…

四川易点慧电子商务抖音小店:潜力无限的新零售风口

在当今数字化浪潮中,电子商务已经成为推动经济发展的重要引擎。四川易点慧电子商务有限公司凭借其敏锐的市场洞察力和创新精神,成功在抖音小店这一新兴平台上开辟出一片新天地。本文将探讨四川易点慧电子商务抖音小店的潜力及其在新零售领域的影响力。 一…

基于Spring Boot的校园疫情防控系统设计与实现

基于Spring Boot的校园疫情防控系统设计与实现 开发语言:Java框架:springbootJDK版本:JDK1.8数据库工具:Navicat11开发软件:eclipse/myeclipse/idea 系统部分展示 管理员登录首页界面图,管理员进入校园疫…

.OpenNJet应用引擎实践——从 0-1 体验感受

目录 一. 🦁 写在前面二. 🦁 安装使用2.1 安装环境2.2 配置yum源2.3 安装软件包2.4 编译代码2.5 启动 三. 🦁 使用效果3.1 编辑配置文件3.2 编辑 HTML 代码 四. 🦁 使用感受 一. 🦁 写在前面 现在互联网体系越来越往云…

C语言—控制语句

控制语句就是用来实现对流程的选择、循环、转向和返回等控制行为。 分支语句 if语句 基本结构 if(表达式) { 语句块1; } else { 语句块2; } 执行顺序: 如果表达式判断成立(即表达式为真),则执行语句块…

fork后如何同步最新的代码

1.查看自己的库并添加远程源库 #查看所有远程库的url git remote -v; #添加源项目url(upstream是自己定义的一个名字,可以删 git remote remove upstream) git remote add upstream 这里替换为源项目url; #查看所有远程库的url&…

【信息安全管理与评估】某年“信息安全管理与评估”第二阶段:Windows应急响应例题

文章目录 1、提交攻击者的IP地址;2、识别攻击者使用的操作系统;3、找出攻击者资产收集所使用的平台;4、提交攻击者目录扫描所使用的工具名称;5、提交攻击者首次攻击成功的时间,格式:DD /MM/YY:HH:MM:SS&…

高效、精准:皮秒激光切割机在陶瓷基板加工中的应用

皮秒激光切割机(激光划片机)在陶瓷基板切割领域具有显著的优势和潜力,主要体现在以下几个方面: 1. 高精度:皮秒激光切割机能够实现极高的切割精度,对于陶瓷基板这种需要精细加工的材料尤为重要。它能够在不…

生产管理驾驶舱模板分享,制造业都来抄作业!

今天要讲的是一张从组织、生产车间、物料、仓库、时间等不同维度,展示产能、产量、投入成本、产能达成率等关键信息,让企业运营决策者全面了解生产产能情况、产量情况、投入成本情况、产能达成率情况的BI生产管理驾驶舱模板。这是奥威BI标准方案为设有生…

【Web漏洞指南】XSS漏洞详细指南

【Web漏洞指南】XSS漏洞详细指南 概述XSS的三种类型执行任意 JS 代码的方式在原始HTML中注入绕过手法在 HTML标记内注入绕过手法在JavaScript代码中注入绕过手法其他绕过手法XSS常见有效载荷检索Cookies窃取页面内容键盘记录器查找内部IP地址端口扫描器自动填充密码捕获窃取 Po…

小猫咪邮件在线发送系统源码v1.1,支持添加附件

内容目录 一、详细介绍二、效果展示1.部分代码2.效果图展示 三、学习资料下载 一、详细介绍 小猫咪邮件在线发送系统源码v1.1,支持添加附件 一款免登录发送邮件,支持发送附件,后台可添加邮箱,前台可选择发送邮箱 网站数据采取本地保存&…

Jmeter性能测试(三)

token鉴权处理 1、添加json提取器 2、写jsonpath表达式在响应Body中提取鉴权token token:变量名,可以直接引用 $…token:token数据在响应中的字段名称,根据自己情况写就行 3、将提取出来的token添加到请求头中 重点&#xff…

2024年电化学、可再生能源与绿色发展国际会议(ICERGD2024)

2024年电化学、可再生能源与绿色发展国际会议(ICERGD2024) 会议简介 2024国际电化学、可再生能源与绿色发展大会(ICERGD2024)将在青岛隆重举行。本次会议聚焦电化学、可再生能源和绿色发展领域的最新研究成果和技术趋势,旨在促进相关领域…

OZON卖家必看!2024年OZON运营必备工具大全

OZON运营过程中会用到许多工具网站,都是OZON跨境人运营必备的。为了帮助新卖家在运营OZON时更高效,下面汇总了一份我们在日常运营中频繁使用的工具网站列表。这样大家可以一次性找到所需的所有网址,无需在多个网站间来回切换,节省…