接口测试 | 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
- Kafka剖析系列之Consumer解析
- android之View绘制
- 高性能JavaScript-JS脚本加载与执行对性能的影响
- CSS3伪类和伪元素的特性和区别
- Kafka剖析系列之Benchmark
- 初探React与D3的结合-或许是visualization的新突破?
- Redis 在Centos Linux 上的启动脚本
- 理解JavaScript的临时包装对象
- JavaScript实现私有属性
- 使用LRU算法缓存图片,android 3.0
- 深入理解JavaScript原型:prototype,__proto__和constructor
- Comparable 与 Comparator 浅析
- 必应首页平铺背景图片的实现方案
- 我们是如何优化HAProxy以让其支持200万个并发SSL连接的?
- 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 数组属性和方法