首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

【如何开展接口测试--接口测试需关注的重点及postman工具的使用----以登录接口login为例】保姆级教程

  • 25-03-08 01:01
  • 2403
  • 11419
blog.csdn.net

API测试流程及场景

  • 一、接口测试概述
  • 二、准备工作
  • 三、登录接口测试步骤
    • 1. 创建新请求
    • 2. 设置请求类型和URL
    • 3. 添加请求头
    • 4. 编写请求体
    • 5. 发送请求
    • 6. 检查响应
    • 7. 断言测试结果
  • 四、主要关注点
  • 五、测试场景汇总
    • 功能性测试场景
    • 安全性测试场景
    • 性能测试场景
    • 边界测试场景
    • 其他场景

一、接口测试概述

接口测试是确保API功能正常、性能合适和安全可靠的重要过程。以登录接口为例,我们可以使用Postman进行详细的测试。

二、准备工作

  1. 确认API文档:确保你有API的文档,包括请求方法、URL、请求参数和返回数据格式等。
  2. 安装Postman:前往Postman官网下载并安装。

三、登录接口测试步骤

1. 创建新请求

  • 打开Postman,点击左上角的“+”按钮创建新的请求。

2. 设置请求类型和URL

  • 在请求类型下拉框中选择POST。
  • 在URL输入框中输入登录接口的URL,例如:https://api.example.com/login。

3. 添加请求头

  • 点击“Headers”标签,添加必要的请求头,比如:
    • Content-Type: application/json
    • 其他如Authorization等,视API要求而定。

4. 编写请求体

  • 点击“Body”标签,选择raw并设置格式为JSON。
  • 在请求体中输入登录所需的参数,例如:
    {
        "username": "testuser",
        "password": "testpassword"
    }
    
    • 1
    • 2
    • 3
    • 4

5. 发送请求

  • 点击“Send”按钮,Postman将向API发送请求。
    在这里插入图片描述

6. 检查响应

  • 查看下方的响应部分,关注以下内容:
    • 状态码:应为200(成功)、401(未授权)或其他,根据情况而定。
    • 响应时间:确保在可接受的时间范围内。
    • 响应体:查看返回的JSON数据,确保包含预期的字段,如token、用户信息等。

7. 断言测试结果

  • Postman允许你编写测试脚本,点击“Tests”标签,添加以下代码进行简单的断言:
    pm.test("状态码为200", function () {
        pm.response.to.have.status(200);
    });
    
    pm.test("响应体包含token", function () {
        pm.expect(pm.response.json()).to.have.property('token');
    });
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    在这里插入图片描述

四、主要关注点

  1. 请求有效性:确保请求参数的有效性,包括正确的username和password。
  2. 异常处理:测试无效的登录信息(如错误密码、未注册用户等),确保返回适当的错误信息和状态码。
  3. 安全性:测试是否有暴力破解或其他安全漏洞,比如尝试发送大量请求。
  4. 性能:在负载情况下测试响应时间。
  5. 数据完整性:确保响应数据的完整性和正确性。

五、测试场景汇总

功能性测试场景

  1. 有效的用户名和密码

    • 请求体:
      {
          "username": "validUser",
          "password": "validPassword"
      }
      
      • 1
      • 2
      • 3
      • 4
    • 预期结果:状态码200,返回用户token。
  2. 无效的用户名

    • 请求体:
      {
          "username": "invalidUser",
          "password": "validPassword"
      }
      
      • 1
      • 2
      • 3
      • 4
    • 预期结果:状态码401,返回错误信息。
  3. 无效的密码

    • 请求体:
      {
          "username": "validUser",
          "password": "invalidPassword"
      }
      
      • 1
      • 2
      • 3
      • 4
    • 预期结果:状态码401,返回错误信息。
  4. 空用户名和密码

    • 请求体:
      {
          "username": "",
          "password": ""
      }
      
      • 1
      • 2
      • 3
      • 4
    • 预期结果:状态码400,提示必填项。
  5. 空用户名,正确密码

    • 请求体:
      {
          "username": "",
          "password": "validPassword"
      }
      
      • 1
      • 2
      • 3
      • 4
    • 预期结果:状态码400,提示必填项。
  6. 正确用户名,空密码

    • 请求体:
      {
          "username": "validUser",
          "password": ""
      }
      
      • 1
      • 2
      • 3
      • 4
    • 预期结果:状态码400,提示必填项。
  7. SQL注入

    • 请求体:
      {
          "username": "' OR '1'='1",
          "password": "' OR '1'='1"
      }
      
      • 1
      • 2
      • 3
      • 4
    • 预期结果:状态码401,确保系统防范SQL注入。
  8. XSS攻击

    • 请求体:
      {
          "username": "",
          "password": "validPassword"
      }
      
      • 1
      • 2
      • 3
      • 4
    • 预期结果:状态码401,确保输入被正确处理。

