How to write authentication test cases with Postman? | Thirdock Techkno

Add jwt to headers in postman

Добавление заголовка или использование помощника авторизации – два способа отправить JWT в Postman для авторизации запросов.

India office

103-104, Sarita Complex, Jain Temple Lane, Opp. Municipal Market, C.G. Road, Navrangpura, Ahmedabad – 380009, Gujarat, India.

Чтобы связаться с нами, наберите 91 79 48917579 или 91 98794 97579

HR : 91 9879057579, 91 9712209416

Intermediate solution

Один из вариантов – создать новую глобальную переменную и вставить в нее только что созданный токен.

Option 1: separate request at the beginning of the collection

Если вы работаете с небольшой коллекцией, которая выполняется быстро, или у вас есть токен, который имеет длительный срок службы и, скорее всего, не истечет до завершения работы коллекции, этот вариант будет идеальным. Создайте начальный запрос для получения и хранения маркера в этом экземпляре в начале коллекции. На протяжении всего оставшегося цикла сбора вы можете продолжать использовать то же значение маркера.

Option 2: use an authorization helper

Использование помощника авторизации – это второй вариант. Выберите тип авторизации Bearer Token на вкладке Authorization. Чтобы изменить значение переменной для вашего токена, используйте синтаксис двойной фигурной скобки.

Чтобы увидеть временный заголовок, который был добавлен на вкладке Заголовки, нажмите оранжевую кнопку Предварительный просмотр запроса. Ваш запрос или коллекция не сохраняются с этим временным заголовком.

Что отличает эти два метода друг от друга? В зависимости от того, как вы собираетесь его использовать, вы должны выбрать соответствующую стратегию.

Scripts to check token expiration

Токены JWT имеют ограниченный срок службы. Их срок действия истекает через определенное время, после чего вы должны получить новый токен.

Опять же, существует два метода определения срока действия JWT. Ваши уникальные обстоятельства определят стратегию, которую вы используете.

Sessions to keep stuff private

Считайте, что вы поделились средой с членами своей команды, потому что вы вместе работали над проектом, и сохранили JWT как переменную среды Postman. Можете ли вы сохранить конфиденциальность вещей так, чтобы доступ к ним имели только вы и ваша команда?

Вы действительно можете!

В приложении Postman сессии – это дополнительный уровень, который хранит значения локальных переменных. Сессии не синхронизируются автоматически с серверами Postman. Если вы специально не синхронизируетесь с облаком, изменения, записанные в течение одной сессии, остаются локальными для вашего экземпляра Postman.

Отключите “Автоматически сохранять значения переменных” в Настройках.

Теперь значение CURRENT VALUE устанавливается при отправке запроса и установке переменной. Его можно сравнить со значением, которое хранится в локальной сессии.

Это требует дополнительного шага для явной синхронизации с облаком, если вы хотите поделиться этим значением с товарищами по команде или синхронизировать его с серверами Postman. Нажмите Persist All, чтобы синхронизировать все текущие значения с начальными значениями. Скопируйте и вставьте значение из третьего столбца во второй столбец, если вы хотите синхронизировать только одно Текущее значение с Начальным значением.

Вы можете повторно использовать данные и сохранять их в безопасности при работе в группе благодаря переменным сеанса. Они дают вам более точный контроль над обменом информацией с товарищами по команде или синхронизацией с сервером. Посмотрите видеоролик об использовании сессий, чтобы узнать о них больше.

The setup

Давайте создадим новую среду с некоторыми переменными, чтобы это было эффективным:

Мы используем их в нашем сложном сценарии.

Code!

Usa office

52 Skytop St, San Jose, 95134, CA.

Позвоните (408) 890-2209 или (813) 841-3751, чтобы связаться.

What is jwt?

Открытый стандарт для безопасной передачи данных между сторонами в виде объекта JSON называется JSON Web Token (JWT). Он произносится как jot, или yaywaytay, как сказали бы наши голландские друзья.

How to send access token in postman

