脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|shell|

服务器之家 - 脚本之家 - Python - Python自动化实战之接口请求的实现

Python自动化实战之接口请求的实现

2023-02-22 12:04渴望力量的哈士奇 Python

本文为大家重点介绍如何通过 python 编码来实现我们的接口测试以及通过Pycharm的实际应用编写一个简单接口测试,感兴趣的可以了解一下

在前文说过,如果想要更好的做接口测试,我们要利用自己的代码基础与代码优势,所以该章节不会再介绍商业化的、通用的接口测试工具,重点介绍如何通过 python 编码来实现我们的接口测试以及通过 Pycharm 的实际应用编写一个简单接口测试。

 

使用 Python 发送 请求

应为从最开始写这个 Python全栈系列 一直使用的就是 python3.x (这里我使用的是 python 3.8 版本) ,实际上 python 3 本身自带的就有能够实现发送请求的模块:

  • http.client
  • urllib.request

Python 发送请求的方式

以上两个都可以实现发送 http 请求,也就是说它们都可以帮助我们完成接口测试。不过相对于来说它们更偏向于底层,需要更多的定义,所以在使用上面比较的麻烦;

在实际的工作中,使用的更多的反而是第三方库 resuests ,为什么会选择使用 resuests ?那是因为它是经过二次集成、二次封装的,它能够让我们发送请求变得更简单,支持编码、解码、会话保持、长链接、可以加载 Header等等等等。

这也是我们使用 Python 做接口测试的一个首选方式,接下来就学习一下如何安装并使用 requests 库 吧。

requests 库的配置

安装 Requests 库 其实也非常的简单,直接在 terminal 终端 执行 pip install requests , 见下图:

Python自动化实战之接口请求的实现

也可以通过设置中心去安装,在 Windows 系统,选择的是 File --> Settings... ,Mac 系统选择的是 PyCharm --> Preferences... 如下图:

Python自动化实战之接口请求的实现

如果安装失败,或者安装超时,可以换一个国内的源地址,或者考虑一下 ke xue shang wang 吧。

天行数据 - 空气质量接口

从天行数据网站可以找到公开的 空气质量接口,通过该接口,可以免费查询全国各地城市的空气质量。

API详情如下:

接口地址:http://web.juhe.cn/environment/air/cityair

**返回格式:**json

**请求方式:**get

请求示例:http://web.juhe.cn/environment/air/cityair?city=城市名称&key=您申请的APPKEY值

请求参数说明:

参数 是否必填项 类型 说明
city yes string 城市名称的中文名称或拼音,如:上海 或 shanghai
key yes string APP key (注册之后申请该接口的使用,自动生成一个key)

Python自动化实战之接口请求的实现

返回参数说明:

名称 类型 说明
citynow JSONObject 当前城市的空气质量的最新结果
lastTwoWeeks JSONObject 最近几周的空气质量数据(4周28天)
lastMoniData JSONObject 各监测点的数据,如果字段返回"—",可能是该监测点未监测这项数据或者有延迟

利用 requests 发送查询 空气质量接口 请求

实现发送请求的三步:

1、组装请求 (包含 url 、请求的参数、请求的数据、 headers、cookies等等)

2、发送请求,获取响应

3、解析响应、获取到想要的文本

代码示例如下:

# coding:utf-8

import requests

'''
天行空气质量接口:
  get:http://web.juhe.cn/environment/air/cityair?city=城市名称&key=您申请的APPKEY值
'''

url = "http://web.juhe.cn/environment/air/cityair?city=shanghai&key=98a470ea50853d3e698b2dfea09ae079"	# 定义url

result = requests.get(url)		# 使用 requests 包的 get 方法获取响应结果

print(result.text)				# 打印输出 result 的文字解析

运行结果如下:

Python自动化实战之接口请求的实现

url 还支持 param 等一些信息,所以我们在组装url的时候,还可以不用像上图中那样直接去定义;可以单独定义一个 param ,以字典的形式写入我们要传入的内容。代码示例如下:

PS:"param" 就是 get 请求方法的 "url" 问号后面的内容,示例:"http://web.juhe.cn/environment/air/cityair?city=城市名称&key=您申请的APPKEY值"

# coding:utf-8
import requests

'''
天行空气质量接口:
  get:http://web.juhe.cn/environment/air/cityair?city=城市名称&key=您申请的APPKEY值
'''