安全性测试场景

  1. 密码强度

    • 请求体:
      {
          "username": "validUser",
          "password": "1234"
      }
      
      • 1
      • 2
      • 3
      • 4
    • 预期结果:状态码400,提示密码强度不足。
  2. 暴力破解

    • 请求体(示例为第三次失败):
      {
          "username": "validUser",
          "password": "wrongPassword"
      }
      
      • 1
      • 2
      • 3
      • 4
    • 预期结果:状态码403,提示账户锁定。
  3. 会话管理

    • 请求体(使用旧token):
      {
          "username": "validUser",
          "password": "validPassword"
      }
      
      • 1
      • 2
      • 3
      • 4
    • 预期结果:状态码401,返回未授权。

性能测试场景

  1. 高并发登录
    • 请求体(模拟多个用户):
      {
          "username": "user{{n}}",
          "password": "password{{n}}"
      }
      
      • 1
      • 2
      • 3
      • 4
    • 预期结果:观察系统响应时间和稳定性。

边界测试场景

  1. 最大用户名长度

    • 请求体:
      {
          "username": "u".repeat(255),
          "password": "validPassword"
      }
      
      • 1
      • 2
      • 3
      • 4
    • 预期结果:状态码200或400(取决于实现)。
  2. 最大密码长度

    • 请求体:
      {
          "username": "validUser",
          "password": "p".repeat(255)
      }
      
      • 1
      • 2
      • 3
      • 4
    • 预期结果:状态码200或400(取决于实现)。
  3. 特殊字符测试

    • 请求体:
      {
          "username": "user!@#$%",
          "password": "pass!@#$%"
      }
      
      • 1
      • 2
      • 3
      • 4
    • 预期结果:状态码200或400,确保系统能够处理特殊字符。

其他场景

  1. 网络异常处理

    • 请求体(可使用Postman的模拟功能):
      {
          "username": "validUser",
          "password": "validPassword"
      }
      
      • 1
      • 2
      • 3
      • 4
    • 预期结果:系统应正确处理异常。
  2. 重复登录

    • 请求体:
      {
          "username": "validUser",
          "password": "validPassword"
      }
      
      • 1
      • 2
      • 3
      • 4
    • 预期结果:状态码200,检查是否保持会话。
  3. 多设备登录

    • 请求体(在不同设备上同时登录):
      {
          "username": "validUser",
          "password": "validPassword"
      }
      
      • 1
      • 2
      • 3
      • 4
    • 预期结果:确保多个会话管理正常。

以上均为本人自我总结,需要帮助请私信我,及欢迎各位前来探讨~


各位大佬海涵,这里将插播一条预告:

  • 十一月初,赣南脐橙迎来丰收季,果实金黄、汁甜饱满,清爽的酸甜口感令人陶醉。它不仅是冬季美味的水果选择,也是馈赠亲友的最佳礼品,带来温暖与自然的馈赠。
  • 作为一个实打实的江西赣州老表,怎么能不宣传一下自家的脐橙呢~~~

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

以上有任何问题疑问,请私信我,欢迎一起探讨~

注:本文转载自blog.csdn.net的Dreams°123的文章"https://blog.csdn.net/weixin_44892179/article/details/143470406"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2492) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2025 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top