设想下一种情况:您有一些第三方API,其中有些方法还没有测试环境。因此,您编写了自定义测试服务,用方法的测试实现来模拟第三方API的行为。第三方API可能抛出异常或返回响应模型,从而获得一些成功/失败的状态。
我想要编写测试服务,它可以配置为根据总请求/方法调用计数N(这也随着每个请求而增加)抛出异常,并提供抛出某些异常的百分比概率。
例如:如果提供了10%,那么这意味着该方法应该以10%的概率抛出异常。
问:是否有某种数学公式来解决这个问题?
如果表示它的代码,我想写这样的东西
boolean shouldThrow(int probabilityPercentage, long currentTotalExecutionsCount) {
return // and here this magic math formula to make a decision
}发布于 2022-11-17 15:43:40
基于对问题的描述,currentTotalExecutionsCount不应影响异常的概率。因此,您只需执行以下操作:
import java.util.Random;
...
Boolean shouldThrow(int probabilityPercentage) {
Random generator = new Random(System.currentTimeMillis());
return generator.nextDouble() * 100 < probabilityPercentage ? true: false;
}如果希望基于currentTotalExecutionsCount更改概率,则需要相应地采用随机生成器。
https://stackoverflow.com/questions/74475529
复制相似问题