首页 > 编程语言 >python 用于接口测试测试,举例

python 用于接口测试测试,举例

时间:2024-09-05 12:08:11浏览次数:9  
标签:python self 用户 id 举例 user 测试 response

使用 Python 进行接口测试是一个常见的做法,通常使用 `requests` 库来发送 HTTP 请求,并使用 `unittest` 或 `pytest` 等框架来组织和运行测试。以下是一个简单的示例,展示如何使用 Python 进行接口测试。

### 示例场景

假设我们有一个简单的 RESTful API,提供用户信息的 CRUD 操作。我们将测试以下接口:

- **GET** `/api/users`:获取用户列表
- **POST** `/api/users`:创建新用户
- **GET** `/api/users/{id}`:获取特定用户信息
- **PUT** `/api/users/{id}`:更新特定用户信息
- **DELETE** `/api/users/{id}`:删除特定用户

### 步骤 1: 安装所需库

首先,确保你已经安装了 `requests` 和 `pytest` 库。可以使用以下命令安装:

```bash
pip install requests pytest
```

### 步骤 2: 编写接口测试

以下是一个简单的接口测试示例,使用 `unittest` 框架来组织测试。

```python
import requests
import unittest

class TestUserAPI(unittest.TestCase):

BASE_URL = "http://example.com/api/users"

def test_get_users(self):
"""测试获取用户列表"""
response = requests.get(self.BASE_URL)
self.assertEqual(response.status_code, 200)
self.assertIsInstance(response.json(), list) # 确保返回的是列表

def test_create_user(self):
"""测试创建新用户"""
new_user = {
"name": "John Doe",
"email": "[email protected]"
}
response = requests.post(self.BASE_URL, json=new_user)
self.assertEqual(response.status_code, 201) # 假设创建成功返回 201
self.assertIn("id", response.json()) # 确保返回的 JSON 中包含用户 ID

def test_get_user(self):
"""测试获取特定用户信息"""
user_id = 1 # 假设我们要获取 ID 为 1 的用户
response = requests.get(f"{self.BASE_URL}/{user_id}")
self.assertEqual(response.status_code, 200)
self.assertEqual(response.json()["id"], user_id) # 确保返回的用户 ID 正确

def test_update_user(self):
"""测试更新特定用户信息"""
user_id = 1 # 假设我们要更新 ID 为 1 的用户
updated_user = {
"name": "John Doe Updated",
"email": "[email protected]"
}
response = requests.put(f"{self.BASE_URL}/{user_id}", json=updated_user)
self.assertEqual(response.status_code, 200) # 假设更新成功返回 200
self.assertEqual(response.json()["name"], updated_user["name"]) # 确保名称更新成功

def test_delete_user(self):
"""测试删除特定用户"""
user_id = 1 # 假设我们要删除 ID 为 1 的用户
response = requests.delete(f"{self.BASE_URL}/{user_id}")
self.assertEqual(response.status_code, 204) # 假设删除成功返回 204

if __name__ == "__main__":
unittest.main()
```

### 步骤 3: 运行测试

将上述代码保存为 `test_user_api.py`,然后在命令行中运行以下命令:

```bash
python -m unittest test_user_api.py
```

### 结果分析

- 如果所有测试通过,你将看到类似于以下的输出:

```
.....
----------------------------------------------------------------------
Ran 5 tests in 0.123s

OK
```

- 如果有测试失败,输出将显示失败的测试和相关的错误信息。

### 总结

通过上述示例,你可以看到如何使用 Python 和 `requests` 库进行接口测试。我们使用 `unittest` 框架组织测试用例,确保每个接口的功能正常。你可以根据需要扩展测试用例,添加更多的测试场景和边界条件。

标签:python,self,用户,id,举例,user,测试,response
From: https://www.cnblogs.com/relustarry/p/18398130

相关文章

  • 软件测试学习笔记丨Pytest+Allure测试计算器
    本文转自测试人社区,原文链接:https://ceshiren.com/t/topic/31954项目要求3.1项目简介计算器是近代人发明的可以进行数字运算的机器。计算器通过对加法、减法、乘法、除法等功能的运算,将正确的结果展示在屏幕上。可帮助人们更方便的实现数字运算。一般情况下计算器除显示计算结果......
  • postman 用于接口测试,举例
    Postman是一个非常流行的API测试工具,广泛用于接口测试、调试和文档编写。以下是如何使用Postman进行接口测试的示例,包括创建请求、发送请求、查看响应以及使用测试脚本。###示例场景假设我们有一个简单的RESTfulAPI,提供用户信息的CRUD操作。我们将使用Postman测试以......
  • 都说学【python】,那么python到底是什么呢?
    发展现如今,作为一个ICT从业者,如果你没听说过Python,那就太out了。python作为现在最热门的程序语言,拥有超高的人气,可以说是IT界的新一代明星。尤其Python和目前红得发紫的人工智能之间密切的关系,使得大家都对它投入了特别的关注。今天,小编就和大家聊一聊,到底什么是Python。......
  • Python——求一个整数的阶乘是多少?
    没注释的源代码factorial=1number=int(input("请输入你计算阶乘的数字:"))ifnumber<0:  print("{}!没有阶乘".format(number))elifnumber==0:  print("{}!等于1".format(number))else:  foriinrange(1,number+1):    factorial......
  • python代码商城的返佣和退款问题
    使用Python来开发一个返佣接口,根据描述,接口需要处理三个核心功能:根据售价或租金计算返佣金额(20%)。不同人数分享返佣规则:一人分享返佣20%,二人分享每人分别返佣10%。在用户收到货物一周后,并且没有发生退款的情况下,进行结算返佣。步骤创建Flask应用:使用Flask框架来开发接口......
  • C++和Python混合编程——C++调用Python入门
    大纲代码结构初始化Python解释器获取GIL为什么需要GIL?GIL的影响导入Python模块并执行代码释放GIL终止Python解释器完整代码编译执行结果项目地址在《C++和Python混合编程——Python调用C++入门》一文中,我们熟悉了Python调用C++编译的动态库的方法。但是作......
  • [开题报告]flask框架沧州交通学院二手交易系统2ht5t(python+程序+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景在沧州交通学院这一充满活力的学术社区中,随着学生人数的增加和校园生活的日益丰富,二手物品的流通与交易成为了广大师生普遍关注的话题。传......
  • [开题报告]flask框架的安心养老一站通服务系统的设计与实现c3af4(程序+论文+python)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着全球人口老龄化的加速,养老问题已成为社会关注的焦点。传统的养老模式已难以满足日益增长的多元化养老需求,特别是在健康监测、生活照料......
  • python 源文件 源目录 转 包
    pythonsetup.pysdist 命令会完成以下步骤:准备源码:将源文件(包括Python文件、数据文件等)收集到一个目录中,以便打包。生成分发文件:创建一个压缩包(通常是 .tar.gz 或 .zip 格式),包含所有必要的源文件和元数据。这些文件会被放置在 dist 目录中。构建步骤:sdist......
  • python 带参数的装饰器
    fromfunctoolsimportwrapsdeflogit(logfile='out.log'):deflogging_decorator(func):@wraps(func)defwrapped_function(*args,**kwargs):log_string=func.__name__+"wascalled"print(l......