接口测试以及接口测试用例设计

news2024/11/25 16:02:09

1. 测试点

功能测试

  • 单接口功能:
    • 手工测试中的单个业务模块,一般对应一个接口
      • 登录业务---->登录接口
      • 加入购物车业务---->加入购物车接口
      • 订单业务---->订单业务接口
      • 支付业务--->支付业务接口
    • 借助工具、代码以此绕开前端界面,组织接口所需要的数据,展开接口测试
  • 业务场景功能
    • 按照用户实际使用场景,梳理接口业务场景
    • 组织业务场景时,一般只需做正向测试即可(与手工一致)
    • 一般用最少的用例覆盖最多业务场景
      • 登录---搜索商品---加入购物车---下单---支付---评价

性能测试

  • 响应时长
  • 吞吐量
  • 并发数量
  • 服务器资料利用率

安全测试

  • 攻击安全---与测试工程师无关
  • 业务安全---测试方向
    • 敏感数据是否加密
    • SQL注入:用户能输入数据的位置,写入SQL语句
      • SQL注入安全,用户恶意写入的SQL语句,不会执行,查询数据库

2.与手工设计不同之处

1.手工测试,测写入到输入框的数据是否正确.接口测试测参数对应的参数值是否正确

2.接口测试,不单针对参数值进行,还可以对参数本身进行测试

  • 正向参数:
    • 必选参数:所有的必填(必选)都包含
    • 组合参数:所有的必填+任意一个或多个可选参数
    • 全部参数:所有必选+所有可选参数
  • 反向参数:
    • 多参:多出一个或多个必选参数(可以任意指定)
    • 少参:缺少一个或多个必选参数
    • 无参:没有必选参数
    • 错误参数:参数名输入错误

3.单接口测试用例

手工测试用例文档的8大要素:编号,用例名称(标题),模块,优先级,预置条件,测试数据,操作步骤,预期结果

接口测试用例文档10大要素:编号,用例名称(标题),模块,接口名称,请求方法,URL,请求头,请求体(请求数据),请求数据类型,预期数据,实际数据

分析接口文档,以 “登录接口” 为例:
请求方法:post
URL: “系统信息” 中的 协议和域名 + /api/sys/login
请求头:Content-Type : application/json
请求体:{“mobile”:“13800000002”,“password”:“123456”}
预期结果: {“success”:true,“code”:10000,“message”:“操作成功!”,“data”:“f5050a1b-7919-444c-9ec4-3c1a7286536d”}
data:值为登录成功生成的 令牌数据。该数据 会定时变化。

  • 数值
    • 正向
      • 登录成功
    • 反向
      • 用户名为空
      • 用户名包含特殊字符
      • 用户名超过11位(12位)
      • 用户名不足11位(10位)
      • 用户名未注册
      • 密码为空
      • 密码包含特殊字符
      • 密码为1位
      • 密码为100位
      • 密码错误
  • 参数
    • 正向
      • 必选参数:正确的用户名+正确密码
      • 组合参数:忽略
      • 全部参数:正确的用户名+密码
    • 反向
      • 多参:多abc:123
      • 少参(少mobile):没有任何参数
      • 无参:没有任何参数
      • 错误参数(手机号参数错误):abc:"13552658896",password:"123456"

 4.业场景测试

  • 用户怎么用,怎样设计业务
  • 用最少的测试用例,尽量覆盖最多的接口

分析测试点:

针对"员工管理"业务场景:

  • 登录---添加员工---查询员工--修改员工---再次查询---删除员工---查询员工列表

