接口测试 | 24 requests + unittest集成你的接口测试
时间:2022-05-07
本文章向大家介绍接口测试 | 24 requests + unittest集成你的接口测试,主要内容包括测试接口、示例、运行结果、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。
概述
本文就如何结合requests、unittest进行实例演示,如果你还不了解unittest、PO模型,请翻阅公众号前期发布的unittest专题和PO模型专题文章。
测试接口
你可以从以下链接获取到我们实例中用到的接口:
http://jsonplaceholder.typicode.com
注意: 因该服务在海外,请勿持续请求该服务的接口。
如果你有需要可以下载对应的服务包,部署到本地来进行测试。
示例
#-*- coding:utf-8 -*-
__author__ = "苦叶子"
import requests
import unittest
## 测试用例
class JsonPlaceTest(unittest.TestCase):
# 初始化
def setUp(self):
self.url = "http://jsonplaceholder.typicode.com"
self.session = requests.session()
# 测试获取所有用户信息接口
def test_get_posts(self):
r = self.session.get(self.url + "/posts")
# 断言状态码
self.assertEqual(r.status_code, 200)
# 断言响应头信息
self.assertEqual(r.headers["Content-Type"],
"application/json; charset=utf-8")
# 断言用户总数
self.assertEqual(len(r.json()), 100)
# 测试获取指定用户信息接口
def test_get_posts_by_id(self):
r = self.session.get(self.url + "/posts/1")
# 断言状态码
self.assertEqual(r.status_code, 200)
# 断言响应头信息
self.assertEqual(r.headers["Content-Type"],
"application/json; charset=utf-8")
# 验证用户id
data = r.json()
self.assertEqual(data["userId"], 1)
# 测试删除指定用户信息接口
def test_delete_posts_by_id(self):
r = self.session.delete(self.url + "/posts/1")
# 断言状态码
self.assertEqual(r.status_code, 200)
# 断言响应头信息
self.assertEqual(r.headers["Content-Type"],
"application/json; charset=utf-8")
# 清理
def tearDown(self):
if self.session:
self.session.close()
if __name__ == "__main__":
print("requests unittest接口测试实例")
unittest.main()
运行结果
D:writing>python d:/writing/Python3接口测试/requests_unitttest_demo.py requests unittest接口测试实例 ... Ran 3 tests in 35.529s OK
- JavaScript之JS实现动画效果
- 深入入门系列--Data Structure--04树
- SQL学习之高级联结(自联结、自然联结、外联接)
- ExtJs学习笔记(21)-使用XTemplate结合WCF显示数据
- JavaScript之面向对象的概念,对象属性和对象属性的特性简介
- 快速入门系列--WebAPI--04在老版本MVC4下的调整
- SQL学习之SELECT子句顺序
- [图解]sqlserver中创建链接服务器
- 人工智能时代来临,还在炫耀孩子能考100分?
- 2017:谷歌DeepMind团队的年度回顾
- SQL学习之组合查询(UNION)
- 微信小程序版2048小游戏(附源码)
- SQL学习之去重复查询
- SQL学习之学会使用子查询
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- C++ 智能指针
- python实现线性回归之lasso回归
- 分页查询 offset 和 limit 和 limit 的区别
- mybatis文件映射之获取参数值时#和$的区别
- python实现线性回归之岭回归
- 操作系统实验之存储管理
- MySQL EXPLAIN 的使用
- mybatis文件映射之关联查询初探(一)
- python实现线性回归之弹性网回归
- 【原创】python倒排索引之查找包含某主题或单词的文件
- python实现逻辑回归
- Linux文件管理参考
- CloudBase Framework丨第一个 Deno 部署工具是如何打造的?
- 关于null通过+" ",String.ValueOf转换为字符串的问题!!!
- Java实现尺取法