Меня попросили протестировать модуль node, и в результате мы получили пост-запрос, который предоставляет нам маркер доступа.

  it('GET accesstoken', (done) => {
        request(URL)
            .post('/oauth/login')
            .set('accept', '/application/json')
            .type('form')
            .send(data)
            .expect(200)
            .end((err, res) => {
                if (err) return done(err);
                expect(res.body).to.be.an('object');
                expect(res.body.access_token).to.be.a('string');
                accessToken = res.body.access_token;
                done();
            });
    });

Здесь мы должны использовать маркер доступа, который мы получаем из этого места.

 it('GET /users/:id/activities/', (done) => {
        request(URL)
            .get('/users/5aa1736a64bf0a423ae4d191/activities/')
            .set('accept', '/application/json')
            .set('Authorization', 'Bearer ' accessToken)
            .expect(200)
            .end((err, res) => {
                if (err)
                    return done(err);
                done();
            });
    });

Я пытаюсь отправить маркер доступа в заголовках запроса get, используя Postman, но у меня возникают проблемы.

[ Обновление] Я получил это в ответ на мой предыдущий запрос.

{"access_token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJkYmEiLCJuYW1lIjoiICAgIiwiaWQiOiI1YTgyYjFhNjFkYWI0YjU0YzAxZjIxMmUiLCJzY29wZSI6WyJhZG1pbi5kaXN0cmlidXRvci5wZXJzb25hbCJdLCJ0eXBlIjoiZGlzdHJpYnV0b3IiLCJ1c2VyIjp7InRpdGxlIjoiIiwiZmlyc3ROYW1lIjoiIiwibWlkZGxlTmFtZSI6IiIsImxhc3ROYW1lIjoiIiwicGFzc3dvcmQiOiJiNTljNjdiZjE5NmE0NzU4MTkxZTQyZjc2NjcwY2ViYSIsInR5cGUiOiJkaXN0cmlidXRvciIsImZjaWQiOjAsImVtYWlsIjoiIiwibW9iaWxlIjoiIiwiZ2VuZGVyIjoiIiwiZG9iIjoiIiwiZGVwYXJ0bWVudCI6IiIsIm1hcml0YWxTdGF0dXMiOiIiLCJwb3NpdGlvbiI6IiIsInJvbGVzIjpbeyJuYW1lIjoiIiwic2NvcGUiOlsiYWRtaW4uZGlzdHJpYnV0b3IucGVyc29uYWwiXSwiaXNEZWxldGVkIjpmYWxzZSwiaXNBY3RpdmUiOnRydWUsIl9pZCI6IjVhYTE3MzZhNjRiZjBhNDIzYWU0ZDE5MSIsInVwZGF0ZWRBdCI6IjIwMTgtMDMtMDhUMTc6MzE6MjIuOTI0WiIsImNyZWF0ZWRBdCI6IjIwMTgtMDMtMDhUMTc6MzE6MjIuOTI0WiIsIl9fdiI6MH1dLCJtb2R1bGVTdHJpbmciOltdLCJpc0RlbGV0ZWQiOmZhbHNlLCJpc0FjdGl2ZSI6dHJ1ZSwiX2lkIjoiNWE4MmIxYTYxZGFiNGI1NGMwMWYyMTJlIiwidXNlcm5hbWUiOiJhZG1pbjEiLCJfX3YiOjEsIm5hbWUiOiIgICAiLCJmdWxsTmFtZSI6IiAgICIsImlkIjoiNWE4MmIxYTYxZGFiNGI1NGMwMWYyMTJlIn0sImV4cCI6MTUzMTU3MzMxNDM1OSwiaWF0IjoxNTMxNTY2MTE0fQ.36CgBmDIcPmYmN1aB3XCIJFmzqs4KpeuLb9miPQqIns","refresh_token":"775f341af178cca24bd183fad4bf760b461cd985","accessToken":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJkYmEiLCJuYW1lIjoiICAgIiwiaWQiOiI1YTgyYjFhNjFkYWI0YjU0YzAxZjIxMmUiLCJzY29wZSI6WyJhZG1pbi5kaXN0cmlidXRvci5wZXJzb25hbCJdLCJ0eXBlIjoiZGlzdHJpYnV0b3IiLCJ1c2VyIjp7InRpdGxlIjoiIiwiZmlyc3ROYW1lIjoiIiwibWlkZGxlTmFtZSI6IiIsImxhc3ROYW1lIjoiIiwicGFzc3dvcmQiOiJiNTljNjdiZjE5NmE0NzU4MTkxZTQyZjc2NjcwY2ViYSIsInR5cGUiOiJkaXN0cmlidXRvciIsImZjaWQiOjAsImVtYWlsIjoiIiwibW9iaWxlIjoiIiwiZ2VuZGVyIjoiIiwiZG9iIjoiIiwiZGVwYXJ0bWVudCI6IiIsIm1hcml0YWxTdGF0dXMiOiIiLCJwb3NpdGlvbiI6IiIsInJvbGVzIjpbeyJuYW1lIjoiIiwic2NvcGUiOlsiYWRtaW4uZGlzdHJpYnV0b3IucGVyc29uYWwiXSwiaXNEZWxldGVkIjpmYWxzZSwiaXNBY3RpdmUiOnRydWUsIl9pZCI6IjVhYTE3MzZhNjRiZjBhNDIzYWU0ZDE5MSIsInVwZGF0ZWRBdCI6IjIwMTgtMDMtMDhUMTc6MzE6MjIuOTI0WiIsImNyZWF0ZWRBdCI6IjIwMTgtMDMtMDhUMTc6MzE6MjIuOTI0WiIsIl9fdiI6MH1dLCJtb2R1bGVTdHJpbmciOltdLCJpc0RlbGV0ZWQiOmZhbHNlLCJpc0FjdGl2ZSI6dHJ1ZSwiX2lkIjoiNWE4MmIxYTYxZGFiNGI1NGMwMWYyMTJlIiwidXNlcm5hbWUiOiJhZG1pbjEiLCJfX3YiOjEsIm5hbWUiOiIgICAiLCJmdWxsTmFtZSI6IiAgICIsImlkIjoiNWE4MmIxYTYxZGFiNGI1NGMwMWYyMTJlIn0sImV4cCI6MTUzMTU3MzMxNDM1OSwiaWF0IjoxNTMxNTY2MTE0fQ.36CgBmDIcPmYmN1aB3XCIJFmzqs4KpeuLb9miPQqIns"}

Я скопировал только маркер доступа, оставив все остальное в покое.

access_token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJkYmEiLCJuYW1lIjoiICAgIiwiaWQiOiI1YTgyYjFhNjFkYWI0YjU0YzAxZjIxMmUiLCJzY29wZSI6WyJhZG1pbi5kaXN0cmlidXRvci5wZXJzb25hbCJdLCJ0eXBlIjoiZGlzdHJpYnV0b3IiLCJ1c2VyIjp7InRpdGxlIjoiIiwiZmlyc3ROYW1lIjoiIiwibWlkZGxlTmFtZSI6IiIsImxhc3ROYW1lIjoiIiwicGFzc3dvcmQiOiJiNTljNjdiZjE5NmE0NzU4MTkxZTQyZjc2NjcwY2ViYSIsInR5cGUiOiJkaXN0cmlidXRvciIsImZjaWQiOjAsImVtYWlsIjoiIiwibW9iaWxlIjoiIiwiZ2VuZGVyIjoiIiwiZG9iIjoiIiwiZGVwYXJ0bWVudCI6IiIsIm1hcml0YWxTdGF0dXMiOiIiLCJwb3NpdGlvbiI6IiIsInJvbGVzIjpbeyJuYW1lIjoiIiwic2NvcGUiOlsiYWRtaW4uZGlzdHJpYnV0b3IucGVyc29uYWwiXSwiaXNEZWxldGVkIjpmYWxzZSwiaXNBY3RpdmUiOnRydWUsIl9pZCI6IjVhYTE3MzZhNjRiZjBhNDIzYWU0ZDE5MSIsInVwZGF0ZWRBdCI6IjIwMTgtMDMtMDhUMTc6MzE6MjIuOTI0WiIsImNyZWF0ZWRBdCI6IjIwMTgtMDMtMDhUMTc6MzE6MjIuOTI0WiIsIl9fdiI6MH1dLCJtb2R1bGVTdHJpbmciOltdLCJpc0RlbGV0ZWQiOmZhbHNlLCJpc0FjdGl2ZSI6dHJ1ZSwiX2lkIjoiNWE4MmIxYTYxZGFiNGI1NGMwMWYyMTJlIiwidXNlcm5hbWUiOiJhZG1pbjEiLCJfX3YiOjEsIm5hbWUiOiIgICAiLCJmdWxsTmFtZSI6IiAgICIsImlkIjoiNWE4MmIxYTYxZGFiNGI1NGMwMWYyMTJlIn0sImV4cCI6MTUzMTU3MzMxNDM1OSwiaWF0IjoxNTMxNTY2MTE0fQ.36CgBmDIcPmYmN1aB3XCIJFmzqs4KpeuLb9miPQqIns","refresh_token":"775f341af178cca24bd183fad4bf760b461cd985","accessToken":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9

In the get request, Headers I added Auth and in the value I added Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJkYmEiLCJuYW1lIjoiICAgIiwiaWQiOiI1YTgyYjFhNjFkYWI0YjU0YzAxZjIxMmUiLCJzY29wZSI6WyJhZG1pbi5kaXN0cmlidXRvci5wZXJzb25hbCJdLCJ0eXBlIjoiZGlzdHJpYnV0b3IiLCJ1c2VyIjp7InRpdGxlIjoiIiwiZmlyc3ROYW1lIjoiIiwibWlkZGxlTmFtZSI6IiIsImxhc3ROYW1lIjoiIiwicGFzc3dvcmQiOiJiNTljNjdiZjE5NmE0NzU4MTkxZTQyZjc2NjcwY2ViYSIsInR5cGUiOiJkaXN0cmlidXRvciIsImZjaWQiOjAsImVtYWlsIjoiIiwibW9iaWxlIjoiIiwiZ2VuZGVyIjoiIiwiZG9iIjoiIiwiZGVwYXJ0bWVudCI6IiIsIm1hcml0YWxTdGF0dXMiOiIiLCJwb3NpdGlvbiI6IiIsInJvbGVzIjpbeyJuYW1lIjoiIiwic2NvcGUiOlsiYWRtaW4uZGlzdHJpYnV0b3IucGVyc29uYWwiXSwiaXNEZWxldGVkIjpmYWxzZSwiaXNBY3RpdmUiOnRydWUsIl9pZCI6IjVhYTE3MzZhNjRiZjBhNDIzYWU0ZDE5MSIsInVwZGF0ZWRBdCI6IjIwMTgtMDMtMDhUMTc6MzE6MjIuOTI0WiIsImNyZWF0ZWRBdCI6IjIwMTgtMDMtMDhUMTc6MzE6MjIuOTI0WiIsIl9fdiI6MH1dLCJtb2R1bGVTdHJpbmciOltdLCJpc0RlbGV0ZWQiOmZhbHNlLCJpc0FjdGl2ZSI6dHJ1ZSwiX2lkIjoiNWE4MmIxYTYxZGFiNGI1NGMwMWYyMTJlIiwidXNlcm5hbWUiOiJhZG1pbjEiLCJfX3YiOjEsIm5hbWUiOiIgICAiLCJmdWxsTmFtZSI6IiAgICIsImlkIjoiNWE4MmIxYTYxZGFiNGI1NGMwMWYyMTJlIn0sImV4cCI6MTUzMTU3MzMxNDM1OSwiaWF0IjoxNTMxNTY2MTE0fQ.36CgBmDIcPmYmN1aB3XCIJFmzqs4KpeuLb9miPQqIns

Conclusion

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

Postman SDK позволяет гораздо больше; прочитайте об этом в документации.

Начиная с июля 2020 года, я готова работать над новыми проектами! Свяжитесь с нами!

Создайте дубликат схемы PostgreSQL

Final lazy-mode solution

В этом решении все автоматизировано, включая аутентификацию запроса. Нет необходимости в копировании и вставке. При этом используется чрезвычайно полезная функция Postman – Pre-request Script.

Похожее:  BIGPOLL RU ВОЙДИТЕ В ЛИЧНЫЙ КАБИНЕТ

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *