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

关于接口测试用例设计的一些思考

接口测试发现的典型问题

  • 传入参数处理不当,引起程序错误
  • 类型溢出,导致数据读取和写入不一致
  • 对象权限校验出错,可获取其他角色信息
  • 状态出错,导致逻辑处理出现问题
  • 逻辑校验不完善
  • 定时任务执行出错

接口测试用例设计

接口测试用例设计主要针对输入、处理、输出进行考虑

针对输入进行设计

对于接口来说,输入就是入参,一般的参数类型

  • 数值型
    • 边界内、边界值、边界外三个方面去考虑
    • 特殊值处理不当程序异常、类型边界溢出、错误信息返回不正确
  • 字符串
    • 主要考虑字符串长度和字符串的内容
    • 空、特殊字符、数字、表情符号
  • 数组链表
    • 多个重复值、空、最大范围值
  • 结构体:json、字典
    • 字段错误,字段类型错误、未包含字段、缺失字段

针对逻辑设计

  • 限制条件

    • 数值类型限制,比如购买次数、登录次数、优惠券最大面额、订单取消次数等
    • 状态限制:比如是否登录、是否有订单等
    • 关系限制:比如好友关系、关注关系,只能查看好友或者关注人的朋友圈
    • 权限限制:比如销售只能查看和自己绑定客户数据,而管理员可有查看所有客户数据
    • 时间限制:比如未支付过20分钟订单自动取消
  • 状态转换分析

    比如一个出租车订单,从乘客下单、司机抢单、到达起点、接上乘客、到达目的地,发起支付,支付,评价这是一个完整的订单状态转换流程,必须按照这个次序,才能正确流转,一旦打乱其中任何一个状态,就会出现逻辑问题。

    接口用例可以这样设计:

    • 正常状态迁移: 乘客下单,司机抢单,
    • 异常状态迁移:乘客刚下的那,司机发起支付,出现异常

针对输出设计

  • 针对输出结果

一般情况下,接口正常处理的结果可能只有一个,但是异常的处理结果,可能会返回多种错误,那就可以针对不同的错误进行设计

  • 接口超时
  • 旧版本接口
  • 废弃接口
  • 接口设计是否合理,比如字段冗余、接口冗余、返回错误信息是否清晰明了、调用是否方便
  • 幂等性

postman接口测试教程:2023全网封神,B站讲的最详细的Postman接口测试实战教学,小白都能学会_哔哩哔哩_bilibiliicon-default.png?t=N6B9https://www.bilibili.com/video/BV16L41117wB/?spm_id_from=333.999.0.0&vd_source=6e2d6c374fd551babe1ac6a5e60c5a75

 

 

相关文章:

关于接口测试用例设计的一些思考

接口测试发现的典型问题 传入参数处理不当,引起程序错误类型溢出,导致数据读取和写入不一致对象权限校验出错,可获取其他角色信息状态出错,导致逻辑处理出现问题逻辑校验不完善定时任务执行出错 接口测试用例设计 接口测试用例…...

gin和gorm框架安装

理论上只要这两句命令 go get -u gorm.io/gorm go get -u github.com/gin-gonic/gin然而却出现了问题 貌似是代理问题,加上一条命令 go env -w GOPROXYhttps://goproxy.cn,direct 可以成功安装 安装gorm的数据库驱动程序 go get -u gorm.io/driver/mysql...

今天小编继续给大家分享五款高效的电脑宝藏软件

目录 1、keytweak 2、ScreenToGif 3、Greenshot截屏工具 4、GIMP 5、HandBrake 1、keytweak keytweak 简单来说就是一个键盘按键修改器,说白了就是一个键盘按键重映射的软件。比如你键盘上的Q不好用了,你可以更换成一个不常见的按键来代替Q键&#x…...

SQL Server数据库如何添加mysql链接服务器(Windows系统)

SQL Server数据库如何添加mysql链接服务器(Windows系统) 一、说明二、下载mysql的odbc驱动三、安装mysql odbc四、配置ODBC4.1 控制面板→ODBC数据源(64位)→双击打开4.2 添加msql odbc数据源 五、测试添加是否成功六、打开SSMS&a…...

scala连接mysql数据库

scala中通常是通过JDBC组件来连接Mysql。JDBC, 全称为Java DataBase Connectivity standard。 加载依赖 其中包含 JDBC driver <dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.29&l…...

datax-web登陆时出现账号密码错误

