瓜瓜
瓜瓜
发布于 2024-01-21 / 31 阅读
0
0

服务故障演练的测试内容与模拟手段

在之前的测试工作中,我遇到过第三方服务异常,但由于我们产品内部未能对改依赖服务的特定异常进行处理,导致了业务功能异常掉线。因此,我将总结在测试工作中如何通过服务故障演练来避免这种问题的发生。

一、关键测试内容及其期望值

  1. 依赖服务返回异常状态码:当依赖服务返回异常状态码时,被测服务应返回服务端异常描述。我们需要通过模拟异常状态码来保证被测服务具备异常状态码的识别与处理能力。

例如,若依赖服务因内部逻辑错误返回特定的异常状态码,被测服务需及时捕捉并返回诸如 “服务端出现故障,请稍后重试” 的明确描述。

  1. 依赖服务返回超时:在此情况下,被测服务需具备超时处理机制,且在触发该机制时返回超时信息的描述。

比如,当依赖服务因网络拥堵等原因未能在规定时间内响应,被测服务应迅速触发超时机制,并向用户反馈 “请求超时,请检查网络连接或稍后再试”,避免用户长时间无响应等待,提升用户体验。

  1. 依赖服务异常下线:依赖服务异常下线时,测试人员需要通过模拟依赖服务异常下线的方式来确保被测服务的可用性,并需要确保被测服务有返回服务异常的描述。

二、实用的场景模拟测试工具与手段

  1. 测试工具:Fiddler、Charles、BurpSuite 以及自动化桩等工具在服务故障演练中发挥着关键作用。这些工具需要代理被测服务的服务器,以便实现对各种异常场景的模拟与监测。

  2. 模拟手段

    • 依赖服务返回异常状态码:通过抓包工具篡改结果返回。以 Fiddler 为例,它能捕获依赖服务与被测服务之间的通信数据包,我们可以在这些数据包中找到返回结果部分,并将其修改为异常状态码,从而模拟依赖服务返回异常状态码的情况,测试被测服务的响应。

    • 依赖服务返回超时:利用抓包工具拦截依赖服务的回调。比如 Charles 工具,它可以设置规则,拦截依赖服务给被测服务的回调信息,使得被测服务长时间收不到响应,进而模拟出依赖服务返回超时的场景,检验被测服务的超时处理机制是否有效。

    • 依赖服务异常下线:采用 “kill -9 对应进程” 的方式。在服务器环境中,通过命令行执行 “kill -9” 指令关闭依赖服务对应的进程,模拟依赖服务异常下线的情况,观察被测服务能否保持可用性并给出合理的异常描述。


评论