接口用例如何写?接口测试用例设计方法(详解)

news2024/12/25 9:03:09

目录:导读

    • 前言
    • 一、Python编程入门到精通
    • 二、接口自动化项目实战
    • 三、Web自动化项目实战
    • 四、App自动化项目实战
    • 五、一线大厂简历
    • 六、测试开发DevOps体系
    • 七、常用自动化测试工具
    • 八、JMeter性能测试
    • 九、总结(尾部小惊喜)


前言

1、接口常遇见的bug和问题

传入不合规参数,导致程序crash;
数据类型溢出,导致数据读出和写入不一致;
因对象权限未进行校验,可以访问其他用户敏感信息;
状态处理不当,导致逻辑出现错乱;
逻辑校验不完善,可以利用漏洞获取非法利益;

2、测试用例设计

输入- 接口处理逻辑 – 输出-
一个接口通常有输入,输出,有时候输出也是没有的,
用例设计考虑,输入, 输出

针对输入,可以按照参数类型设计;
针对处理,可以按照逻辑进行用例设计;
针对输出,可根据结果进行分析设计;

详情:
针对输入设计:
数值型:
等价类:取值范围内,取值范围外
边界法:取值范围边界:边界最大,最小;边界最小-1,最大+1等
特殊值:0,负值等
遍历法:取值范围的所有数值遍历

举例:一个输入值的范围是int 1-12,需要考虑范围内的值;边界值0,1,12,13;类型的特殊值-1,0;还有int的最小,最大边界值也需要考虑; 如果1-12有指定含义代表,还需要遍历所有数值

风险:特殊值,边界值处理不当,程序退出,数据溢出,返回错误信息等
Int: 数据类型边界:-2147483648 ,2147483648。 (Integer.MAX_VALUE)

字符串型:
字符串长度:
等价法:取值范围内,取值范围外
边界法:规定范围边界,类型边界
特殊值:0,即空字符

字符串内容:
特定类型:英文,中文,大小写等
特殊字符:>,<*!@#$%等
敏感字符:“flg”“TMD""等

举例:接口的功能字符串长度为3位,测试长度:3位,比3多,比3少;
String的最大长度;特殊的空字符;字符串内容是数字,非数字等;特殊字符;是否需要过滤敏感字符;

风险:传入其他类型,超长字符,敏感字等,程序是否异常退出,是否显示,存储有问题,时候特殊处理敏感字

数组或链表类型:
成员个数:
等价法:取值范围内,取值范围外
边界法:规定范围边界,个数边界值
特殊值:0等

成员内容:
等价类:合法和非法成员
重复法:重复的成员
举例:接口接受的数组取值长度一般是5个,取值1-5个内,范围外6个
边界值,请求允许的最大,最小值;特殊值,0个;内容的合法,不合法;重复的内容是否可以
风险:0个是是否异常退出,重复的内容是否允许

针对逻辑设计
约束条件分析:
数值限制:分数限制,金币限制,等级限制等(满足条件才可以执行)
状态限制:需要先登录等(同步信息等)
关系限制:绑定的关系,好友关系等
权限限制:管理员等
风险:约束条件判断不足,用户可以特殊手段获利等

操作对象分析:
操作通常是针对对象的,针对合法和不合法对象进行操作,后台处理会如何
风险:用户可以非权限的操作

状态转换分析:
被测逻辑抽象成状态机,各个状态之间根据各功能逻辑切换,如果打乱这个顺序,跳转操作,就会有逻辑问题,验证正确性
风险:通过特殊手段达到原本不能的状态,从而获利等

时序分析:
在一些复杂的活动中,一个活动是由一系列动作按照指定顺序进行的,只有按照顺序依次执行完成,才能得到预期结果。正常的流程里,动作依次按序执行,不会打乱,但在接口测试时,需要考虑如果不按时序执行,是否会有问题。

例如:客户端数据同步是由客户端触发执行的,期间用户无法干预。功能测试的时候见到的就是,是否能正常同步,进一步拆解,同步流程就是一些列动作。

例如:获取用户信息,发起请求,后台返回登录信息,本地在上传本地数据,后台校验数据,生成diff和对应新增号,返回增量数据及编号,本地在上报冲突,后台处理冲突,返回客户端同步完成的信息。

接口需要依次调用才可以同步完成,但是接口测试的时候就可以测试打乱这个顺序的执行情况,是否异常等。
风险:非顺序执行后,数据出现异常,可能还有其他程序问题

针对输出设计:
针对输出结果:正确结果可能只有一个,但是错误的情况很多。可以根据返回结果列表或者类型,进行用例设计。

风险:
错误前端处理不足,导致前端异常;
错误提示处理不当,用户看到晦涩的程序码;
错误提示不当,用户不知道哪出现问题,如何解决

接口超时:
接口正常情况下是有返回的,如果接受不到返回呢?接口超时处理也是需要考虑的部分,如果处理不当,造成整个流程阻塞,超时后又接收到返回值,导致逻辑错乱。