在查找问题时&#xff0c;在admin里面查看日志时&#xff1a; 目录的位置&#xff1a;datax-web-2.1.2/modules/datax-admin/bin/console.out 发现了java程序没有跑起来&#xff0c;解决对应的bug问题即可&#xff0c;一般都是数据库连接的问题&#xff0c;可能和使用的数据库版…...

Redis 和 MySQL如何保证数据一致性

场景分析 Redis 用来实现应用和数据库之间读操作的缓存层&#xff0c;主要目的是减少数据库 IO &#xff0c;还可以提升数据的 IO 性能。当应用程序需要去读取某个数据的时候&#xff0c;首先会先尝试去 Redis 里面加载&#xff0c;如果命中就 直接返回。如果没有命中&#xf…...

VR虚拟仿真技术在道路桥梁中有哪些具体应用?

虚拟现实(VR)是一种新兴的技术&#xff0c;可以为桥梁工程提供许多应用场景。以下是一些可能的应用场景&#xff1a; 1.桥梁设计和模拟 VR元宇宙可以用于桥梁的设计和模拟。工程师可以使用VR技术来创建桥梁的三维模型&#xff0c;并对其进行测试和优化。这可以帮助工程师更好地…...

如何找到死锁的线程?_java都学什么

在Java中&#xff0c;死锁是指两个或多个线程被无限地阻塞&#xff0c;等待彼此持有的资源&#xff0c;从而导致程序无法继续执行的情况。死锁通常是由于线程之间循环等待资源而产生的。要找到死锁的线程&#xff0c;可以采用以下方法&#xff1a; 1.线程转储(Thread Dump) 通过…...

MFC遍历目录包括子目录下所有文件、特定类型文件

文章目录 用法实现遍历所有文件遍历所有txt文件用法 vector<CString> v; //获取所有文件 GetFilePath(v,L"D:\\test\\"); //文件路径储存在容器里面,遍历容器 for(int i=0...

Kubernetes 集群calico网络故障排查思路

报错calico/node is not ready: BIRD is not ready: BGP not established with 172.16.0.20,172.16.0.30 \\calico未准备好&#xff0c;BGP协议不能与172.16.0.20,172.16.0.30内网IP地址连接 BGP协议:边界网关协议 访问k8s的dashboard界面无法访问网站&#xff0c;查看pod&am…...

OBS视频视频人物实时扣图方法(四种方式)

图片擦除一些杂乱图像 参考&#xff1a;https://www.bilibili.com/video/BV1va411G7be https://github.com/Sanster/lama-cleaner第一种&#xff1a;色度键选项 第二种&#xff1a;浏览器建立窗口选项 参考视频&#xff1a;https://www.bilibili.com/video/BV1WS4y1C7QY http…...

DROP USER c##xyt CASCADE > ORA-01940: 无法删除当前连接的用户

多创建了一个用户&#xff0c;想要给它删除掉 一 上执行过程&#xff0c;确实删除成功了 Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production With the Partitioning, OLAP, Advanced Analytics and Real Application Testing optionsSQL> DR…...

【JAVA】-【IO流】

文章目录 FileReader读入数据的基本操作FileReader中使用reader()FileWrite写出数据的操作使用FileInputStream、FileOutputStream操作图片缓冲流&#xff08;字节型&#xff09;实现非文本文件的复制 复制文本文件也可以使用字节流&#xff0c;但是不要在内存中读出来&#xf…...

PoseFormer:基于视频的2D-to-3D单人姿态估计

3D Human Pose Estimation with Spatial and Temporal Transformers论文解析 摘要1. 简介2. Related Works2.1 2D-to-3D Lifting HPE2.2 GNNs in 3D HPE2.3 Vision Transformers 3. Method3.1 Temporal Transformer Baseline3.2 PoseFormer: Spatial-Temporal TransformerSpati…...

Fortinet发布2023年第二季度财报

全球网络与安全融合领域领导者Fortinet&#xff08;Nasdaq&#xff1a;FTNT&#xff09;&#xff0c;于近日公布2023年第二季度财报。 Fortinet 创始人、董事长兼首席执行官谢青表示&#xff1a;“作为业内领先的网络安全平台和安全组网厂商&#xff0c;得益于当下对整合型供应…...

智慧消防 | 气体灭火系统压力在线监测正当其时

气体灭火设备在消防安全系统中扮演着重要的角色。根据最新版的《气瓶安全技术规程》TSG23-2021规定&#xff0c;IG541气体钢瓶需要每3年进行一次检测。未按时进行检测可能导致压力掉压、瓶体外部锈蚀、钢瓶位置钢瓶内部腐蚀等风险&#xff0c;这些问题都可能对消防安全和效能产…...

