欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

接口测试

程序员文章站 2024-03-24 10:28:58
...

一.业务层面

  1.字段是否必填(必填 or 非必填),要同时检查request和response
  2.字段是否必要,从业务角度出发考虑,该字段是否需要保留

二.类型检查

关注常用类型:int, decimal, String, bool, 枚举等
(通过系统结构和数据流了解数据的流向、转换、落地)
1.类型使用是否正确(尤其是http接口):
  使用String还是原始类型
2.枚举的常量选项是否正确
  对于外部用户调用的接口,肯定不需要内部传递的枚举值
3.是否有校验
  类型是否符合要求
  精度是否符合要求
  必填项是否有值
  入参为null或者空字符串,有无检验
  对于枚举值的传入,是否属于枚举列表中的值
4.长度
  是否够长,超过部分是否截断还是发出警告
5.精度
  是否符合要求,通常金额为2位小数
  传输过程是否可以保证精度不会改变
  得到的数据是否会自行调整精度(截断或者四舍五入不可取,应该直接校验传入的精度)
6.时间
  该使用日期(2015-11-12), 还是时间(2015-11-12 14:00:00), 还是时间戳(1449849600000)
  单位:【秒】还是【毫秒】
  时区:服务器的日期是否会根据请求者的时区进行转换;或者在request中和response中直接带上时区信息

三.数据流转

 数据在系统间的流转会发生一系列的变化,例如转换、封装、组装、丢弃等情况
 现在列出一些场景:
 数据库的读写(bean 与 数据库字段间的转换)
 MVC中 数据的转换(网络数据 与 Model ,M与V ,M与data层,bean之间的转换 等)
 后端与前端的兼容(touch  ios   adr   pc)
 不同类型接口的转换:dubbo   http   https 

四.性能

[数据库]
 数据库数据库读写,读写哪个比重更大?根据实际情况做读写分离,分表。
 主从同步对于数据一致性的影响,写入后,多久可以使从库的数据同步完毕,从而拿到完整的数据
 是否采用本地存储,比如历史浏览存储在用户手机端,不与服务器进行交互

[多线程]
  代码是否需要多线程处理数据(考虑数据的完整性、一致性)
  线程池根据业务量进行设置,确保系统稳定,同时能够在单位时间内处理尽可能多的业务

 [Tomcat]    
 (http://jingyan.baidu.com/article/7f41ececf6b34d593d095cad.html)
  JVM栈内存根据业务进行调优
  更高版本的tomcat(e.g. tomcat7.0)支持监听内存泄漏
  调整maxThreads加大并发请求数量
  配置压缩,减少传输数据

 [Nginx]
  Nginx是否对静态文件做了缓存处理
  是否开启了压缩
  多台机器提供服务时,可根据机器性能,将量大的请求打到性能更好的机器上
  需要支持上传文件时,需要根据业务实际,判断是否需要修改ng上传文件size的配置
  检查接口是否需要ng对cookie进行处理(检查或者过滤)

  [缓存]
  机器内存的使用
  memcache,redis的使用

  [CPU]
  判断是否是高CPU的服务,判断是否需要升级硬件配置

  [http]
  是否开启了压缩

五.协议

根据业务和性能选择合适的版本

1.协议的选择
        TCP or UDP
        http or RPC(Dubbo)
        直连 or qmq
        拉取 or 推送
2.协议的使用
        长连接还是短连接
        同步 or 异步
        实时 or 延迟

六.通用测试

[安全测试]

[功能测试]

七.监控

对接口的调用情况进行监控

1.接口类型
  调用外部接口的监控
  对外提供的接口的监控
2.监控指标
  调用的总次数、成功次数、失败次数、qps 等
  成功率、失败率
  各种指标的汇总,对比等
3.根据业务加阈值和报警
   失败的阈值,要考虑严重性以及是否有参数错误导致失败的情况,进行阈值设置
   成功的阈值,要考虑量起来后对系统的压力