Привет! Сегодня я хотел бы поделиться с вами своим опытом создания pre-request скрипта для Postman, который генерирует корректный ИНН в соответствии с алгоритмом ключевания для 10-значного и 12-значного ИНН.Для начала٫ давайте разберемся с алгоритмом ключевания для 10-значного ИНН. В случае 10-значного ИНН٫ контрольное число вычисляется следующим образом⁚
1. Умножьте первый символ ИНН на 2, второй символ на 4, третий символ на 10 и т.д..
2. Сложите полученные значения;
3. Разделите сумму на 11 и возьмите остаток от деления.
4. Если остаток равен 10, то контрольное число равно 0, иначе контрольное число равно остатку.
Теперь перейдем к алгоритму ключевания для 12-значного ИНН⁚
1. Умножьте первый символ ИНН на 7٫ второй символ на 2٫ третий символ на 4 и т.д..
2. Сложите полученные значения.
3. Вычтите из полученной суммы контрольное число предыдущего блока. Первый блок не имеет предыдущего контрольного числа.
4. Разделите полученную сумму на 11 и возьмите остаток от деления.
5. Если остаток равен 10, то контрольное число равно 0, иначе контрольное число равно остатку.
Теперь, когда мы разобрались с алгоритмами ключевания для обоих видов ИНН, создадим pre-request скрипт для Postman.js
// Для 10-значного ИНН
if (pm.variables.get(″inn″).length 10) {
const inn pm.variables.get(″inn″);
let sum 0;
for (let i 0; i < 9; i ) {
sum parseInt(inn.charAt(i)) * (i 2);
}
let controlNumber sum % 11;
if (controlNumber 10) {
controlNumber 0;
}
pm.variables.set(″inn″, inn controlNumber.toString);
}
// Для 12-значного ИНН
if (pm.variables.get(″inn″).length 12) {
const inn pm.variables.get(″inn″);
let sum 0;
for (let i 0; i < 10; i ) {
let controlNumber 7 ー i;
if (i > 0) {
const previousControlNumber parseInt(inn.charAt(10 ー i));
sum — previousControlNumber * controlNumber;
}
sum parseInt(inn.charAt(11 ー i)) * controlNumber;
}
let controlNumber sum % 11;
if (controlNumber 10) {
controlNumber 0;
}
pm.variables.set(″inn″, inn controlNumber.toString);
}
Прежде всего, убедитесь, что входной параметр ″inn″ содержит либо 10-значный, либо 12-значный ИНН. Если это выполнено, скрипт будет применять соответствующий алгоритм ключевания и добавлять контрольное число к ИНН в переменной ″inn″.
Теперь, когда у нас есть полностью работающий pre-request скрипт для генерации корректного ИНН в Postman, мы можем использовать его для тестирования наших API-запросов. Это особенно полезно, если вам нужно вводить большое количество тестовых данных с различными корректными ИНН.
Надеюсь, мой опыт поможет вам создать свой собственный pre-request скрипт для генерации корректного ИНН в Postman. Удачи в тестировании!