Про Мир IT

Description
Привет мой друг! Я Евгений Сычев, работаю в сфере тестирования ПО более 9 лет. Прошел путь от стажера до руководителя проектов.
Здесь я делюсь информацией на тему тестирования и не только. Размещаю вакансии со своих проектов.
Инстаграм: @pro.mir.it
Advertising
We recommend to visit
HAYZON
HAYZON
6,053,581 @hayzonn

لا اله الا الله محمد رسول الله

👤 𝐅𝐨𝐮𝐧𝐝𝐞𝐫: @Tg_Syprion
🗓 ᴀᴅᴠᴇʀᴛɪsɪɴɢ: @SEO_Fam
Мои каналы: @mazzafam

Last updated 3 weeks, 1 day ago

Architec.Ton is a ecosystem on the TON chain with non-custodial wallet, swap, apps catalog and launchpad.

Main app: @architec_ton_bot
Our Chat: @architec_ton
EU Channel: @architecton_eu
Twitter: x.com/architec_ton
Support: @architecton_support

Last updated 2 weeks, 2 days ago

Канал для поиска исполнителей для разных задач и организации мини конкурсов

Last updated 1 month ago

3 Monate, 1 Woche her

UPD. К предыдущему посту. Allure мы используем с Newman. Напрямую через Postman нет возможности. Конечно, аллюр отчет можно использовать для себя без каких либо диких ухищрений. Локально у себя на компе делать такие отчеты просто.
Как-нибудь расскажу как это настроить, если интересно.
А узнаю я, что вам это интересно или нет по количеству 🔥 под постом и комментариям конечно=)

3 Monate, 1 Woche her

Привет, друзья!
Накануне пробежался по своим старым рабочим коллекциям. Вытащил некоторые скрипты и решил закинуть некоторые тесты, которые использовал в Postman.

Их вполне можно использовать при тестировании АПИ. Комбинировать и дополнять. Маленькие шаги в сторону автоматизации некоторых проверок.
Может кому-нибудь будет полезно: https://qa-study-wiki.tilda.ws/tdocs/15-testov-dlya-proverok-api-d4pz64fe0tctl6k

4 Monate her

Привет друзья!

Продолжаю делиться полезностями по постману!

В этом посте рассказываю как сделать pre-request скрипт, который будет выполнять аутентификацию прежде чем выполнить сам запрос.

Кто тестирует АПИ наверняка сталкиваться каждый день с тем что нужно протестировать некий end-point, который требует авторизации. Затем надо проверить баг по другому функционалу, который тоже требует авторизации, но пользователь нужен другой и так далее.

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

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

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

Но для такой тривиальной задачи и чатджипити не нужен, хоть он и может написать скрипт достаточно быстро. Всё необходимое есть уже в Postman. Просто надо знать, где искать.

Приступим!

Так как пост получился большой и с скринами. Я разместил его в notion. Вот ссылка: https://esychev.notion.site/62426d81832d48d897c9c26ebe851c55?pvs=4

4 Monate, 2 Wochen her

В ролике я использую всем известный 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;

});
```

7 Monate, 2 Wochen her
8 Monate, 1 Woche her

Это будет простенькое "банковское" приложение. ?

В котором будет:
Регистрация/авторизация
Система прав/ролей
Добавление продуктов:
Карты
Вклады
Возможность перевода средств по номеру телефона, карты, счету другому клиенту банка.

Пока это минимум, который хочу реализовать.

Что сделано на данный момент:
Регистрация: заполнение формы с полями почта, телефон, пароль, подтверждение пароля. Шаг с подтверждением по "смс" конечно смс у меня нет, но я написал небольшой сервис, который генерирует пятизначный код. Запрос/ответ кода идет через RabbitMQ.
Основное приложение делает запрос в RabbitMQ, сервис генерации проверяет очередь, если находит там запрос генерирует код и отправляет ответ.

Уже здесь в отпуске начал реализовывать страницу персонального кабинета, где будет отображена информация о пользователе, список его карт и других продуктов.

Стэк основного приложения: JS, бэк простой rest API на фреймворке express, бд postgresql.
Документация по апи в OpenApi.
Фронт на реакте.

Сервис генерации кода разработан на пайтоне. Тут ничего серьезного буквально 20 строк кода. Но его я буду использовать и для других приложений. В планах реанимировать интернет магазин, to-do list и складское приложение. И провести интеграцию всего этого.

В БД пока только таблица users. Будет добавлена таблица для кодов и для продуктов.

Отдельно прорабатываю и логирование. Хотелось бы либо вернуть кибану, в которой можно будет работать с логами, либо поставить графану.
Посмотрим.

Плюс под это всё надо ещё писать документацию ??

Это все буду использовать для обучения ребят. Но возможно это будет доступно и всем для свободной практики.

Как вам моя задумка? Может есть какие-то мысли, предложения, идеи? Буду рад любому фидбеку :)

We recommend to visit
HAYZON
HAYZON
6,053,581 @hayzonn

لا اله الا الله محمد رسول الله

👤 𝐅𝐨𝐮𝐧𝐝𝐞𝐫: @Tg_Syprion
🗓 ᴀᴅᴠᴇʀᴛɪsɪɴɢ: @SEO_Fam
Мои каналы: @mazzafam

Last updated 3 weeks, 1 day ago

Architec.Ton is a ecosystem on the TON chain with non-custodial wallet, swap, apps catalog and launchpad.

Main app: @architec_ton_bot
Our Chat: @architec_ton
EU Channel: @architecton_eu
Twitter: x.com/architec_ton
Support: @architecton_support

Last updated 2 weeks, 2 days ago

Канал для поиска исполнителей для разных задач и организации мини конкурсов

Last updated 1 month ago