并查集练习 — 扩展问题(二)

根据并查集练习 —岛屿数量的问题再次扩展&#xff1a; 原题是给定一个二维数组matrix&#xff08;char[][]&#xff09;&#xff0c;里面的值不是1就是0&#xff0c;上、下、左、右相邻的1认为是一片岛。返回matrix中岛的数量。 扩展为&#xff1a;如果是中国的地图&#xff0…...

iTOP-i.MX8MM开发板添加 isb 转串口设备驱动

对于通过 USB 接口访问的模块&#xff0c;在 Linux 内核中集成 USB 驱动程序。我们需要配置内核选中支持 GSM 和 CDMA 模块的 USB 转串口驱动 > Device Drivers -> USB support (USB_SUPPORT [y]) -> USB Serial Converter support (USB_SERIAL [y]) -> USB dr…...

Golang实现Redis分布式锁解决秒杀问题

先写一个脚本sql&#xff0c;插入2000个用户 INSERT INTO sys_users (mobile, password) SELECT numbers.n AS mobile,$2a$10$zKQfSn/GCcR6MX4nHk3MsOMhJnI0qxN4MFdiufDMH2wzuTaR9G1sq AS password FROM (SELECT ones.n tens.n*10 hundreds.n*100 thousands.n*1000 1 AS n…...

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇&#xff0c;在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下&#xff1a; 【Note】&#xff1a;如果你已经完成安装等操作&#xff0c;可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作&#xff0c;重…...

测试微信模版消息推送

进入“开发接口管理”--“公众平台测试账号”&#xff0c;无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息&#xff1a; 关注测试号&#xff1a;扫二维码关注测试号。 发送模版消息&#xff1a; import requests da…...

React Native 导航系统实战(React Navigation)

导航系统实战&#xff08;React Navigation&#xff09; React Navigation 是 React Native 应用中最常用的导航库之一&#xff0c;它提供了多种导航模式&#xff0c;如堆栈导航&#xff08;Stack Navigator&#xff09;、标签导航&#xff08;Tab Navigator&#xff09;和抽屉…...

在rocky linux 9.5上在线安装 docker

前面是指南&#xff0c;后面是日志 sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install docker-ce docker-ce-cli containerd.io -y docker version sudo systemctl start docker sudo systemctl status docker …...

python/java环境配置

环境变量放一起 python&#xff1a; 1.首先下载Python Python下载地址&#xff1a;Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个&#xff0c;然后自定义&#xff0c;全选 可以把前4个选上 3.环境配置 1&#xff09;搜高级系统设置 2…...

使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台

🎯 使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台 📌 项目背景 随着大语言模型(LLM)的广泛应用,开发者常面临多个挑战: 各大模型(OpenAI、Claude、Gemini、Ollama)接口风格不统一;缺乏一个统一平台进行模型调用与测试;本地模型 Ollama 的集成与前…...

Docker 本地安装 mysql 数据库

Docker: Accelerated Container Application Development 下载对应操作系统版本的 docker &#xff1b;并安装。 基础操作不再赘述。 打开 macOS 终端&#xff0c;开始 docker 安装mysql之旅 第一步 docker search mysql 》〉docker search mysql NAME DE…...

Golang——6、指针和结构体

指针和结构体 1、指针1.1、指针地址和指针类型1.2、指针取值1.3、new和make 2、结构体2.1、type关键字的使用2.2、结构体的定义和初始化2.3、结构体方法和接收者2.4、给任意类型添加方法2.5、结构体的匿名字段2.6、嵌套结构体2.7、嵌套匿名结构体2.8、结构体的继承 3、结构体与…...

基于PHP的连锁酒店管理系统

有需要请加文章底部Q哦 可远程调试 基于PHP的连锁酒店管理系统 一 介绍 连锁酒店管理系统基于原生PHP开发&#xff0c;数据库mysql&#xff0c;前端bootstrap。系统角色分为用户和管理员。 技术栈 phpmysqlbootstrapphpstudyvscode 二 功能 用户 1 注册/登录/注销 2 个人中…...

【Linux系统】Linux环境变量:系统配置的隐形指挥官

。# Linux系列 文章目录 前言一、环境变量的概念二、常见的环境变量三、环境变量特点及其相关指令3.1 环境变量的全局性3.2、环境变量的生命周期 四、环境变量的组织方式五、C语言对环境变量的操作5.1 设置环境变量&#xff1a;setenv5.2 删除环境变量:unsetenv5.3 遍历所有环境…...