python接口自动化测试 - requests库的基础使用

简介: python接口自动化测试 - requests库的基础使用

简单介绍


requests库简单易用的HTTP库

  

Get请求


格式:requests.get(url)

注意:若需要传请求参数,可直接在 url 最后的 ? 后面,也可以调用 get() 时多加一个参数 params ,传入请求参数,注意需要是 dict 格式;如下图所示


1     url = 'http://127.0.0.1:8888/passport/user/login'
 2     param = {
 3         'username': '123',
 4         'password': '321'
 5     }
 6 
 7     """通过params传参"""
 8     res = requests.get(url, params=param)
 9     # {'code': 200, 'msg': 'success', 'password': '321', 'username': '123'}
10     print(res.json())
11 
12     """通过params方式传参,最终发出的url也是一致的"""
13     # http://127.0.0.1:8888/passport/user/login?username=123&password=321
14     print(res.url)
15 
16     """通过url最后加上请求参数列表"""
17     url = 'http://127.0.0.1:8888/passport/user/login?username=123&password=321'
18     res = requests.get(url, verify=False)
19     # {'code': 200, 'msg': 'success', 'password': '321', 'username': '123'}
20     print(res.text)


重点:发送请求赋值的res,可以看成是请求的上下文,既可以获取请求相关参数值,也可以获取响应相关参数值

 

Post请求


格式: requests.post(url,data)


注意:若无请求参数可不传 data ;当传入请求参数时,需要传 dict 格式


 1     url = 'http://127.0.0.1:8888/passport/user/post_login'
 2     data = {
 3         'username': '123',
 4         'password': '321'
 5     }
 6 
 7     """传入请求参数"""
 8     res = requests.post(url, data=data)
 9     # {'code': 200, 'msg': 'success', 'password': '321', 'username': '123'}
10     print(res.json())
11 
12     """查看请求url"""
13     # http://127.0.0.1:8888/passport/user/post_login
14     print(res.url)


其他类型请求


1     r = requests.put('http://httpbin.org/put', data={'key': 'value'}).text
2     r = requests.delete('http://httpbin.org/delete').text
3     r = requests.head('http://httpbin.org/head').text


自定义headers和cookies


1     """自定义headers"""
 2     url = 'https://api.github.com/some/endpoint'
 3     headers = {'user-agent': 'my-app/0.0.1'}
 4 
 5     r = requests.get(url, headers=headers)
 6     # {'message': 'Not Found', 'documentation_url': 'https://developer.github.com/v3'}
 7     print(r.json())
 8 
 9     """自定义cookies"""
10     url = 'http://httpbin.org/cookies'
11     cookies = dict(cookies_are='working')
12     cookies2 = {'cookies_are': 'working'}
13 
14     r = requests.get(url, cookies=cookies)
15     # {'cookies': {'cookies_are': 'working'}}
16     print(r.json())


SSL 证书验证


image.png

当发送请求如果报以上错误时,可以在请求方法里加多一个字段 verify=False ,就可以解决此问题;此操作是为了免去验证步骤

url = 'https://www.imooc.com'

res = requests.get(url, verify=False)

 

响应内容


注意:当调用 json() 时,确保响应内容是json格式字符串,否则会报错

1     url = 'http://127.0.0.1:8888/passport/user/login'
 2     param = {
 3         'username': '123',
 4         'password': '321'
 5     }
 6     res = requests.get(url, params=param)
 7     print('请求url: ' + res.url)
 8     print('响应内容 json格式: ' + json.dumps(res.json()))
 9     print('响应内容 字符串格式: ' + res.text)
10     print('响应内容 二进制格式: ' + str(res.content))
11     print('响应码: ' + str(res.status_code))


获取header

注意:headers里面的key是大小写不敏感的

>>> r.headers['Content-Type']
'application/json'
>>> r.headers.get('content-type')
'application/json'


获取cookies

>>> r.cookies['example_cookie_name']
'example_cookie_value'
相关文章
|
24天前
|
C语言 Python
python 调用c接口
【10月更文挑战第12天】 ctypes是Python的一个外部库,提供和C语言兼容的数据类型,可以很方便地调用C DLL中的函数
40 0
|
30天前
|
Web App开发 前端开发 JavaScript
探索Python科学计算的边界:利用Selenium进行Web应用性能测试与优化
【10月更文挑战第6天】随着互联网技术的发展,Web应用程序已经成为人们日常生活和工作中不可或缺的一部分。这些应用不仅需要提供丰富的功能,还必须具备良好的性能表现以保证用户体验。性能测试是确保Web应用能够快速响应用户请求并处理大量并发访问的关键步骤之一。本文将探讨如何使用Python结合Selenium来进行Web应用的性能测试,并通过实际代码示例展示如何识别瓶颈及优化应用。
94 5
|
1月前
|
测试技术 持续交付 Apache
Python性能测试新风尚:JMeter遇上Locust,性能分析不再难🧐
【10月更文挑战第1天】Python性能测试新风尚:JMeter遇上Locust,性能分析不再难🧐
110 3
|
3天前
|
Java 测试技术 持续交付
【入门思路】基于Python+Unittest+Appium+Excel+BeautifulReport的App/移动端UI自动化测试框架搭建思路
本文重点讲解如何搭建App自动化测试框架的思路,而非完整源码。主要内容包括实现目的、框架设计、环境依赖和框架的主要组成部分。适用于初学者,旨在帮助其快速掌握App自动化测试的基本技能。文中详细介绍了从需求分析到技术栈选择,再到具体模块的封装与实现,包括登录、截图、日志、测试报告和邮件服务等。同时提供了运行效果的展示,便于理解和实践。
20 4
【入门思路】基于Python+Unittest+Appium+Excel+BeautifulReport的App/移动端UI自动化测试框架搭建思路
|
6天前
|
测试技术 持续交付 Apache
Python性能测试新风尚:JMeter遇上Locust,性能分析不再难🧐
Python性能测试新风尚:JMeter遇上Locust,性能分析不再难🧐
19 3
|
4天前
|
缓存 测试技术 Apache
告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
14 1
|
13天前
|
JSON 测试技术 持续交付
自动化测试与脚本编写:Python实践指南
自动化测试与脚本编写:Python实践指南
17 1
|
4天前
|
Web App开发 测试技术 数据安全/隐私保护
自动化测试的魔法:使用Python进行Web应用测试
【10月更文挑战第32天】本文将带你走进自动化测试的世界,通过Python和Selenium库的力量,展示如何轻松对Web应用进行自动化测试。我们将一起探索编写简单而强大的测试脚本的秘诀,并理解如何利用这些脚本来确保我们的软件质量。无论你是测试新手还是希望提升自动化测试技能的开发者,这篇文章都将为你打开一扇门,让你看到自动化测试不仅可行,而且充满乐趣。
|
28天前
|
JSON 算法 数据可视化
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
这篇文章是关于如何通过算法接口返回的目标检测结果来计算性能指标的笔记。它涵盖了任务描述、指标分析(包括TP、FP、FN、TN、精准率和召回率),接口处理,数据集处理,以及如何使用实用工具进行文件操作和数据可视化。文章还提供了一些Python代码示例,用于处理图像文件、转换数据格式以及计算目标检测的性能指标。
52 0
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
|
1月前
|
缓存 测试技术 Apache
告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
【10月更文挑战第1天】告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
57 4
下一篇
无影云桌面