一般理解的接口测试无非就是,输入url、参数值,点击请求发送查看一下响应值和响应状态码是否正常就完事儿了。

但是接口测试真正的关注点不值这些,今天就给大家说说接口测试有那些需要关注的地方。

在实际项目中,后端接口测试通过后,一般前端还需要再测试一遍,读者可能会提出疑问:后端接口测试一遍,前端也测试一遍,是不是重复测试了?其实这两者并不重复,区别在于后端接口测试和前端功能测试各自的侧重点不一样,后端接口测试侧重点是检查数据的交换、传递和控制管理过程。而前端功能测试更加测试检测提供给用户的使用功能是否正确可用。虽然各种测试的重点不一样,但也存在相同的部分,以功能测试、业务逻辑测试、性能测试和安全测试为例:

一、接口功能关注点

功能测试:由于测试最终的目标都是业务功能是否正确且稳定可用,所以不管是前端给用户使用的功能策是,还是后端的接口测试,功能保障是基本要求,也是后端测试和前端测试两种测试重合度最高的一块。

具体关注点:

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

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

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

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

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

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

二、接口业务逻辑测试

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

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

三、接口性能测试

1.接口响应时间

2.接口对应的服务器的吞吐量

3.接口并发数量

4.服务器进出口带宽

四、接口安全测试

1.接口中敏感信息是否加密

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

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

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

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

6.唯一识别码:删除修改唯一识别码测试

五、接口测试工具

apipost可以进行接口的功能测试和业务逻辑测试,除此之外还有强大的接口文档生成功能。

jmeter强大的接口性能测试功能

接口测试并不只是测试参数和返回值相关推荐

  1. 测试私有方法_Java基础之抽象类、接口作为方法参数和返回值

    不同修饰符使用细节 常用来修饰类.方法.变量的修饰符 public 权限修饰符,公共访问, 类,方法,成员变量 protected 权限修饰符,受保护访问, 方法,成员变量 默认什么也不写 也是一种权 ...

  2. libsvm中svmtrain的参数和返回值

    对svmtrain函数的输入参数和返回值进行说明 1. 训练 libsvm函数用于对训练集的数据进行训练,得到训练好的模型. model = libsvmtrain(training_label_ve ...

  3. 【C# 调用 Go 语言】0x2 参数、返回值与类型转换

    在上篇文章[C# 调用 Go 语言]0x1 Hello Golang  中,我们将 Golang 源码编译为动态链接库(dll),用 C# 调用 Golang 导出的方法并成功的看到了控制台的输出.本 ...

  4. java分布式对象——远程方法中的参数和返回值+远程对象激活

    [0]README 1)本文文字描述转自 core java volume 2, 旨在学习 java分布式对象--远程方法中的参数和返回值+远程对象激活 的相关知识: [1]远程方法中的参数和返回值 ...

  5. 本地方法(JNI)——数值参数与返回值

    [0]README 1) 本文部分文字描述 转自 core java volume 2 , 旨在理解 本地方法(JNI)--数值参数与返回值 的基础知识 : 2) for source code, p ...

  6. java中类作为成员变量类型使用、接口作为成员变量类型使用、接口作为方法的参数或返回值使用

    类作为成员变量类型使用: 自定义的类也可以作为成员变量使用,如: // 1.创建一个电脑角色的类: public class Computer{private String computername; ...

  7. java输出结果校验_2. Bean Validation声明式校验方法的参数、返回值

    你必须非常努力,才能干起来毫不费力.本文已被 https://www.yourbatman.cn 收录,里面一并有Spring技术栈.MyBatis.JVM.中间件等小而美的专栏供以免费学习. ✍前言 ...

  8. 使用反射获得jar包中的类、方法、参数、返回值类型,然后动态加载jar包运行方法

    其实我的需求是在系统中 测试用户导入的jar包,所有网上找了很多解决方案,踩过很多坑,再加上以前搞c++的,对java不是很熟, 这里特意记录下,算是基本满足需求了 使用反射获得jar包中的类.方法. ...

  9. libsvmpredict和svmtrain的参数和返回值

    对svmtrain函数的输入参数和返回值进行说明 1. 训练 libsvm函数用于对训练集的数据进行训练,得到训练好的模型. model = libsvmtrain(training_label_ve ...

最新文章

  1. 【Codeforces】716B Complete the Word (26个字母)
  2. 运用Smark.SocketAsyncs方便实现数据交互服务
  3. Lazada代运营怎么样?需不需要找?如何选择一家靠谱的公司
  4. 关于PyTorch中的register_forward_hook()函数未能执行其中hook函数的问题
  5. 图形驱动程序和显卡驱动什么区别_以后你的手机也需要单独安装显卡驱动程序了...
  6. 用 WebClient.UploadData 方法 上载文件数据
  7. Java中Spring中的方法加上try catch后事务管理器失效无法回滚的情况
  8. thinkphp 手机号和用户名同时登录
  9. stm32Cubemx(8):RTC和RTC唤醒中断
  10. virtualxposed使用教程_VirtualXposed框架虚拟机——无需root体验xposed框架
  11. android键盘坏了怎么办,手机虚拟键盘失灵怎么办
  12. 微信企业号开发七:JSAPI模式
  13. Linux搭建泰拉瑞亚(原版/模组/插件)服务器之1.3模组服务器
  14. 和stormzhang面基后的5点感悟,值5次付费199!
  15. Java基础 switch用法
  16. 移动端UI设计规范参考
  17. banner设圆角_C4D和PS如何制作banner
  18. portal.php+mod,DISCUZ程序精简(去除Powered by Discuz和forum.php后缀)
  19. [selenium爬知乎热榜
  20. typecho category.php,typecho主题制作

热门文章

  1. socket通信基础知识
  2. VMware vSphere 性能优化设计经验+优化方法 | 周末送资料
  3. 你不知道的《阿里巴巴Java开发手册》背后故事
  4. 养成10个优秀的习惯
  5. strtof linux内核,Qt for Android使用grpc探索
  6. Day08- team、iptables、firewall
  7. 中继链路,以太网通道,DHCP配置
  8. nullnullProcessing Bitmaps Off the UI Thread 处理来自UI线程的位图
  9. [转]ASP.net(c#)生成条形码
  10. 利用递归遍历文件夹和文件存入TreeView