侧边栏壁纸
  • 累计撰写 23 篇文章
  • 累计创建 12 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

服务端测试策略

usoo
2023-02-16 / 0 评论 / 0 点赞 / 57 阅读 / 0 字

前言

现在公司里的项目都准备重构成微服务架构,微服务处理的单元粒度更细,每个服务可以独立开发,更有利于业务的扩展。从测试角度来看,制定好服务端相关测试策略,能够更早介入测试,更早的发现问题。这里总结下我落地的服务端测试策略。

测试策略模型的选择

  • 面向微服务测试,需要测试分层,每一层的测试颗粒度有所不同。选取测试策略模型一定要基于现实情况的痛点出发,结果导向,通过调整测试策略来解决痛点。
  • 模型演进过程是金字塔->近似钻石(除非功能测试外,类似于钻石模型)->蜂巢。

v2-d1b015ac077064bf8e3bfe4a8e2add18_r.jpg

服务端的元素及测试策略

后端服务有以下几个测试元素以及对应的测试策略。

一、对外接口

  • 场景模拟方式:接口
  • 测试策略:接口层可分为输入(Input)、业务处理(handle)、输出(Output)3个维度。
  1. 输入(Input):

      1)必填项校验。
      2)数据类型校验。
      3)时间戳
      4)输入参数是否满足调用方。
      5)接口定义的调用方法是否方便。
      6)身份秘钥及敏感信息校验。
    
  2. 业务处理(handle):

      1)约束条件(数值限制、状态限制、关系限制、权限限制、时间限制)。
      2)数据类型校验(int、string、bool、列表字典)。
      3)时间戳(负数、足够大、足够小)
      4)输入参数是否满足调用方。
      5)接口定义的调用方法是否方便。
      6)身份秘钥及敏感信息校验。
    
  3. 输出(Output):

      1)不安全的路径输出。
      2)敏感信息加密。(身份证、密码、银行卡等不能直接明文返回)
      3)文档对齐(正常的输出参数、是否有额外参数未体现、值正确性)
      4)输出参数是否满足调用方。
    

二、三方与内部交互接口

  • 场景模拟方式:模拟三方服务的处理

  • 测试策略:被测服务与三方服务交互异常的情况。

      1.被测服务请求依赖服务的协议正确性。
      2.依赖服务返回超时。
      3.返回处理异常情况(包括状态码、返回体)
      4.依赖服务宕机(网络问题、运维问题)
      5.依赖服务的数据处理情况(空数据、单数据、多条数据)
    

三、数据存储

  • 场景模拟方式:接口、db

  • 测试策略:

      1.正常的数据读写功能(增删查改)
      2.数据一致性校验。
      3.缓存机制的校验。
      4.服务器资源利用率
    

四、服务端稳定性、高可用

  • 场景模拟方式:接口性能测试
  • 测试策略:
  1. 稳定性测试策略:长时间的性能测试,观察cpu使用率、内存使用率是否有递增,事务失败率是否异常,tps是否有波动。
  2. 高可用测试策略:服务需要保证所有异常场景都被处理,所以测试用例的测试颗粒度需要尽可能的细,比方说所有入参校验、服务交互异常、压力测试观察服务状态、服务升级回滚机制等场景。

五、服务端安全性场景

  • 场景模拟方式:接口、db

  • 测试策略:

      1.请求协议在不加密的情况下是否能请求成功
      2.返回协议是否有加密处理
      3.加密的方式是否严谨,容不容易被他人解开
      4.加密后的数据服务端侧是否能够正常解析
      5.加密后的消息体是否具备时效性
    

六、环境监控,日志采集

  • 服务监控手段:环境实例监控、日志采集
  • 测试策略:
  1. 环境监控:观察服务的性能指标、实例状态。
  2. 日志:采集埋点数据和服务运行日志,如线上出现问题以便于快速定位并解决。

七、服务端启动配置项

  • 场景模拟方式:启动配置项修改
  • 测试策略:
  1. 配置是静态更新:通过去配置中心修改配置重启服务,验证配置映射到业务逻辑的正确性。
  2. 配置是动态更新(热更新):通过去配置中心修改配置,直接验证配置映射到业务逻辑的正确性。

八、实例管理

  • 测试策略:
  1. 故障演练。应用存在多个实例,其中一个实例异常时,是否会影响其他实例的正常运行。
  2. 数据升级测试。由测试进行数据升级测试,新版本有对应的表结构,测试需要关注升级的数据是否向上兼容,根据上线步骤会不会影响的历史版本数据的处理。
  3. 服务回滚测试。需要模拟服务上线后,校验对应的回滚策略,通常只需要评估回滚策略是否平滑,会不会影响到之前的用户数据
0

评论区