其他测试合计:
已废弃接口测试:
废弃的接口,存在没有及时删除的情况,需要做好相关废弃接口的检查,以免出现问题。

接口设计合理性分析:
以下几个方面分析:
接口字段是否冗余;
接口是否冗余;
接口是否返回了调用方期望得到的信息;
接口定义是否可满足所有的调用需求;
接口定义调用是否方便;

安全性测试:
针对非专业的安全测试人员,更多的关注业务方面的安全,可以进行如下考虑:
接口是否使用了https协议;
接口的请求数据是否加密处理;
保存到库的关键信息是否做过加密处理;
是否对一些常用的工具请求做了限制;
接口是否对同一IP的访问次数做了限制;

测试项目:
重复提交,并发测试,分布式测试(负载均衡测试),环境异常测试,大数据量测试

性能测试关注点:
响应时间,吞吐量,并发数,服务器性能:(CPU,内容,IO,网络)

下面是我整理的2023年最全的软件测试工程师学习知识架构体系图

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

执着奋斗,拥抱挑战,勇往直前,勇敢闯荡。不畏困难,不惧失败,用智慧与勇气跨越障碍,在奋斗的道路上创造辉煌。相信自己的潜力,追逐梦想,成就非凡的人生旅程!

在每个黎明,奋斗的曙光照亮前路,与勇气为伴,向着梦想扬帆起航。不畏挑战,超越极限,让努力和汗水铺就成功之路。相信自己的坚持,不断奋斗,终将绽放属于自己的辉煌花朵!

勇往直前,坚持拼搏,奋斗的力量将开启无尽可能。不论起点如何,只要心怀梦想,努力向前,就能穿越风雨,迎接辉煌。

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

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

相关文章

【TiDB理论知识 07】SQL执行流程

一 DML语句读写流程 1 DML语句读流程概要 用户发出SQL 被协议层接收 Protocal Layer 通过PD获取时间戳 parse模块 解析SQL&#xff0c;通过词法解析 与 语法解析 生成AST语法树 编译SQL Compile模块 ,区分点查 与 非点查&#xff0c;生成执行计划 发送给Executor,从TIKV获…

【尚硅谷】索引优化分析

目录 1. 常用指令查使用引擎的指令 sql 优化合并去重分页显示模糊查询 索引优化单表优化两表优化 1. 常用指令 常用指令&#xff1a; 查询日志&#xff1a;默认关闭&#xff0c;记录查询的sql语句&#xff08;比如慢查询&#xff0c;大于多少秒的都记录&#xff09;&#xff0…

Linux共享库库+例子

1.什么是共享库&#xff1f;有什么优点&#xff1f;和静态库有什么区别&#xff1f; Linux动态库&#xff08;Dynamic Link Library&#xff0c;缩写为DLL&#xff09;是一种在Linux系统中使用的共享库&#xff08;Shared Library&#xff09;。与静态库不同&#xff0c;动态库…

船舶推进系统故障诊断(Python代码,多通道信息融合)

1.代码运行环境要求&#xff1a;TensorFlow版本>2.4.0&#xff0c;python版本>3.6.0 船舶推进系统是船舶的重要组成部分&#xff0c;其功能是提供动力以推动船舶前进。故障可能由多种因素引起&#xff0c;以下是船舶推进系统常见的故障类型&#xff1a; 发动机故障&…

k8s部署新版elasticsearch+kibana并配置快照备份

版本:es 7.17.6 kibana 7.17.6 k8s:1.19.16 一、介绍 Elasticsearch和Kibana是一对强大的开源工具&#xff0c;通常一起使用以构建实时数据分析和可视化解决方案。 Elasticsearch: Elasticsearch是一个分布式、高性能的实时搜索和分析引擎。它构建在开源搜索引擎库Lucene之上…

Java基础阶段学习哪些知识内容?

Java是一种面向对象的编程语言&#xff0c;刚接触Java的人可能会感觉比较抽象&#xff0c;不要着急可以先从概念知识入手&#xff0c;先了解Java&#xff0c;再吃透Java&#xff0c;本节先来了解下Java的基础语法知识。 对象&#xff1a;对象是类的一个实例&#xff0c;有状态…

2023.07.26【微生物】|qiime2组间分析,ANCOM算法介绍与结果解读

目录 摘要ANCOM简介主要步骤数据聚合添加伪计数计算特征差异 结果解读火山图差异显著特征统计表差异显著特征百分位数统计表优缺点 总结 摘要 在使用qiime2进行16S/ITS分析的时候&#xff0c;少不了对样品进行组间分析。除了常见的PicRust和Lefse分析之外&#xff0c;qiime2自…

web前端tips:js继承——借用构造函数继承

