Создайте переменные для логина и пароля: test_login и test_password. В эти переменные с помощью csv-файла нужно передать тестовые данные для
Пользователь задал следующий вопрос:

Создайте переменные для логина и пароля: test_login и test_password. В эти переменные с помощью csv-файла нужно передать тестовые данные для логина и пароля. Тестируя логин и пароль, необходимо провести 3 позитивных и 5 негативных тестов на статус-код 200.

Для авторизации можно использовать любой из доступных аккаунтов.

Настройте авторизацию для всех заголовков коллекции, динамически получая значение токена с помощью скрипта в запросе «Авторизация пользователя».
Получите текущий баланс пользователя. Запишите текущее значение баланса в переменную коллекции current_balance.
Для сайта “Скан-интефакс”

Этот ответ написан нейросетью.

Внимание! Ответы искусственного интеллекта могут быть неточными. Не полагайтесь на них в медицине, юриспруденции, финансах и вопросах безопасности. При принятии важных решений всегда консультируйтесь с профильными специалистами.
Администрация сайта не несет ответственности за любой автоматически созданный контент. Если вы обнаружили ошибки, пожалуйста, сообщите об этом через кнопку "репорт" внизу ответа и мы примем соответствующие меры. Спасибо за вашу помощь в улучшении качества нашего сервиса.
текстовая нейросеть отвечает:
Для выполнения данной задачи, первым делом нужно создать csv-файл, где будут указаны тестовые данные для логина и пароля. В данном случае, мы создадим файл "credentials.csv" со следующим содержимым:
csv

login,password

test_user1,password1

test_user2,password2

test_user3,password3

Теперь, давайте перейдем к самому коду. Сначала, мы должны прочитать данные из csv-файла и сохранить их в переменные test_login и test_password:
javascript

const fs = require('fs');

const csv = require('csv-parser');



let test_login;

let test_password;



fs.createReadStream('credentials.csv')

  .pipe(csv())

  .on('data', (row) => {

    test_login = row.login;

    test_password = row.password;

  })

  .on('end', () => {

    console.log('Credentials loaded');

  });

Здесь мы используем модуль fs для чтения файла и модуль csv-parser для парсинга csv-файла. Мы инициализируем переменные test_login и test_password вне потока, чтобы сохранить значения в них и использовать их в другом месте кода. Теперь нам нужно провести 3 позитивных и 5 негативных тестов на статус-код 200. Для этого мы можем использовать библиотеку supertest, которая позволяет выполнять запросы к нашему серверу и ассертировать на ожидаемый статус-код. Ниже приведен пример кода для позитивного теста:
javascript

const request = require('supertest');



request(app)

  .post('/login')

  .send({ login: test_login, password: test_password })

  .expect(200)

  .end((err, res) => {

    if (err) throw err;

    console.log('Positive test passed');

  });

Здесь мы используем метод post для отправки запроса на эндпоинт /login с указанными логином и паролем. Затем проверяем, что полученный статус-код равен 200. Если статус-код не равен 200, тест провален и будет сгенерирована ошибка. Теперь мы можем создать 3 позитивных и 5 негативных тестов с помощью цикла:
javascript

// Позитивные тесты

for (let i = 1; i <= 3; i++) {

  request(app)

    .post('/login')

    .send({ login: test_login, password: test_password })

    .expect(200)

    .end((err, res) => {

      if (err) throw err;

      console.log(`Positive test ${i} passed`);

    });

}



// Негативные тесты

for (let i = 1; i <= 5; i++) {

  request(app)

    .post('/login')

    .send({ login: 'invalid_login', password: 'invalid_password' })

    .expect(200) // Здесь указываем ожидаемый НЕ статус-код (например, 401 для негативного теста)

    .end((err, res) => {

      if (err) throw err;

      console.log(`Negative test ${i} passed`);

    });

}

Теперь у нас есть 3 позитивных и 5 негативных тестов, которые выполняются и выводят сообщение в консоль о том, что тест пройден. Далее, нам нужно настроить авторизацию для всех заголовков коллекции test, чтобы автоматически получать токен для остальных запросов. Мы можем использовать глобальную переменную в коллекции для хранения текущего токена:
javascript

let current_token;



pm.collectionVariables.set('current_token', current_token);

Теперь мы можем использовать эту переменную в других запросах коллекции, чтобы добавить заголовок "Авторизация пользователя" с текущим токеном:
javascript

pm.request.headers.add({ key: 'Authorization', value: `Bearer {{current_token}}` });

Наконец, мы должны получить текущий баланс пользователя и записать его в переменную коллекции current_balance. Для этого мы можем сделать запрос к эндпоинту, который возвращает текущий баланс пользователя, и сохранить его значение:
javascript

pm.sendRequest('GET', '/balance', (err, response) => {

  if (err) throw err;



  const data = JSON.parse(response.body);



  pm.collectionVariables.set('current_balance', data.balance);

});

Здесь мы используем функцию sendRequest для отправки GET-запроса на эндпоинт /balance. Затем мы парсим ответ и сохраняем значение баланса в переменной коллекции current_balance. В итоге, весь код собирается в один файл:
javascript

const fs = require('fs');

const csv = require('csv-parser');

const request = require('supertest');



let test_login;

let test_password;



fs.createReadStream('credentials.csv')

  .pipe(csv())

  .on('data', (row) => {

    test_login = row.login;

    test_password = row.password;

  })

  .on('end', () => {

    console.log('Credentials loaded');



    // Позитивные тесты

    for (let i = 1; i <= 3; i++) {

      request(app)

        .post('/login')

        .send({ login: test_login, password: test_password })

        .expect(200)

        .end((err, res) => {

          if (err) throw err;

          console.log(`Positive test ${i} passed`);

        });

    }



    // Негативные тесты

    for (let i = 1; i <= 5; i++) {

      request(app)

        .post('/login')

        .send({ login: 'invalid_login', password: 'invalid_password' })

        .expect(401) // Здесь указываем ожидаемый НЕ статус-код (например, 401 для негативного теста)

        .end((err, res) => {

          if (err) throw err;

          console.log(`Negative test ${i} passed`);

        });

    }



    // Получение текущего баланса пользователя

    pm.sendRequest('GET', '/balance', (err, response) => {

      if (err) throw err;



      const data = JSON.parse(response.body);



      pm.collectionVariables.set('current_balance', data.balance);

    });

  });

Таким образом, вся задача будет реализована с помощью модулей fs, csv-parser, supertest и Postman. Мы считываем данные из csv-файла, выполняем тестовые запросы с различными логинами и паролями, сохраняем текущий баланс пользователя и используем авторизацию с помощью токена.

Задайте любой вопрос нейросети!

но вы должны быть авторизованы, чтобы ей пользоваться
Войдите через Google в 1 клик

Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет

(c) Текстовая нейросеть 2023. Все права защищены. При обнаружении неправомерного контента пишите на [email protected]
Обратная связь с администрацией проекта
Обратная связь
Форма репорта неправомерного контента.
Форма репорта

Хотите задать любой вопрос нейросети?

Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет