接口测试 23 requests基础入门二
Posted 开源优测
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了接口测试 23 requests基础入门二相关的知识,希望对你有一定的参考价值。
概述
继续requests基础分享,本文主要分享以下内容:
请求头定制
POST请求
请求头定制示例
在requests中想要为请求添加自定义头信息,只需要简单的传入一个dict(即python字典类型对象)即可。
下面我们看一个简单的示例:
#-*- coding:utf-8 -*-__author__ = "苦叶子"# 导入模块import requestsif __name__ == "__main__": print("开源优测 - requests自定义请求头基本示例") url = "http://www.baidu.com" # 定义自定义请求头数据 headers = { "user-agent": "www.testingunion.com", "custom-head": "DeepTest" } # 发送带自定义头的请求 r = requests.get(url, headers=headers)
将上述代码保存至requests_headers_demo.py中,执行以下命令:
注:所有的header值必须是string、bytestring或unicode,虽然传递unicode header是允许的,但不建议这样做
python requests_headers_demo.py
在运行上述命令前,先启动wireshark,用来抓取报文,看下我们自定义的headers是否正常被设置。
抓取的报文如下:
从报文来看,我们的设置是成功的,这说明了requests的机制是多么的简洁有效。
POST请求示例
下面我们看看requests如何发送HTTP POST请求的。
基本示例
#-*- coding:utf-8 -*-
__author__ = "苦叶子"
import requests
if __name__ == "__main__": print("requests post示例")
# 目标url url = "http://httpbin.org/post" # 请求头headers headers = {"custom-header": "mypost"}
# 要post的数据 data = {"data_1": "deeptest", "data_2": "testingunion.com"}
# 发送post请求 r = requests.post(url, data=data, headers=headers)
# 输出结果 print(r.text)
将上述代码保存到requests_post_demo.py中,执行下述命令运行:
python requests_post_demo.py
用wireshark抓取上述自定义了header和data的报文如下:
post json数据示例
下面我们看看如何postjson数据到服务。
#-*- coding:utf-8 -*-
__author__ = "苦叶子"
import requests
if __name__ == "__main__": print("requests post json数据示例")
# 目标服务url url = "http://jsonplaceholder.typicode.com/posts" # 自定义头 headers = {
"custom-post": "my-post",
"custom-header": "my-json-header" }
# 要post的数据 json_data = {
"title": "deeptest",
"body": "开源优测",
"userId": "1" }
# post json格式的数据 r = requests.post(url, json=json_data, headers=headers)
# 打印下返回结果 print(r.text)
将上述代码保存到requests_post_json_demo.py中,执行下述命令运行:
python requests_post_json_demo.py
对上述代码执行,使用wireshark对http报文进行抓包如下:
开源优测
分享软件测试开源技术、经验、方案的首发平台
长按二维码/微信扫描 关注开源优测
苦叶子私人微信:liyimin1912
有问题,可留言或加好友进微信群
苦叶子原创文章首发平台
以上是关于接口测试 23 requests基础入门二的主要内容,如果未能解决你的问题,请参考以下文章
Python+Requests接口测试教程:Fiddler抓包工具