python接口自动化发送get请求 详解

Posted qastudy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python接口自动化发送get请求 详解相关的知识,希望对你有一定的参考价值。

前言:接口自动化实现自动化脚本比较稳定,主要用到requests模块,后面我会把这个模块单独拉出来写一下。

一、环境安装

1.用pip安装requests模块

>>pip install requests

注意:pip很容易就会版本升级,

  方法1:检测并更新

pip list –outdated

  方法2:

    ♦先卸载:

pip uninstall packagename

    ♦在用:easy_install.exe安装

easy_install.exe pip

技术图片

二、get请求

  ♦1.导入requests后,用get方法就能直接访问url地址,如:http://open.juhe.cn/#page1,看起来是不是很酷

  ♦2.这里的r也就是response,请求后的返回值,可以调用response里的status_code方法查看状态码

  ♦3.状态码200只能说明这个接口访问的服务器地址是对的,并不能说明功能OK,一般要查看响应的内容,response .text是返回文本信息

 输入代码:

import requests#导入request模块
url = ‘http://open.juhe.cn/#page1‘
response = requests.get(url)#用导入的request模块的get方法访问URL
print(response.status_code)#调用response里的status_code方法查看状态码
print(response.text)#调用response里的text #字符串方式的响应体,会自动根据响应头部的字符编码进行解码

输出结果:

技术图片

三、发送带有params(参数)的get请求

  ♦1.再发一个带参数的get请求,如在百度中搜:聚合数据网,url地址为:https://read.douban.com/search?q=斗破苍穹

  ♦2.请求参数:q=斗破苍穹,可以以字典的形式传参:"q": "斗破苍穹"

  ♦3.多个参数格式:"key1": "value1", "key2": "value2", "key3": "value3"

  ♦4.发送请求格式是:URL+参数:实例:requests.get(url=url,params=params1)

代码输入:

import requests#导入request模块
url = r‘https://read.douban.com/search‘
params1 = "q":"斗破苍穹"
response = requests.get(url=url,params=params1)#用导入的request模块的get方法访问URL,并在后面加上参数
print(response.status_code)#调用response里的status_code方法查看状态码
print(response.text)#调用response里的text #字符串方式的响应体,会自动根据响应头部的字符编码进行解码

输出结果:

技术图片

 

技术图片

 

四、content

  ♦1.百度首页如果用r.text会发现获取到的内容有乱码,因为百度首页响应内容是gzip压缩的(非text文本)

技术图片

  ♦2.如果是在fiddler工具乱码,是可以点击后解码的,在代码里面可以用r.content这个方法,content会自动解码 gzip 和deflate压缩

技术图片

 

五、response

  ♦1.response的返回内容还有其它更多信息

  -- r.status_code     #响应状态码
  -- r.content           #字节方式的响应体,会自动为你解码 gzip 和 deflate 压缩
  -- r.headers          #以字典对象存储服务器响应头,但是这个字典比较特殊,字典键不区分大小写,若键不存在则返回None
  -- r.json()             #Requests中内置的JSON解码器
  -- r.url                  # 获取url
  -- r.encoding         # 编码格式
  -- r.cookies           # 获取cookie
  -- r.raw                #返回原始响应体
  -- r.text               #字符串方式的响应体,会自动根据响应头部的字符编码进行解码
  -- r.raise_for_status() #失败请求(非200响应)抛出异常

代码如下:

 

技术图片
import requests#导入request模块
url = r‘https://read.douban.com/search‘
params1 = "q":"斗破苍穹"
response = requests.get(url=url,params=params1)#用导入的request模块的get方法访问URL,并在后面加上参数
print(response.status_code)#调用response里的status_code方法查看状态码
print(response.headers)   #以字典对象存储服务器响应头,但是这个字典比较特殊,字典键不区分大小写,若键不存在则返回None
print(response.content)#字节方式的响应体,会自动为你解码 gzip 和 deflate 压缩
#print(response.json())     #Requests中内置的JSON解码器
print(response.url)      # 获取url
print(response.cookies)  # 获取cookie
print(response.encoding) # 编码格式
print(response.raw)  #返回原始响应体
print(response.text)#调用response里的text #字符串方式的响应体,会自动根据响应头部的字符编码进行解码
#print(response.raise_for_status()) #失败请求(非200响应)抛出异常
技术图片

 

输出结果如下:

技术图片

 

以上是关于python接口自动化发送get请求 详解的主要内容,如果未能解决你的问题,请参考以下文章

Python接口自动化测试之详解post请求

python接口自动化1-发送get请求

python接口自动化1-发送get请求

python接口自动化1-发送get请求转载

python+requests接口自动化2. 发送get请求与post请求(包含json格式的请求)

python+requests接口自动化2. 发送get请求与post请求(包含json格式的请求)