添加员工

  • 请求方法:post
    • URL: {协议+域名}/api/sys/user
  • 请求头:
    • Content-Type: application/json
    • Authorization: Bearer f5050a1b-7919-444c-9ec4-3c1a7286536d (具体数据 来源 登录成功返回的 响应体中的 data的值)
  • 请求体(请求数据):{“username”:“爱因斯坦”,“mobile”:“17289432100”,“timeOfEntry”:“2021-07-12”,“formOfEmployment”:1,“departmentName”:“测试0607”,“departmentId”:“1412421425733664768”,“workNumber”:“234”,“correctionTime”:“2021-07-30T16:00:00.000Z”}
  • 预期结果:
  • 状态码:200
  • {“success”:true,“code”:10000,“message”:“操作成功!”, “data”:{“id”:“113749504”}}

查询员工

  • 请求方法:GET

    • URL: {协议+域名}/api/sys/user/:target
  • 请求头:
    • Content-Type: application/json
    • Authorization: Bearer f5050a1b-7919-444c-9ec4-3c1a7286536d (具体数据 来源 登录成功返回的 响应体中的 data的值)
  • 请求体:
  • 返回数据:
    • 状态码:200
    • {“success”: true,
    • “code”: 10000,
    • “message”: “操作成功!”,
    • “data”: { 所查询的员工的详细信息} }
       

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1021427.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MySQL数据库简介+库表管理操作+数据库用户管理

Mysql Part 1 一、数据库的基本概念1.1 使用数据库的必要性1.2 数据库基本概念1.2.1 数据(Data)1.2.2 表1.2.3 数据库1.2.4 数据库管理系统(DBMS)1.2.5 数据库系统 1.3 数据库的分类1.3.1 关系数据库 SQL1.3.2 非关系数据库 NoSQL…

MySQL主从数据库搭建

1 背景 最近工作需要对比几种数据库技术方案,主从读写分离集群也是其中之一。现将该集群搭建过程记录下来,以便后面查看回忆。 2 主从集群 2.1 原理 主从复制的原理如下图所示: 2.2 集群划分 我在搭建主从集群时已经使用用虚拟机安装了do…

【数据结构】树的存储结构;树的遍历;哈夫曼树;并查集

欢~迎~光~临~^_^ 目录 1、树的存储结构 1.1双亲表示法 1.2孩子表示法 1.3孩子兄弟表示法 2、树与二叉树的转换 3、树和森林的遍历 3.1树的遍历 3.1.1先根遍历 3.1.2后根遍历 3.2森林的遍历 3.2.1先序遍历森林 3.2.2中序遍历森林 4、树与二叉树的应用 4.1哈夫曼树…

redis桌面连接工具Another Redis Desktop Manager使用介绍

Another Redis Desktop Manager是一种类似于navicat的数据库连接工具,专门用来连接redis,使用起来非常简单方便,在这里推荐给大家。 没有用过这个软件的,首先通过下面的网盘链接下载Another Redis Desktop Manager 百度网盘redi…

SQL死锁进程内容查询语句

1.方式1 SELECT object_name(A.resource_associated_entity_id) as TABLENAME, A.request_session_id AS SPID,DB_NAME(B.dbid) AS DBName,B.blocked,B.dbid,B.program_name,B.waitresource,B.lastwaittype,B.loginame,B.hostname,B.login_time,B.last_batch--,B.* FROM sy…

Qt5开发及实例V2.0-第四章Qt基本对话框

Qt5开发及实例V2.0-第四章Qt基本对话框 第4章 Qt 5基本对话框4.1 标准文件对话框类4.1.1 函数说明4.1.2 创建步骤 4.2 标准颜色对话框类4.2.1 函数说明4.2.2 创建步骤 4.3 标准字体对话框类4.3.1 函数说明4.3.2 创建步骤 4.4 标准输入对话框类4.4.1 标准字符串输入对话框4.4.2 …

全是模板的数据分析工具有哪些?

当一个全是模板的数据分析工具,一个以点击、拖拉拽就能制作报表的工具摆在眼前,人人都能随需分析,自定义分析,在极短的时间内实现智能数据可视化分析挖掘。SpeedBI数据分析云就是这样的一个全是模板且点击、拖拉拽做分析报表的数据…

【SpringMVC】基础部分

