0
点赞
收藏
分享

微信扫一扫

LeetCode Python - 73. 矩阵置零

晴儿成长记 03-29 15:30 阅读 1

目录

测试需求

简单的一个接口场景:
接口场景:6个接口,分别为登录接口,新建项目接口,导入图片接口,图片识别接口,保存接口,退出登录;

实现思路

  1. 初始化数据:准备测试所需的数据,如用户名、密码、项目名称等,并存储在Excel文件中。

  2. 读取Excel数据:使用pandas或openpyxl库读取Excel文件中的测试数据。

  3. 编写核心脚本:封装发送HTTP请求、处理响应的逻辑。

  4. 编写测试用例:使用pytest编写针对每个接口的测试用例。

  5. 日志记录:使用logging库记录测试过程中的关键信息。

  6. pytest配置文件:设置pytest的相关配置,如插件、命令行参数等。

  7. 生成测试报告:使用pytest插件(如pytest-html)生成测试报告。

  8. 入口函数:编写一个入口脚本,用于启动整个测试流程。

完整框架

要实现基于Python、requests、excel、pytest的接口自动化测试,我们需要按照以下步骤和框架进行:

2.1 初始化数据 (test_data.xlsx)
| TestID | TestCase       | URL                  | Method | Headers     | Body                       | ExpectedStatus | ExpectedResponse |
|--------|----------------|--------------------|--------|-----------|--------------------------|----------------|------------------|
| 1      | Login        | /api/client/login  | POST   | ...       | {'username': 'user1', ...} | 200          | {...}            |
| 2      | CreateProject| /api/projects      | POST   | ...       | {'project_name': 'proj1'} | 201          | {...}            |
| 3      | ImportImage  | /api/projects/{id}/images | POST   | ...       | {'image_file': 'path/to/image'} | 201          | {...}            |
| 4      | RecognizeImage| /api/projects/{id}/images/{image_id}/recognize | GET    | ...       |                          | 200          | {...}            |
| 5      | Save         | /api/projects/{id} | PUT    | ...       | {'updated_data': ...}      | 200          | {...}            |
| 6      | Logout       | /api/client/logout | POST   |           |                          | 200          | {...}            |
2.2 核心脚本 (api_client.py)
import requests
import logging

# 定义APIClient类,用于封装API交互逻辑
class APIClient:
    def __init__(self, base_url, username, password):
        # 初始化时接收API的基础URL、用户名和密码
        self.base_url = base_url
        self.username = username
        self.password = password
        # 初始化token为None,登录成功后设置
        self.token = None
        # 初始化请求头,之后根据token进行更新
        self.headers = {
   }
        # 创建一个requests会话对象,用于保持连接和cookie
        self.session = requests.Session()
        # 初始化日志系统
        self.initialize_logging()

    def initialize_logging(self):
        # 配置基础的日志信息,设置日志级别和格式
        logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
        # 获取当前类的日志器
        self.logger = logging.getLogger(__name__)

    def login(self):
        """
        执行登录操作,获取token并保存到实例变量中
        """
        # 登录API的URL
        url = f"{
     self.base_url}/login"
        # 准备登录所需的payload
        payload = {
   'username': self.username, 'password': self.password}
        # 发送POST请求进行登录
        response = self.session.post(url, json=payload)
        # 检查响应状态码
        if response.status_code == 200:
            # 提取token并保存到实例变量
            self.token = response.json().get('token')
         
举报

相关推荐

0 条评论