PostmanのTestsでResponseの大きな数値が丸められてしまう場合の解決法
問題点
postmanでAPIの動作テストを行なっており、tests内で受け取ったResponseを環境変数に定義する等しておりますが、16桁を超える数値を受け取ろうとした場合に、数値が丸められてしまい、困っておりました。
Response値が、「1234567890123456789」の場合、「1234567890123456800」に丸められてしまうような状況。
APIが返すResponseを数値から文字列に変換すれば受け取れるものの、それでは問題解決にはならないため、調べることに。
原因
postmanのTestsは、javaScriptで記述することができます。
javaScriptでjsonをparseする際に、16桁を超える大きな数値を含む場合には、丸められてしまうため、json-bigintなどのライブラリを使用する必要があるようです。
解決法
これを解決するためには、スクリプトをグローバル変数として格納しておき、evalで評価するような方法があるようです。
下記、リンクの内容を全選択し、global変数にセットします。
セットしたスクリプトを評価し、JSON.parseをオーバーライドすることで問題を解決することができます。
eval(pm.globals.get('json-bigint'));
console.log(JSON.parse(responseBody));
参考リンク