• 接口自动化测试之Requests模块详解


    Python中,系统自带的urllib和urllib2都提供了功能强大的HTTP支持,但是API接口确实太难用了。Requests 作为更高一层的封装,在大部分情况下对得起它的slogan——HTTP for Humans。

    让我们一起来看看 Requests 这个 HTTP库在我们接口自动化测试中的使用吧

    发送请求

    在使用 Requests发送网络请求非常简单,经常使用一两行代码就可以搞定。

    Requests是一个第三方库,在使用它之前需要先安装这个库:

    发送GET请求示例:

    响应数据的获取也非常简单明了。

    示例:

    Requests 会自动解码来自服务器的内容。大多数 unicode 字符集都能被无缝地解码。请求发出后,Requests 会基于 HTTP 头部对响应的编码作出有根据的推测。当访问应答正文时,,Requests 会使用其推测的文本编码。你可以找出 Requests 使用了什么编码,并且能够使用 response.encoding 属性来改变它。

    发送POST请求示例:

    重定向、

    超时和代理

    Requests 之所以称为“HTTP for human”,因为其封装层次很高,其中一处体现就在:Requests会自动处理服务器响应的重定向

    注:

    allow_redirects参数为False则表示不会主动重定向。

    有时候对方网站的响应时间太长了,我们希望在指定时间内完事,或者直接停止这个请求。示例:

    注:

    timeout表示这次请求最长只等待多少秒,超过设置的时间后报错。

    为了防止反爬虫之类机制,Requests 套上一层代理的做法也非常简单:

    会话对象

    会话对象能够跨请求保持某些参数。它也会在同一个 Session 实例发出的所有请求之间保持 cookie, 期间使用 urllib3 的 connection pooling 功能。所以如果向同一主机发送多个请求,底层的 TCP 连接将会被重用,从而带来显著的性能提升。

    我们以 Django Web 应用的登录请求操作,需要前面一个GET请求中的csrf_token值为例:

    后记

    当然 Requests 的功能不止这么一些,我们使用 Requests 作为基于 HTTP 协议的接口自动化测试还需要学习的内容也很多,大家可以参考官方文档进行更多的学习:

    https://requests.readthedocs.io/en/master/

    7天练完接口自动化测试30个实战项目,28K入职字节测试岗。【自动化测试/接口测试/软件测试/性能测试/Jmeter】

    最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

    在这里插入图片描述

    这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

  • 相关阅读:
    【Android笔记20】Android中的字符串、颜色、尺寸等资源的介绍及使用
    计算机毕业设计(附源码)python自助旅游平台
    【从0入门JVM】-01Java代码怎么运行的
    【面试题分享】重现 string.h 库常用的函数
    力扣hot100:75. 颜色分类(双指针)
    php Unicode编码格式案例
    1. 懒加载的概念、特点和原理?
    普通空调实现远程控制基础知识解读
    Springboot3中aop几个通知注解执行的先后顺序
    LVS+Keepalived 高可用集群
  • 原文地址:https://blog.csdn.net/qq_48811377/article/details/133207051