如何使用Python Pytest进行接口自动化测试中的requests库发送GET请求?

2026-05-22 20:432阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1039个文字,预计阅读时间需要5分钟。

Python中,用于请求HTTP接口的有自带库urllib和第三方库requests。虽然urllib用法简单,但写法略显繁琐,因此在进行接口自动化测试过程中,通常使用更为简洁且功能强大的requests库。下面我们使用requests库进行示例。

python中用于请求www.cnblogs.com/lfr0123/") # 请求得到的res是一个Response对象,如果想要看到返回的文本内容,需要使用.text print(res.text) 带参数请求

import requests url = "www.baidu.com/s" params = {"wd": "给你一页白纸-自由互联", "ie": "utf-8"} res = requests.get(url=url, params=params) print(res.text) 加入请求头headers

有些接口限制只能被浏览器访问,这时按照上面的代码去请求就会被禁止,我们可以在代码中加入 headers 参数伪装成浏览器进行接口请求,示例如下:

import requests url = "www.baidu.com/s" params = {"wd": "给你一页白纸-自由互联", "ie": "utf-8"} # User-Agent的值为浏览器类型 headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.82 Safari/537.36" } res = requests.get(url=url, params=params, headers=headers) print(res.text)

部分结果如下:

这里的响应体其实就是在百度中搜索给你一页白纸-自由互联的结果页面。

除此之外,还可以加入timeout、cookies等,写法如下:

# timeout只限制请求的超时时间,单位为s,若超时则报错 res = requests.get(url=url, params=params, headers=headers, timeout=20, cookies=cookies) 响应内容

发送请求后会获取到接口响应的内容,如上面示例中res.text,其他响应内容获取方式如下:

res.status_code # 响应状态码 res.headers # 响应头 res.encoding # 响应体编码格式 res.text # 响应体,字符串形式的文本信息 res.content # 响应体,二进制形式的文本信息,会自动解码 res.cookies # 响应的cookie res.json() # 响应体格式为json,则需要通过json()进行解码

这里需要注意,res.textres.content的使用,具体使用哪种方式获取响应体内容,需要根据编码方式进行选择,最笨的方法就是一种不行换另一种试试。

示例如下:

import requests url = "www.baidu.com/s" params = {"wd": "给你一页白纸-自由互联", "ie": "utf-8"} # User-Agent的值为浏览器类型 headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.82 Safari/537.36" } res = requests.get(url=url, params=params, headers=headers) print(res.text) print(res.status_code) print(res.headers) print(res.encoding) print(res.cookies)

结果如下:

结果中由上而下依次对应代码中print的响应内容。

本文作者:给你一页白纸 版权申明:本博客所有文章除特殊声明外,均采用BY-NC-SA 许可协议。转载请注明出处! 声援博主:如果觉得这篇文章对您有帮助,请点一下右下角的 “推荐” 图标哦,您的 “推荐” 是我写作的最大动力。您也可以点击下方的 按钮,关注博主不迷路。

本文共计1039个文字,预计阅读时间需要5分钟。

Python中,用于请求HTTP接口的有自带库urllib和第三方库requests。虽然urllib用法简单,但写法略显繁琐,因此在进行接口自动化测试过程中,通常使用更为简洁且功能强大的requests库。下面我们使用requests库进行示例。

python中用于请求www.cnblogs.com/lfr0123/") # 请求得到的res是一个Response对象,如果想要看到返回的文本内容,需要使用.text print(res.text) 带参数请求

import requests url = "www.baidu.com/s" params = {"wd": "给你一页白纸-自由互联", "ie": "utf-8"} res = requests.get(url=url, params=params) print(res.text) 加入请求头headers

有些接口限制只能被浏览器访问,这时按照上面的代码去请求就会被禁止,我们可以在代码中加入 headers 参数伪装成浏览器进行接口请求,示例如下:

import requests url = "www.baidu.com/s" params = {"wd": "给你一页白纸-自由互联", "ie": "utf-8"} # User-Agent的值为浏览器类型 headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.82 Safari/537.36" } res = requests.get(url=url, params=params, headers=headers) print(res.text)

部分结果如下:

这里的响应体其实就是在百度中搜索给你一页白纸-自由互联的结果页面。

除此之外,还可以加入timeout、cookies等,写法如下:

# timeout只限制请求的超时时间,单位为s,若超时则报错 res = requests.get(url=url, params=params, headers=headers, timeout=20, cookies=cookies) 响应内容

发送请求后会获取到接口响应的内容,如上面示例中res.text,其他响应内容获取方式如下:

res.status_code # 响应状态码 res.headers # 响应头 res.encoding # 响应体编码格式 res.text # 响应体,字符串形式的文本信息 res.content # 响应体,二进制形式的文本信息,会自动解码 res.cookies # 响应的cookie res.json() # 响应体格式为json,则需要通过json()进行解码

这里需要注意,res.textres.content的使用,具体使用哪种方式获取响应体内容,需要根据编码方式进行选择,最笨的方法就是一种不行换另一种试试。

示例如下:

import requests url = "www.baidu.com/s" params = {"wd": "给你一页白纸-自由互联", "ie": "utf-8"} # User-Agent的值为浏览器类型 headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.82 Safari/537.36" } res = requests.get(url=url, params=params, headers=headers) print(res.text) print(res.status_code) print(res.headers) print(res.encoding) print(res.cookies)

结果如下:

结果中由上而下依次对应代码中print的响应内容。

本文作者:给你一页白纸 版权申明:本博客所有文章除特殊声明外,均采用BY-NC-SA 许可协议。转载请注明出处! 声援博主:如果觉得这篇文章对您有帮助,请点一下右下角的 “推荐” 图标哦,您的 “推荐” 是我写作的最大动力。您也可以点击下方的 按钮,关注博主不迷路。