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]>]

如果你使用的是GETOPTIONSPOSTPUTPATCH 或者 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之接口测试

python+requests之接口测试

接口测试基础五-使用python+requests编写接口测试用例

python+requests+json 接口测试实战

简单使用 Requests+Python2 接口测试 读取 Excel 完成接口测试

python requests接口测试 -----博客园串接口