Про Мир IT
رفتن به کانال در Telegram
13 лет в тестировании. Показываю, как прокачивать скиллы, внедрять новые фишки и расти в доходе. Postman, практика и всё, что помогает QA стать сильнее. Инстаграм: @pro.mir.it
نمایش بیشتر1 372
مشترکین
+424 ساعت
+247 روز
+6830 روز
آرشیو پست ها
1 374
Всем привет! Как-то в мае, рассказывал про то что разрабатываю своё приложение, которое будут тестировать мои ученики. Собственно MVP приложения можно сказать готово =)) Но конечно, мне жутко не хватает тестирования.
Но думаю новая группа обучения, которая скоро стартует найдёт много багов в этом приложении. Мы их зафиксируем и я буду их исправлять.
Начинаю формировать вики проекта. Уже некоторую документацию опубликовал.
К слову можно с ней ознакомиться здесь: https://esychev.notion.site/Documentation-Bank-App-425dda0269994b2a9a1995305994d057
Буду рад любой обратной связи!
PS: для эстетов, которые любят писать комментарии, как хреново сделана документация, фиговый дизайн приложения, мало функционала и так далее.
Напомню я ни разу не аналитик, ни архитектор и даже не разработчик. Я тестировщик. Стараюсь в одиночку сделать проект на котором ребята смогут оттачивать практику ручного тестирования на проекте, который хоть сколько-то приближен к реальным технологиям, при этом ещё и с документацией: с бизнес требованиями, функциональными, описанием архитектуры и так далее. Где могут тестировать не только UI, но и бэк, интеграцию.
1 374
Вчера опубликовал рилс на тему моего предыдущего поста. И получил один вот такой комментарий.
Да, действительно, вкладка Autorization направлена на то что бы помочь закрыть вопрос с постоянной авторизацией.
Он крайне не гибкий и лично по моей практике я нигде не смог его использовать.
Но для кого-то это действительно простое решение. Например, если у вас проект, где вы тестируете апи для взаимодействия с другими апи по токену или api key. Вы можете на данной вкладке указать нужный тип авторизации скопировать туда полученный от разработки токен/api key и тестировать не выполняя каждый раз шаг по получению этого токена.
На многих проектах, особенно финтеха, используется комбинированный подход к авторизации. Надо и токен получить и логин/пароль ввести и шаг подтверждения какой-нибудь выполнить.
В таком случае нам поможет только скрипт, который мы можем гибко настроить под свой проект.
1 374
Привет друзья!
Продолжаю делиться полезностями по постману!
В этом посте рассказываю как сделать pre-request скрипт, который будет выполнять аутентификацию прежде чем выполнить сам запрос.
Кто тестирует АПИ наверняка сталкиваться каждый день с тем что нужно протестировать некий end-point, который требует авторизации. Затем надо проверить баг по другому функционалу, который тоже требует авторизации, но пользователь нужен другой и так далее.
У меня был проект, где надо было протестировать кредитную заявку, которая есть только у определенного пользователя, потом проверить исправления бага в функционале вкладов, которые есть у другого пользователя. И мне приходилось выполнять шаги авторизации прежде чем добирался до нужного запроса.
Не то что бы это было сложно, особенно когда правильно работаешь с переменными в постман, но всё равно отнимало время. А порой и нервы, когда выполнив авторизацию доходишь до нужного запроса и оказывается что забыл поменять пользователя. И надо заново авторизацию делать.
Вскоре я пошел гуглить, чтобы узнать как это сделать используя язык программирования JavaScript. Чата джипити, тогда еще и в помине не было, приходилось разбираться самому.
Но для такой тривиальной задачи и чатджипити не нужен, хоть он и может написать скрипт достаточно быстро. Всё необходимое есть уже в Postman. Просто надо знать, где искать.
Приступим!
Так как пост получился большой и с скринами. Я разместил его в notion. Вот ссылка: https://esychev.notion.site/62426d81832d48d897c9c26ebe851c55?pvs=4
1 374
В ролике я использую всем известный https://petstore.swagger.io/ и запрос GET /pet/{petId} Find pet by ID
Итоговый скрипт из ролика выглядит так:
var schema = {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"category": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"name": {
"type": "string"
}
}
},
"name": {
"type": "string"
},
"photoUrls": {
"type": "array",
"items": {
"type": "string"
}
},
"tags": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"name": {
"type": "integer"
}
}
}
},
"status": {
"type": "string"
}
}
};
var responseData = pm.response.json();
pm.test('Schema is valid', function () {
pm.expect(tv4.validate(responseData, schema)).to.be.true;
});
Так как библиотека tv4 устарела и не поддерживается, сам Postman предлагает использовать библиотеку ajv. Поэтому так же предлагаю тот же код с современной библиотекой:
const Ajv = require('ajv');
const ajv = new Ajv();
var schema = {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"category": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"name": {
"type": "string"
}
}
},
"name": {
"type": "string"
},
"photoUrls": {
"type": "array",
"items": {
"type": "string"
}
},
"tags": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"name": {
"type": "string"
}
}
}
},
"status": {
"type": "string"
}
}
};
var responseData = pm.response.json();
pm.test('Schema is valid', function () {
pm.expect(ajv.validate(schema, responseData)).to.be.true;
});
Помните, что это всего-лишь пример. Вы можете реализовать дополнительные проверки, либо подойти как-то по другому.
Здесь пример с обязательными полями в схеме, плюс добавил вывод в консоль логов в случае если схема не пройдет валидацию, чтобы мы могли проанализировать какое именно поле не прошло валидацию:
const Ajv = require('ajv');
const ajv = new Ajv();
var schema = {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"category": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"name": {
"type": "string"
}
},
"required": ["id", "name"] // Обязательные поля для category
},
"name": {
"type": "string"
},
"photoUrls": {
"type": "array",
"items": {
"type": "string"
}
},
"tags": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"name": {
"type": "string"
}
},
"required": ["id", "name"] // Обязательные поля для tags
}
},
"status": {
"type": "string"
}
},
"required": ["id", "name", "category", "status"] // Обязательные поля для основного объекта
};
var responseData = pm.response.json();
pm.test('Schema is valid', function () {
const validate = ajv.compile(schema);
const valid = validate(responseData);
if (!valid) {
console.error('Validation errors:', validate.errors); // Выводим логи в консоль в случае, если не прошла валидация
}
pm.expect(valid).to.be.true;
});1 374
Друзья, привет! Кто следит за мной в "запретграмме". Знает что я выпускаю там ролики по работе c Postman. Рилс ограничен 90 секундами, поэтому много чего там не расскажешь.
Сегодня выпустил свежий ролик, где рассказываю как автоматизировать валидацию json-схемы ответа в Postman.
Ниже представлю скрипт, который показываю в ролике.
⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️
1 374
https://it-picnic.ru/
Друзья, привет! Делюсь информацией по айтишным мероприятиям в Москве.
17 августа пройдет IT пикник. Отличное место для новых знакомств и интересного времяпрепровождения.
Я заявочку на регистрацию оставил.
1 374
К слову, у себя в запретграмме я публикую рилсы по работе с Postman. Стараюсь делать полезные ролики, насколько позволяет короткий формат 😅
Да, опытные тестировщики со всем этим наверняка знакомы. Но вдруг кому будет полезно.
1 374
Друзья всем привет! Я делаю достаточно подробный курс по постману. По моим планам он будет продолжительностью недели 2-3.
Сделал также страничку курса. Там я выложил программу обучения. Она примерная, так как ещё дорабатывается. Мне пишут ребята предлагают, что можно ещё добавить.
Поэтому программа может меняться немного.
Если вам такой курс интересен, пишите комментарии кидайте огонь 🔥 под постом.
Так же можете заполнить форму на сайте. Особенно если вы прям очень хотели бы такое обучение. Это ни к чему не обязывает, я просто буду видеть количество желающих.
И если желающих будет много, буду работать усерднее.
Ориентировочно первую группу смогу стартовать недели через две. И набор будет в первую очередь среди тех кто оставил заявку 🙂
1 374
Решил поделать короткие видео по разным полезностям в таком инструменте как Postman. Начнем с самого простого и явного.
1 374
+1
В процессе разработки своего небольшого приложения, я начинаю всё лучше понимать программистов 😂
Будучи тестировщиком, найдёшь какой-нибудь "мелкий" баг, передашь его разрабу. Проходит день, неделя, месяц...а баг не исправлен 🤷🏻♂️
Вроде бы какая-то мелочь, неужели сложно поправить?! 😖 В конце концов ты эксперт или кто? 🥸
В общем, вчера наткнулся у себя на дефект. После авторизации всё работает. Но, если обновляю страницу выкидывает на главную. Мол не авторизован. При чем воспроизводится не всегда, но почти стабильно.
Начал копать проблему. Перелопатил все последние изменения. Не смог исправить. Плюнул решил вернутся на несколько коммитов назад, на тот где дефект не воспроизводился. И оттуда начать делать то что делал, а это несколько часов работы.
Ок, делаю заново. Стараюсь проверять дефект перед каждым коммитом, чтоб баг снова не вылез.🪳
⏱И через несколько часов он опять начинает воспроизводится! Но я то уже ученный! Коммиты делаю регулярно! 🤓 Возвращаю на коммит назад. Дефект воспроизводится! Возвращаюсь еще назад - воспроизводится!
Но я ведь проверял! Перед каждым коммитом! 🧠
В общем потратил кучу часов. Баг не исправлен. Решил, что пока отвлекусь и буду делать функционал банковских карт.
Позже вернусь и переберу аутентификацию. Грешу на фронтенд, так как бэк вроде перебрал, всё там в порядке.
В общем такая история.
Теперь я чуть больше понимаю разрабов))
1 374
Книга Майка Кона в pdf на английском. Как раз в данной книге излагается концепция пирамиды тестирования. Ссылка ниже
⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️
1 374
И действительно, тут почти всё пирамиды тестирования.
Если загуглить пирамиду тестирования, то вам выдаст массу различных статей с различными вариациями пирамид. Что в свою очередь поражает порой неразбериху.
И случается так что, например, на собеседовании тот кто задает вопрос не понимает того кто отвечает на него. Или наоборот. Потому что у одного в голове одна пирамида, у другого другая.
Поэтому самый лучший вариант это обращаться к первоисточнику и "плясать" от него.
1 374
Привет, друзья! 👋
Сегодня я бы хотел обсудить такую тему как "пирамида тестирования". Хочется, чтобы это был не просто монолог с моими постами. Было бы здорово услышать ваше мнение.
Перед нами 9 пирамид, которые я нашел по запросу "пирамида тестирования" в яндексе.
Внимание вопрос: Что из данных изображений является пирамидой тестирования. А что не является пирамидой тестирования?
1 374
Наконец-то! Бот от hh.ru стал рекомендовать мне нормальные вакансии! А то вот эти: QA Lead, Руководитель проектов - детский сад какой-то. 😁
1 374
Друзья привет!
Произошел небольшой фейспалм 🤦🏻♂️ с проектом) реализовывал конект с базой данных, чтоб в персональный кабинет тянулась инфа из БД. И, в общем, нах**вертил там дикую дичь(извиняюсь за мой французский).
В итоге решил откатится назад причём радикально удалил локальный проект и склонировал заново с гитхаба.
И оказалось, что я не запушил в свое время комит, когда реализовал персональный кабинет. 😭
А ведь я в курсе, что важно делать коммиты как можно чаще!
Я так же ещё дома забыл закоммитить свой проект по генерации пятизначного кода. Обнаружил это только на отдыхе 🤦🏻♂️
В любом случае это опыт и нужно учится на своих ошибках.
