接口测试测什么?一个简单问题把我难住了!

那么设计测试用例时我们主要考虑如下几个方面:

01、功能测试

接口的功能是否正确实现了

接口是否按照设计文档中来实现

(比如username参数写为了user,那么这就不符合,因为接口文档在整个开发中都需要使用,所以接口实际的设计要与接口设计文档中保持一致)

  • 兼容性测试:

    比如说今天接口进行了调整,但是前端没有进行变更,这时候需要验证新的接口是否满足旧的调用方式

  • 错误码测试:

    通用的错误码与业务错误码是否能够清晰的说明调用问题,错误码是否能够尽可能的全的覆盖所有的情况

  • 返回值测试:

    返回值除了内容需要是正确的,还需要类型也是正确的,保证调用方拿到这些参数能够正确的解析

参数边界值、等价类测试

  • json格式测试:

    通常我们的接口一般设计的都是传递json串,那么就需要去测试 如果传递非json的情况,这时候程序会不会正确的处理,返回相应的 error code

  • 默认值测试:

    很多情况一些非必填的参数会有默认值,比如说一个查询的接口,参数count为返回查询的结果数量, 默认为10,那么就应该有一条case来测试,当然前置条件是数据库里面必须要存在这样的数据超过10条。

02、逻辑业务

是否有依赖业务,比如查看订单,是需要用户首先登录的,所以肯定要保证登录了或有相应的cookie

业务逻辑测试:传递正确的参数,接口对数据库进行查询的操作,需要去验证数据库查询是否正确,接口对数据库进行 增删改的操作,也需要看数据库是否同步进行了这些操作

图片

现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:691998057【暗号:csdn999】

03、异常测试

异常分为两类,参数异常数据异常

1、参数异常:

  • 关键字参数:

    将参数写为开发语言中的关键字

  • 参数为空:

    比如去掉了username参数

  • 多或少参数:

    多或者少参数的验证,现在还不确定如果一个接口多了参数如果没有报错是否是合理的,或者是否需要优化,因为就目前开发给予的答案是,一般不对接口多了参数的处理

  • 错误参数:

    比如将username参数写为了user等看是否能返回相应的error code

2、数据异常:

  • 关键字数据:

    将参数的值填为开发语言中的关键字

  • 数据为空:

    将参数的额值填为空

  • 长度不一致:

    因为数据库中每个字段都设置有字段长度,填写不符合的长度进行验证

  • 错误数据:

    就是将参数的值任意填写,或填写不存在的数值

  • 异常类型测试:

    比如count参数,这个参数的类型一定是可以转换为int类型的,这时候我们需要测试如果传的一些不可以 转换为int类型值来测试代码是否加入判断

04、性能测试

  • 响应时间

  • 吞吐量

  • 并发用户数

  • 占用内存,CPU等

05、安全性测试

敏感信息是否加密

必要参数是否后端也进行校验

(现在很多系统前后端架构是分离的,从安全层面来说,只依赖前端进行限制已经完全不能满足系统的安全要求(绕过前端太容易了), 需要后端同样进行控制,在这种情况下就需要从接口层面进行验证)

接口是否防恶意请求(SQL注入)

  • cookie

    将header中的cookie修改或删除后看是否能返回相应的error code

  • header

    删除或修改header中部分参数的值,看是否能返回相应的error code

  • 唯一识别码

    删除修改唯一识别码测试

以上就是本次分享,有学习自动化测试的伙伴有什么不清楚的,可以留言,看到了会及时回复!

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

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

相关文章

60V降12V3A降压芯片WT6037

60V降12V3A降压芯片WT6037 WT6037是一款高压同步降压转换器,可在10V到90V的宽输入电压范围内工作适用于宽电压输入12V-72V电池组系统降压和60V-90V降压应用。WT6037可提供4A连续负载电流,转换效达92%。 WT6037采用具有内置补偿的固定频率峰值电流控…

Element ui 改变el-transfer 穿梭框的大小

修改el-transfer 左右两个穿梭框的高度和宽度,具体效果如下正常大小的穿梭框修改之后的,主要在style中加上如下样式即可 /deep/ .el-transfer-panel{ width: 470px; /* 左右两个穿梭框的高度和宽度 */ height: 450px; } /deep/ .el-transfer-panel__li…

element的Table表格组件树形数据与非懒加载

1.代码实现 <template><div><el-row :gutter"10" class"mb8"><el-col :span"1.5"><el-button type"info" plain icon"el-icon-sort" size"mini" click"toggleExpandAll"&g…

Java面试题之集合篇

前言 本篇主要总结JAVA面试中关于集合相关的高频面试题。本篇的面试题基于网络整理以及自己的总结编辑。在不断的完善补充哦。欢迎小伙伴们在评论区发表留言哦&#xff01; 1、基础 1.1、Java 集合框架有哪些&#xff1f; Java 集合框架&#xff0c;大家可以看看 《Java 集…

[运维|gitlab] docker Gitlab 命令行后台修改密码

参考文献 docker Gitlab 初始化账号以及密码是什么呢 修改密码 进入容器 docker exec -it gitlab bash进入bin目录 进入gitlab的bin目录 cd /opt/gitlab/bin执行命令 执行gitlab-rails console gitlab-rails console执行命令 找到root的用户&#xff0c;输入uUser.where…

【每日面试题】Docker常见面试题精选

什么是Docker容器&#xff1f; Docker容器是一种轻量级的虚拟化技术&#xff0c;可以将应用及其依赖项打包在一个可移植的容器中&#xff0c;以便在多个环境中运行。 Docker镜像和容器之间有什么区别&#xff1f; Docker镜像是一个包含了应用程序及其依赖项的只读模板&#xf…

