Python接口测试-Requests系列
Posted 龙腾测试
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python接口测试-Requests系列相关的知识,希望对你有一定的参考价值。
十三. Cookie
如果某个响应中包含一些 cookie,你可以快速访问它们:
>>> url = 'http://example.com/some/cookie/setting/url'
>>> r = requests.get(url)
>>> r.cookies['example_cookie_name']
'example_cookie_value'
要想发送你的cookies到服务器,可以使用 cookies 参数:
>>> url = 'http://httpbin.org/cookies'
>>> cookies = dict(cookies_are='working')
>>> r = requests.get(url, cookies=cookies)
>>> r.text
'{"cookies": {"cookies_are": "working"}}'
十四. 重定向与请求历史
默认情况下,除了 HEAD, Requests 会自动处理所有重定向。
可以使用响应对象的 history 方法来追踪重定向。
Response.history 是一个 Response 对象的列表,为了完成请求而创建了这些对象。这个对象列表按照从最老到最近的请求进行排序。
例如,Github 将所有的 HTTP 请求重定向到 HTTPS:
>>> r = requests.get('http://github.com')
>>> r.url
'https://github.com/'
>>> r.status_code
200
>>> r.history
[<Response [301]>]
如果你使用的是GET、OPTIONS、POST、PUT、PATCH 或者 DELETE,那么你可以通过allow_redirects 参数禁用重定向处理:
>>> r = requests.get('http://github.com', allow_redirects=False)
>>> r.status_code
301
>>> r.history
[]
如果你使用了 HEAD,你也可以启用重定向:
>>> r = requests.head('http://github.com', allow_redirects=True)
>>> r.url
'https://github.com/'
>>> r.history
[<Response [301]>]
十五. 超时
你可以告诉 requests 在经过以 timeout 参数设定的秒数时间之后停止等待响应:
>>> requests.get('http://github.com', timeout=0.001)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
requests.exceptions.Timeout: HTTPConnectionPool(host='github.com', port=80): Request timed out. (timeout=0.001)
注意
timeout 仅对连接过程有效,与响应体的下载无关。 timeout 并不是整个下载响应的时间限制,而是如果服务器在 timeout 秒内没有应答,将会引发一个异常(更精确地说,是在timeout 秒内没有从基础套接字上接收到任何字节的数据时)
十六. 错误与异常
遇到网络问题(如:DNS 查询失败、拒绝连接等)时,Requests 会抛出一个 ConnectionError 异常。
如果 HTTP 请求返回了不成功的状态码, Response.raise_for_status() 会抛出一个 HTTPError 异常。
若请求超时,则抛出一个 Timeout 异常。
若请求超过了设定的最大重定向次数,则会抛出一个 TooManyRedirects 异常。
所有Requests显式抛出的异常都继承自 requests.exceptions.RequestException 。
END
龙腾测试年前最后一批班开课时间:(9-11月份)
软件测试行业的现状:无论公司用不用自动化和性能,面试都会要求你会,所以不努力你还能走多远?
年前学习,年后跳槽刚刚好~
1、【高级Java自动化实战班】(13周每周末一天)-----9月23日开班
Java+appium+Selenium自动化+多种协议接口自动化(以代码为主+接口框架)+持续集 成+完整项目实战;2、【高级python自动化实战班】(12周,每周末一天)-----9月23日开班 Python+selenium+Appium自动化+接口自动化(包http,webservice,dubbo以代码主)+robotframework关键字驱动框架 3、【高级性能测试实战班】: (13周,每周末一天)-----10月15日开班
LoadRunner+jmeter+性能监控+瓶颈定位分析+调优+完整案例性能实战+性能持续集成平台;
4、【软件测试零基础就业班】:(2个月)-----10月16日开班
5、【高级web安全测试实战班】(10周每周日一天)-----11月12日开班
多种web安全漏洞分析+多种web安全测试手段(包含工具和代码)+大型p2p项目
另测试开发班筹划中,敬请期待~
龙腾公开课群:559447683
北京可报线下,全国可报网络,报名联系QQ:157766255/147772928!
以上是关于Python接口测试-Requests系列的主要内容,如果未能解决你的问题,请参考以下文章
接口测试基础五-使用python+requests编写接口测试用例