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'
相关文章
|
5月前
|
设计模式 前端开发 测试技术
告别脆弱:构建稳定UI自动化测试的3个核心策略
告别脆弱:构建稳定UI自动化测试的3个核心策略
575 113
|
5月前
|
JSON API 数据安全/隐私保护
Python采集淘宝拍立淘按图搜索API接口及JSON数据返回全流程指南
通过以上流程,可实现淘宝拍立淘按图搜索的完整调用链路,并获取结构化的JSON商品数据,支撑电商比价、智能推荐等业务场景。
|
6月前
|
缓存 监控 算法
唯品会item_search - 按关键字搜索 VIP 商品接口深度分析及 Python 实现
唯品会item_search接口支持通过关键词、分类、价格等条件检索商品,广泛应用于电商数据分析、竞品监控与市场调研。结合Python可实现搜索、分析、可视化及数据导出,助力精准决策。
|
6月前
|
机器学习/深度学习 人工智能 测试技术
EdgeMark:嵌入式人工智能工具的自动化与基准测试系统——论文阅读
EdgeMark是一个面向嵌入式AI的自动化部署与基准测试系统,支持TensorFlow Lite Micro、Edge Impulse等主流工具,通过模块化架构实现模型生成、优化、转换与部署全流程自动化,并提供跨平台性能对比,助力开发者在资源受限设备上高效选择与部署AI模型。
590 9
EdgeMark:嵌入式人工智能工具的自动化与基准测试系统——论文阅读
|
6月前
|
缓存 监控 算法
苏宁item_get - 获得商品详情接口深度# 深度分析及 Python 实现
苏宁易购item_get接口可实时获取商品价格、库存、促销等详情,支持电商数据分析与竞品监控。需认证接入,遵守调用限制,适用于价格监控、销售分析等场景,助力精准营销决策。(238字)
|
6月前
|
自然语言处理 前端开发 测试技术
使用 Playwright MCP 实现 UI 自动化测试
本文介绍如何结合Playwright与MCP协议实现智能化UI自动化测试。通过自然语言指令控制浏览器,降低技术门槛,提升效率,并涵盖环境搭建、核心功能、实战案例及最佳实践,展现对话式自动化的未来趋势。
|
6月前
|
监控 算法 数据安全/隐私保护
唯品会 item_get - 获得 VIP 商品详情接口深度分析及 Python 实现
唯品会item_get接口通过商品ID获取商品详情,支持价格、库存、促销等数据抓取,适用于电商分析、竞品监控与价格追踪,结合Python实现可高效完成数据获取、分析与可视化,助力精准营销决策。
|
6月前
|
JSON 缓存 供应链
电子元件 item_search - 按关键字搜索商品接口深度分析及 Python 实现
本文深入解析电子元件item_search接口的设计逻辑与Python实现,涵盖参数化筛选、技术指标匹配、供应链属性过滤及替代型号推荐等核心功能,助力高效精准的电子元器件搜索与采购决策。

推荐镜像

更多