如何用JS实现按100递增的随机出价逻辑,解决Cypress测试报错
问题原因
你当前的代码生成的是100到1000100之间的任意整数,没有强制要求为100的倍数,因此会触发系统的出价步长校验报错。
实现思路
- 先将出价范围映射为100的倍数的整数区间:你设定的最小出价100对应倍数1(1100=100),最大出价1000000对应倍数10000(10000100=1000000)
- 生成该整数区间内的随机整数
- 将随机整数乘以100,得到符合步长要求的出价金额
可用代码实现
const step = 100; const minval = 100; const maxval = 1000000; // 计算上下限对应的倍数 const minMultiple = minval / step; const maxMultiple = maxval / step; // 生成[minMultiple, maxMultiple]闭区间内的随机整数 const randomMultiple = Math.floor(Math.random() * (maxMultiple - minMultiple + 1)) + minMultiple; // 得到最终出价 const bidAmount = randomMultiple * step;
Cypress适配优化
如果需要在多个测试用例中复用该逻辑,可以封装为Cypress自定义命令:
- 在
cypress/support/commands.js中添加定义:
Cypress.Commands.add('generateRandomBid', (min = 100, max = 1000000, step = 100) => { const minMultiple = min / step; const maxMultiple = max / step; const randomMultiple = Math.floor(Math.random() * (maxMultiple - minMultiple + 1)) + minMultiple; return randomMultiple * step; })
- 测试用例中直接调用即可:
const bidAmount = cy.generateRandomBid()
内容的提问来源于stack exchange,提问作者Luna
相关产品推荐
相关产品推荐

