在性能测试期间,当我收到包含以下项的响应时,我会遇到问题:
{"item":{"id":2733382000000000049}}
字符串
k6 response.json()
将其解析为:
{"item":{"id":2733382000000000000}}
型
所以它将最后一位替换为0。另外,如果我尝试记录response.body()
,我会得到:
ERRO[0001] TypeError: Value is not an object: {"item":{"id":2733382000000000049}}
型
JavaScript可以安全使用的最大整数要小得多:
> console.log(Number.MAX_SAFE_INTEGER)
9007199254740991
型
那么有没有办法在不改变后端代码的情况下在k6中绕过这个问题呢?
2条答案
按热度按时间mfuanj7w1#
使用
response.text()
代替,那么你可能可以做一些事情字符串
由于我不知道您实际得到的JSON的其余部分,这可能是一个非常幼稚的解决方案。
根据你所展示的,它会工作。
wwodge7n2#
一个解决方案是:
预处理来自API的字符串,以便在解析之前将其转换为字符串。您也可以根据自己的需要将其转换回数字。下面是将字符串中的所有数字(以:开头)转换为字符串的RegExp:
字符串
Regex解释:
\s* 任意数量的空格
\d+一个或多个数字
(...)将被放入1美元变量中