从开发角度设计服务端测试用例

发布时间 2023-08-10 17:29:32作者: 天外归云

[本文出自天外归云的博客园]

下面对一些服务端测试用例的设计思路做一个简单总结

异常参数值组合测试

涉及:接口测试、单元测试

方法:

  • 构造足够多种“异常类型数据”以及足够多种“异常参数组合”对接口或函数进行接口测试或单元测试

非法请求测试

涉及:接口测试

方法:

  • 请求接口时,不附带鉴权信息或带非法的鉴权信息,检查大量请求接口是否会对服务以及关联中间件服务产生大量压力

缓存中间件击穿测试

涉及:CodeReview、接口测试

方法:

  • 走查接口代码逻辑,若涉及缓存,针对缓存逻辑进行测试用例设计,着重针对key值不存在的穿透逻辑以及key值过期的击穿逻辑进行测试方案设计

主路径逻辑覆盖测试

涉及:CodeReview、用例评审、接口测试

方法:

  • 走查接口代码逻辑,确保测试用例覆盖到所有的return分支

查询类接口性能测试

涉及:CodeReview,数据构造,接口测试

方法:

  • 接口否需要做了缓存保护,如果没有缓存,大量的请求是否会将数据库服务打崩
  • 接口逻辑中是否做好合理分页逻辑,数据库表针对常用查询条件是否有合理的索引设计,数据量大的情况下,是否会有慢查询产生

数据一致性测试

涉及:CodeReview,接口测试(组合验证)

方法:

  • 涉及增、删、改数据库操作,并涉及缓存,确保缓存也同步进行了增、删、改
  • 设计测试用例时可以进行组合接口测试,请求接口验证数据库值发生变化后,通过其他接口查询涉及的缓存是否及时同步做了更新

故障注入测试

涉及:CodeReview,混沌实验

方法:

  • 通过ChaosBlade工具来实现对指定后端服务所在节点的故障注入,比如:CPU、内存、磁盘占用、网络丢包、网络延迟等
  • 通过ChaosBlade工具对Java服务做自定义异常注入和自定义脚本注入,对指定的类方法进行拦截,抛出自定义异常或替换成我们自己写的java方法,实现逻辑替换,控制函数返回值