python rest api 测试_如何用Python编写REST API的单元测试
在过去的几个月中,正在从事一个名为B的项目。它是带有简单Web
UI的徽章生成器,用于添加数据并生成PDF可打印徽章。B后端现在已转移到REST-API并测试REST-API中使用的功能,我们需要一些测试技术来测试API中使用的每个功能。为了我们的目的,我们选择了流行的单元测试
Python测试套件。在此,将讨论如何编写单元测试来测试B REST-API。
首先,让我们了解什么是单元测试以及为什么选择它。然后,我们将继续为B编写API测试。这些测试具有通用的结构,因此我提到的代码可以在其他REST
API测试方案中正常工作,而无需做任何改动。让我们开始并逐步了解API测试。
什么是单元测试?
单元测试是一个Python单元测试框架,它支持测试自动化,共享测试的设置和关闭代码,将测试聚合到集合中以及使测试脱离报告框架。所述单元测试模块提供类,可以很容易地支持这些品质为一组测试。
为什么要进行单元测试?
我们从单元测试中获得了两个主要好处,其中大部分价值都体现在第一个方面:
· 指导您的设计松耦合并充实。如果进行测试驱动的开发,它会将您编写的代码限制为仅需要的内容,并帮助您逐步开发该代码。
· 为重构和代码的少量更改提供快速的自动化回归。
· 单元测试还为您提供了有关系统的小部分工作原理的实时文档。
我们应该始终努力编写涵盖工作代码的全面测试。
现在,这是我如何在B的REST-API后端中编写用于测试代码的单元测试的一瞥。使用单元测试python包和请求模块,我们可以在测试自动化中测试REST
API。
下面是我在其中一个pull请求中编写了单元测试的代码段。
def输出(response_type,消息,download_link):
如果download_link ==”:
response = [
{
'type':response_type,
'message':message
}
]
else:
response = [
{
'type':response_type,
'message':消息,
“ download_link”:download_link
}
]
返回jsonify({'response':response})
为了测试这个功能,我基本上创建了一个模拟对象,它可以模拟以可控的方式真实对象的行为,所以在这种情况下,模拟对象可以模拟输出功能和回报行为的东西像一个JSON响应没有击中真实REST
API。现在,下一个挑战是解析JSON响应,并将响应JSON的特定值提供给Python自动化脚本。因此,Python将JSON作为字典对象读取,并且它确实简化了需要解析和使用JSON的方式。
#!/ usr / bin / env python3
“”“基本功能测试”””
import sys
import json
import unittest
来自app.main import的sys.path.append(“ ../ ..”)*
class TestFunctions(unittest.TestCase):
“”“客户端方法的测试用例。”””
def setup(self):
app.app.config ['TESTING'] = True
self.app = app.app.test_client()
#测试输出函数
def test_output(self):
使用app.test_request_context():
#模拟对象
out = output('错误','测试错误','本地主机')
#传递模拟对象
响应= [
{
'类型' :'error',
'message':'Test Error',
'download_link':'local_host'
}
]
数据= json.loads(out.get_data(as_text = True)
#声明响应
self.assertEqual(data ['response'],response)
如果__name__ =='__main__':
unittest.main()
最后,我们可以通过运行试行测试来验证一切正常 。
这就是在B项目中存储库中编写单元测试的方式。
上述就是关于如何用Python编写REST API的单元测试全部内容,想了解更多关于Python的信息,请继续关注中培教育。
python rest api 测试_如何用Python编写REST API的单元测试相关推荐
- python 文本翻译 项目_如何用python批量翻译文本?
首先,看一下百度翻译的官方api文档. http://api.fanyi.baidu.com/api/trans/product/apidoc # coding=utf-8 #authority:bi ...
- python 矩阵运算 for循环_如何用 Python 科学计算中的矩阵替代循环
展开全部 因为在Mathematica中使用循环确实是低效的.32313133353236313431303231363533e78988e69d8331333361313961..... 深层次的原 ...
- python搭建自动化测试平台_如何用python语言搭建自动化测试环境
原标题:如何用python语言搭建自动化测试环境 技术分享:基于Python语言的Web自动化测试环境搭建 近期发现很多初学者在学习自动化的过程当中,在环境安装环节总是出现问题,所以详细的出一篇环境搭 ...
- python编程代码画画_如何用python编写一个绘制马赛克图像的自写程序
Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发. 这篇教程将会展示如何用python的图形化包"Pygame"和基础的文件I/O来创建一 ...
- python智能合约编程_如何用Python Flask开发以太坊智能合约
将数据存储在数据库中是任何软件应用程序不可或缺的一部分.无论如何控制该数据库都有一个该数据的主控.区块链技术将数据存储到区块链网络内的区块中.因此,只要某个节点与网络同步,它们就会获得区块中数据的副本 ...
- python爬虫抢火车票_如何用python写一个简单的12306抢票软件|python 爬火车票 教程...
python 如果抓取验证码图片 类似12306的登录验证码图片 这个以前做次.最大的麻烦是码的识别算法的识别率太低.12306那种网站登陆错3次就限制你20分钟.所以除非你有33%以上的识别率否则不 ...
- python 登陆淘宝_如何用 Python 自动登录淘宝并保存登录信息?
原标题:如何用 Python 自动登录淘宝并保存登录信息? 作者 | 猪哥 责编 | 伍杏玲 前段时间时间为大家讲解了如何使用requests库模拟登录淘宝,而今天我们将对该功能进行丰富.所以我们把之 ...
- 如何制作python检查小软件_如何用Python制作整蛊小程序
原标题:如何用Python制作整蛊小程序 下面的整蛊程序,千万不要发代码,否则就实现不了你整蛊的目的了.完成后一定要打包成一个exe程序,再发给朋友使用 . 1. 使用 pip install pyi ...
- python的out模式_如何用python中的DataFrame列的模式替换NA值?
我对Python(和本网站)完全陌生,目前正试图用它们的模式替换特定数据帧列中的NA值.我试过了各种不起作用的方法.请帮我看看我做错了什么:如何用python中的DataFrame列的模式替换NA值? ...
最新文章
- 设置centos默认启动命令行(不启动图形界面)
- 用Docker搭建PHP开发环境
- [Firebug]用来武装Firebug的十三款Firefox插件
- 面试官绝杀:系统是如何支撑高并发的?
- QT的QSignalBlocker类的使用
- ionic入门教程第五课-举例子说明异步回调$q及$q在项目中的用法
- Java多线程_生产者消费者模式1
- 【原创】在Windows 环境下利用SVN和Apache以及Ankh配置源代码管理服务
- MyCat基于MySQL实现主从切换
- 9 个免费的程序员在线简历制作工具
- ENVI:如何进行遥感图像的分类?(支持向量机模型)
- 利用JD-GUI寻找JAR内部依赖
- jcp jsr_JCP专家组成员拒绝社交媒体API引发了关于创新的辩论
- mybatis开启日志打印
- 关于STM32 程序烧录不进去
- html页面长按保存图片,h5长按保存图片
- 车牌归属地数据信息sql
- delete adjacent duplicates from用法(以某个关键字删除相邻重复行的数据)
- python音频分析工具_Python对音频进行测试及频谱分析
- 乐视视频”剧“好看 2016海量剧集精彩来袭