SpringMvc Spring MVC 是Spring提供的一个实现了Web MVC设计模式的轻量级Web框架。 MVC(Model View Controller),一种用于设计创建Web应用程序表现层的模式 Model(模型):数据模型,用于封装数据…

服务网格的面临挑战:探讨服务网格实施中可能遇到的问题和解决方案

🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 &a…

Ubuntu 20.04中Nightingale二进制部署

参考博客《【夜莺监控】初识夜莺,强!》 lsb_release -r可以看到操作系统版本是20.04,uname -r可以看到内核版本是5.5.19。 sudo apt-get update进行更新镜像源。 完成之后,如下图: sudo apt-get upgrade更新软件…

JSplitPane与JTabledPane

Swing提供了一些具有特殊功能的容器 , 这些特殊容器可以用于创建一些更复杂的用户界面。 使用JSplitPane JSplitPane 用于创建一个分割面板,它可以将 一个组件(通常是一个容器)分割成两个部分,并提供一个分割条 , 用户可以拖动该分割条来调…

springboot和vue:五、RESTful服务+HTTP状态码+swagger配置

RESTful RESTful的特点 每一个URI代表一种资源客户端使用GET、POST、PUT、DELETE四种表示操作方式的动词对服务端资源进行操作:POST用于新建资源(也可以用于更新资源),PUT用于更新资源资源的表现形式是JSON或者HTML。客户端与服…

Cilium 1.11:服务网格的未来已来

🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 &a…

1个G的视频能压缩到几M?视频过大这样压缩

一个G的视频能压缩到几M,具体取决于视频的质量、编码方式,以及压缩软件使用的算法。一般来说,高质量的视频压缩需要更高的比特率,这就意味着更大的文件大小。另一方面使用有效的压缩算法或降低视频的分辨率等,也可以减…

MySQL BufferPool缓存与Redo日志是如何提升事务性能的

文章目录 引言一、BufferPool缓存的作用与优势1.1 BufferPool缓存的定义与作用1.2 BufferPool缓存的作用1.3 Change Buffer 作用 二、BufferPool缓存的优势2.1 减少磁盘IO操作的次数2.2 提高数据的读取速度2.3 减轻磁盘负载,提升整体系统性能 三、BufferPool缓存的工…

全国职业技能大赛云计算--高职组赛题卷③(私有云)

全国职业技能大赛云计算--高职组赛题卷③(私有云) 第一场次题目:OpenStack平台部署与运维任务1 基础运维任务(5分)任务2 OpenStack搭建任务(15分)任务3 OpenStack云平台运维(15分&am…

R语言画图

简单记录一下 plot(lad_profile_relative$lad, lad_profile_relative$height, type"l", lwd1.5, xlabexpression(paste("LAD ", "(", m^2, m^-3, ")" )), ylab"Height (m)")X轴数据, Y轴数据 type, 标记类型 lw…

FPGA的主流技术与市场表现方面的调研报告

撰写简单的FPGA的主流技术与市场表现方面的调研报告,表达自己的认知和发展展望,500字,图片,表格除外 FPGA简介 FPGA(Field-Programmable Gate Array)是一种可编程逻辑器件,是在PAL &#xff08…

电商项目高级篇-01 elasticsearch

电商项目高级篇-01 elasticsearch 1、linux下安装elasticsearch和可视化工具 1、linux下安装elasticsearch和可视化工具 将安装好jdk1.8和tomcat的centos7下安装elasticsearch docker pull elasticsearch:7.4.2docker pull kibana:7.4.2##docker下安装软件需要配置挂载。方便…

MySQL性能优化——MYSQL执行流程

MySQL 执行流程1-5如下图。 MySQL 的架构共分为两层:Server 层和存储引擎层, Server 层负责建立连接、分析和执行 SQL。MySQL 大多数的核心功能模块都在这实现,主要包括连接器,查询缓存、解析器、预处理器、优化器、执行器等。…