C#上位机与欧姆龙PLC的通信10----开发专用的通讯工具软件(WPF版)

1、介绍 上节开发了一个winform版的通讯测试工具&#xff0c;这节再搞个wpf版的&#xff0c;wpf是什么&#xff1f;请自行百度&#xff0c;也可以看前面的博客&#xff0c;WPF真入门教程&#xff0c;wpf的界面效果是比winform漂亮&#xff0c;因为wpf使用了web项目中的css样式…

java发送邮件到qq邮箱

自己的授权码自己记好 引入依赖 <dependency><groupId>com.sun.mail</groupId><artifactId>javax.mail</artifactId><version>1.6.2</version> </dependency> <dependency><groupId>javax.mail</groupId>&…

Socket与TCP的关系

前言 相信大家对于TCP已经非常熟悉了&#xff0c;学习过计算机网络的同学对于它的连接和断开流程应该已经烂熟于心了吧。 那么Socket是什么&#xff1f; Socket是应用层与TCP/IP协议簇通信的中间软件抽象层&#xff0c;它是一组接口。在设计模式中&#xff0c;Socket其实就是…

车位关键点检测-车位识别-车辆识别检测(教程+代码)

车位关键点检测、车位识别和车辆识别检测是现代智能交通系统中的重要技术&#xff0c;它们在提高停车管理效率和交通流畅度方面起着重要作用。以下是对这三个技术的分点阐述&#xff1a; 1. 车位关键点检测&#xff1a; 车位关键点检测是指通过计算机视觉技术&#xff0c;自动…

Docker中镜像的相关操作

1.辅助操作 docker version&#xff1a;用查看docker客户端引擎和server端引擎版本信息。 docker info&#xff1a;用来查看docker引擎的详细信息。 docker --help&#xff1a;用来查看帮助信息。 2.镜像Image docker images&#xff1a;查看当前本地仓库中存在哪些镜像。 …

解决uniapp打包成apk后uni.getStorageSync获取不到值

uniapp写的项目&#xff0c;在hbuilderx中云打包成apk后我在登录存储的token死都获取不到&#xff0c;导致后续接口请求头没有token连接不到接口&#xff0c;只有运行到手机或者模拟器还有打包成apk后是获取不到&#xff0c;其他的小程序还有网页都可以获取到 试过了很多种方法…

【递归】C++算法:124 二叉树中的最大路径和

作者推荐 【动态规划】【字符串】扰乱字符串 本文涉及的基础知识点 递归 124. 二叉树中的最大路径和 二叉树中的 路径 被定义为一条节点序列&#xff0c;序列中每对相邻节点之间都存在一条边。同一个节点在一条路径序列中 至多出现一次 。该路径 至少包含一个 节点&#x…

Android linphone-android sdk设置语音编码问题

1.遇到的问题 今天遇到linphone-android sdk需要解决语音编码问题&#xff0c;需要指定编码。查了下配置&#xff0c;里面没有发现类似的配置。 ## Start of factory rc # This file shall not contain path referencing package name, in order to be portable when app is r…

基于SpringBoot+thymeleaf的养老院管理系统(Java毕业设计)

大家好&#xff0c;我是DeBug&#xff0c;很高兴你能来阅读&#xff01;作为一名热爱编程的程序员&#xff0c;我希望通过这些教学笔记与大家分享我的编程经验和知识。在这里&#xff0c;我将会结合实际项目经验&#xff0c;分享编程技巧、最佳实践以及解决问题的方法。无论你是…

rtsp超分推流流程(一)

记录一下rtsp 推流的流程 播放一个RTSP的流需要如下的RTSP请求命令&#xff1a; OPTIONS -> DESCRIBE -> SETUP -> PLAY 然后就是接收RTP包、播放了 抓包分析出来&#xff0c;推流的RTSP请求命令如下&#xff1a; OPTIONS -> ANNOUNCE -> SETUP -> RECORD …

本地引入Element UI后导致图标显示异常

引入方式 npm 安装 推荐使用 npm 的方式安装&#xff0c;它能更好地和 webpack 打包工具配合使用。 npm i element-ui -SCDN 目前可以通过 unpkg.com/element-ui 获取到最新版本的资源&#xff0c;在页面上引入 js 和 css 文件即可开始使用。 <!-- 引入样式 --> <…

blender Texture Coordinate Node

Texture Coordinate Node — Blender Manual Generated纹理坐标是一种自动生成的纹理坐标&#xff0c;它不需要用户指定任何UV映射或对象空间。它是基于对象的边界框的坐标&#xff0c;也就是说&#xff0c;它是根据对象的最小点和最大点来定义的。 对象的边界框是一个包围对…

使用requests发请求操作Elasticsearch【一】

本文为博主原创&#xff0c;未经授权&#xff0c;严禁转载及使用。 本文链接&#xff1a;https://blog.csdn.net/zyooooxie/article/details/123730279 之前在测试环境查es数据&#xff0c;在用 Kibana&#xff1b;可下半年&#xff0c;因为某些原因 就不能用了。我就想着用代…

[NSSRound#3 Team]This1sMysql

[NSSRound#3 Team]This1sMysql 源码 <?php show_source(__FILE__); include("class.php"); $conn new mysqli();if(isset($_POST[config]) && is_array($_POST[config])){foreach($_POST[config] as $key > $val){$value is_numeric($var)?(int)$…