上篇文章给大家分享了 js继承中的原型链继承 web前端tips&#xff1a;js继承——原型链继承 在文章末尾&#xff0c;我提到了 原型链的继承&#xff0c;子类需要传递参数给父类的构造函数&#xff0c;就无法通过直接调用父类的构造函数来实现&#xff0c;需要通过中间的过程来…

分享5款有点冷门的实用派软件

​ 分享5款冷门但值得下载的Windows软件&#xff0c;个个都是实用&#xff0c;你可能一个都没见过&#xff0c;但是 我觉得你用过之后可能就再也离不开了。 系统监控——XMeters ​ XMeters是一个系统监控软件&#xff0c;可以让你在任务栏上显示各种系统信息&#xff0c;如C…

(十九)使用InfluxDB搭建报警系统

以下内容来自 尚硅谷&#xff0c;写这一系列的文章&#xff0c;主要是为了方便后续自己的查看&#xff0c;不用带着个PDF找来找去的&#xff0c;太麻烦&#xff01; 第 19 章 使用InfluxDB搭建报警系统 19.1 什么是监控 1、监控其实每隔一段时间对数据计算一下。比如&#xf…

SAS-数据集添加序号

一、数据集添加序号 方法1&#xff1a;data步生成 方法2&#xff1a;proc sql生成 /** 方法1 **/ data class1; set sashelp.class; seq _N_; /** 添加序号 **/ run; /** 方法2 **/ proc sql;create table class2 as select monotonic() as id, * /** monotonic()添加id **…

航空发动机支架质量检测非接触式全尺寸测量CASAIM 3D扫描仪

发动机是实现飞行的强大“心脏”支撑&#xff0c;发动机支架是飞机这一精密而复杂系统中不可或缺的一部分,它将巨大而沉重的发动机牢固安装在飞机上,使其可以承受各种飞行载荷和各种未知的挑战&#xff0c;因此航空发动机支架的质量检测和尺寸测量至关重要。 使用CASAIM 3D扫描…

【java实习评审】对小说详情模块的服务封装比较到位

大家好&#xff0c;本篇文章分享一下【校招VIP】免费商业项目“推推”第一期书籍详情模块java同学的代码作品。该同学来自成都信息工程大学。本项目亮点难点&#xff1a;1 热门书籍在更新点的访问压力&#xff0c;2 书籍更新通知的及时性和有效性&#xff0c;3 书荒:同好推荐的…

文档翻译软件那么多,哪个能满足你的多语言需求?

想象一下&#xff0c;你手中拿着一份外文文件&#xff0c;上面记录着珍贵的知识和信息&#xff0c;但是语言的障碍让你无法领略其中的内容。而此时&#xff0c;一位翻译大师闪亮登场&#xff01;他的翻译技巧犹如一把魔法笔&#xff0c;能够将文字的魅力和意境完美传递。无论是…

OpenShift 4 - 为 OpenShift 托管集群配置用户认证(视频)

《OpenShift / RHEL / DevSecOps / Ansible 汇总目录》 说明&#xff1a;本文已经在 OpenShift 4.13 ACM 2.8 AWS 环境中验证 本文是《OpenShift 4 - 用 HyperShift 实现以“托管集群”方式部署运行 OpenShift 集群&#xff08;视频&#xff09;》的后续。 文章目录 托管集群…

【vue3】vue3的一般项目结构、成功显示自己的vue3页面

一、vue3的一般项目结构 Vue 3并没有规定特定的项目结构&#xff0c;因此您可以根据项目的需求和个人偏好来组织您的Vue 3项目。以下是一个常见的Vue 3项目结构示例&#xff0c;供参考&#xff1a; your-project/|- public/| |- index.html # 应用程序的入口HTML文件…

项目里程碑有什么作用?设置里程碑时应注意什么?

正如 "里程碑 "一词的原意是表示所走距离的标记&#xff0c;项目中的里程碑也代表着迄今为止已完成的任务或活动。但实际上&#xff0c;里程碑的作用远不止于此。 项目里程碑为何重要&#xff1f; 项目的成功取决于细节。项目里程碑之所以重要&#xff0c;是因为它…

会不会好奇ai绘画生成器?ai创作的灵感从何而来?

在这个宁静的公园里&#xff0c;阳光透过树叶的缝隙洒在的地面上&#xff0c;微风轻拂着艺术家的发丝&#xff0c;带来一丝清凉。坐在长椅上的他&#xff0c;手中紧握着一支触控画笔&#xff0c;目光凝视着眼前的美景。旁边一台智能绘画助手正在悄悄发光&#xff0c;它似乎能够…

99%误报与1%真实告警之间,差一个“威胁情报”

在网络安全领域&#xff0c;平均检测时间&#xff08;MTTD&#xff09;与平均响应时间&#xff08;MTTR&#xff09;是衡量企业应对威胁事件能力的重要指标。根据 SANS 2019 事件响应的调查&#xff0c;52.6%的企业平均检测时间少于24小时。一旦检测到事件&#xff0c;67%的企业…