# url = "http://web.juhe.cn/environment/air/cityair?city=shanghai&key=98a470ea50853d3e698b2dfea09ae079"
url = "http://web.juhe.cn/environment/air/cityair"		# 定义url	

param = {"key": "98a470ea50853d3e698b2dfea09ae079", "city": "shanghai"}		# 定义param

result = requests.get(url=url, params=param)		# 使用 requests 包的 get 方法获取响应结果

print(result.text)									# 打印输出 result 的文字解析

运行结果如下:

Python自动化实战之接口请求的实现

接下来再尝试一下通过 psot 方法,运行的结果会怎么样。

代码示例如下:

# coding:utf-8
import requests

'''
天行空气质量接口:
  get:http://web.juhe.cn/environment/air/cityair?city=城市名称&key=您申请的APPKEY值
'''

# url = "http://web.juhe.cn/environment/air/cityair?city=shanghai&key=98a470ea50853d3e698b2dfea09ae079"
url = "http://web.juhe.cn/environment/air/cityair"		# 定义url

# param = {"key": "98a470ea50853d3e698b2dfea09ae079", "city": "shanghai"}	# "param" 就是 get 请求方法的 "url" 问号后面的内容
data = {"key": "98a470ea50853d3e698b2dfea09ae079", "city": "shanghai"}		# data 的内容才是 post 方法里需要传入的参数

# result = requests.get(url=url, params=param)
result = requests.post(url=url, data=data)			# 使用 requests 包的 post 方法获取响应结果

print(result.text)		# 打印输出 result 的文字解析

运行结果如下:

Python自动化实战之接口请求的实现

这里会发现结果与 get 方法是一致的,其实想要测试个简单的接口其实一点都不复杂… 对不对? 再接下来就准备开始一套完整的测试自动化测试的实现吧

以上就是Python自动化实战之接口请求的实现的详细内容,更多关于Python接口请求的资料请关注服务器之家其它相关文章!

原文链接:https://blog.csdn.net/weixin_42250835/article/details/125047279

延伸 · 阅读

精彩推荐
  • Python使用pandas对两个dataframe进行join的实例

    使用pandas对两个dataframe进行join的实例

    今天小编就为大家分享一篇使用pandas对两个dataframe进行join的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    lsq_0087782021-03-02
  • PythonPython自动化测试ConfigParser模块读写配置文件

    Python自动化测试ConfigParser模块读写配置文件

    本文主要介绍Python自动化测试,这里详细说明了ConfigParser模块读写配置文件,有兴趣的小伙伴可以参考下...

    肖佳5592020-09-04
  • Python使用python批量生成insert语句的方法

    使用python批量生成insert语句的方法

    很多时候需要造数据,大量的插入数据,本文介绍了使用python批量生成insert语句的方法,需要的朋友们下面随着小编来一起学习学习吧...

    小耗子的测试日记8202021-11-14
  • Python一文详解如何创建自己的Python装饰器

    一文详解如何创建自己的Python装饰器

    python装饰器在平常的python编程中用到的还是很多的,本篇文章中我们将来介绍一下python中最常使用的@staticmethod装饰器的使用,感兴趣的可以了解一下...

    Python 集中营7092022-09-04
  • PythonPython2实现的图片文本识别功能详解

    Python2实现的图片文本识别功能详解

    这篇文章主要介绍了Python2实现的图片文本识别功能,结合实例形式分析了Python pytesser库的安装及使用pytesser库识别图片文字相关操作技巧,需要的朋友可以参...

    antchow-12562021-03-16
  • PythonPython可视化神器pyecharts绘制漏斗图

    Python可视化神器pyecharts绘制漏斗图

    这篇文章主要介绍了Python可视化神器pyecharts绘制漏斗图,漏斗图是由Light等在1984年提出,一般以单个研究的效应量为横坐标,样本含量为纵坐标做的散点图...

    王小王_1238822022-07-06
  • PythonPython库 Bokeh 数据可视化实用指南

    Python库 Bokeh 数据可视化实用指南

    大家好,今天跟大家分享的是交互式可视化神器 Python Bokeh 的详细使用教程,Bokeh是一个面向现代web浏览器的交互式可视化库。它提供了多功能图形的优雅、...

    Python学习与数据挖掘9662022-03-07
  • PythonPython使用遗传算法解决最大流问题

    Python使用遗传算法解决最大流问题

    这篇文章主要为大家详细介绍了Python使用遗传算法解决最大流问题,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    ZJun3106032021-01-10