当前位置: 首页 > news >正文

知识库-登陆接口

用户登录接口

  • 功能:注册成功后,用户使用用户名、密码和验证码进行登录,获取令牌(token)。
  • 参数:用户名、密码、验证码
  • 返回:登录成功返回 token,失败返回错误信息
用例编号用例名称用户名密码验证码预期结果断言
1正常登录成功testuser123Test12345123456登录成功,返回 token状态码为 200,返回信息包含 token 字段
2用户名不存在nonexistuserTest12345123456用户名不存在状态码为 400,返回信息包含 “用户名不存在” 字样
3密码错误testuser123Wrong12345123456密码错误状态码为 400,返回信息包含 “密码错误” 字样
4验证码错误testuser123Test12345654321验证码错误状态码为 400,返回信息包含 “验证码错误” 字样
5用户名为空Test12345123456用户名不能为空状态码为 400,返回信息包含 “用户名不能为空” 字样
6密码为空testuser123123456密码不能为空状态码为 400,返回信息包含 “密码不能为空” 字样
7验证码为空testuser123Test12345验证码不能为空状态码为 400,返回信息包含 “验证码不能为空” 字样
8所有参数为空用户名、密码、验证码均为必填项状态码为 400,返回信息包含 “用户名、密码、验证码均为必填项” 字样
import unittest
from ddt import ddt, data, unpack
import openpyxl
import requests


@ddt
class TestUserLogin(unittest.TestCase):
    # 替换为你的 Excel 文件路径
    file_path = 'your_excel_file.xlsx'
    workbook = openpyxl.load_workbook(file_path)
    sheet = workbook.active
    # 从 Excel 文件的第二行开始读取数据,将每行数据作为一个元素添加到 test_data 列表中
    test_data = [row for row in sheet.iter_rows(min_row=2, values_only=True)]

    @data(*test_data)
    @unpack
    def test_user_login(self, _, __, username, password, code, ___, assertion):
        url = 'https://example.com/login'
        # 构造请求体,包含用户名、密码和验证码
        payload = {
            'username': username,
            'password': password,
            'code': code
        }
        # 发送 POST 请求到指定的登录接口,并将请求体以 JSON 格式发送
        response = requests.post(url, json=payload)
        # 从断言信息中分割出状态码和返回信息的断言部分
        status_code, message = assertion.split(',')
        # 验证响应的状态码是否符合预期
        self.assertEqual(response.status_code, int(status_code.split('为 ')[1]))
        # 验证响应的文本内容是否包含预期的信息
        if "包含“" in message:
            self.assertIn(message.split('包含“')[1].split('”')[0], response.text)
        else:
            # 针对返回token的情况,检查返回信息中是否存在token字段
            if "token字段" in message:
                self.assertTrue('token' in response.json())


if __name__ == '__main__':
    unittest.main()
  1. 使用self.assertEqual来验证响应状态码是否与预期相符。
  2. 使用self.assertIn来验证响应文本内容是否包含预期信息。
  3. 当登录成功返回 token 时,使用self.assertTrue验证响应中是否包含 token 字段,以此确保接口返回结果的正确性。
  4. 环境处理:与后端沟通,将验证码固定为特定值,简化测试,专注登录核心功能,且不影响生产环境。

相关文章:

  • 《论语别裁》第01章 学而(03) 四书五经的假面目
  • 萌新学 Python 之 if 语句的三目运算符
  • SFT数据指令评估-2.基于困惑度的5种指标(微调白盒模型)
  • 一台服务器将docker image打包去另一天服务器安装这个镜像
  • 在 .NET 8/9 中使用 AppUser 进行 JWT 令牌身份验证
  • Web3.py 入门笔记
  • 避坑:过早的文件结束符(EOF):解决“git clone龙蜥OS源码失败”的失败过程
  • 面试编程题
  • 【DeepSeek问答】QProcess::start是异步的吗?会使UI卡顿吗?
  • Java锁代码解析
  • 迅为RK3568开发板篇Openharmony配置HDF控制UART-UART 接口运作机制
  • Solon —— 容器
  • 【R语言】绘图
  • V4L2驱动之UVC
  • 【LLAMA】羊驼从LLAMA1到LLAMA3梳理
  • C语言——时基
  • 广度优先搜索详解--BFS--蒟蒻的学习之路
  • 【哇! C++】类和对象(一)
  • ⭐ Unity 横向滑动列表 首尾相连 轮转图
  • 在Linux上安装和使用Docker
  • 订婚不等于性同意!山西订婚强奸案入选最高法案例
  • 京东回应外卖系统崩溃:订单暴涨所致,已恢复
  • “女硕士失踪13年生两孩”案进入审查起诉阶段,哥哥:妹妹精神状态好转
  • 125%→10%、24%税率暂停90天,对美关税开始调整
  • 媒体:“西北大学副校长范代娣成陕西首富”系乌龙,但她的人生如同开挂
  • 英国收紧移民政策,技术工作签证、大学招生面临更严要求