Telegram Web
⭐️ Инструмент недели: читаемые автотесты с Gauge

Gauge — это фреймворк для автоматизации тестирования от ThoughtWorks, построенный вокруг идеи читаемых спецификаций.

Зачем нужен:

➡️ Читаемые тесты, как документация — Gauge использует markdown + шаблоны шагов, что делает тесты легко понятными даже для менеджеров и аналитиков

➡️ Многоязычность — вы пишете шаги на любом языке: Java, JavaScript, Python, C#, Go и других

➡️ Расширяемость — богатая система плагинов (репорты, CI-интеграции, IDE-поддержка, mock-серверы)

Как использовать:

1. Установите Gauge:


npm install -g @getgauge/cli


2. Сгенерируйте шаблон проекта:


gauge init java


3. Напишите .spec файл на Markdown с тестами:


# Проверка логина
## Успешный вход
* Ввести логин "user"
* Ввести пароль "pass"
* Нажать "Войти"
* Проверить, что пользователь авторизован


4. Определите шаги в коде (например, на Java):


@Step("Ввести логин <login>")
public void enterLogin(String login) {
// реализация
}


5. Запустите тест:


gauge run specs


⚡️ Что важно знать:

— Gauge отлично подходит для командной работы — когда QA, разработчики и аналитики работают вместе над спецификациями.

— Поддерживает параллельный запуск тестов, что критично для больших тест-сьютов.

— Плагин Gauge для VSCode позволяет запускать тесты прямо из редактора.

— Это open-source, активно поддерживается и развивается.

🔗 Сайт проекта и документация

🐸 Библиотека тестировщика

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
🔍 Тестирование микросервисов vs монолита

Тестировщики привыкли к разным архитектурам. Что сложнее обкатать на прочность — единый монолит или многосервисный кластер?

Испытания микросервисов:

— Распределённые вызовы (HTTP/gRPC, очереди) требуют эмуляции сервисов.

— Контрактное тестирование (Pact) защищает от конфликтов версий

— Сетевые сценарии: таймауты, ретраи и отказоустойчивость.

💡 На одном из проектов при обновлении сервиса аутентификации без Pact-теста в staging неожиданно сломался вход на фронтенд — тестировщики не эмулировали новый JWT-формат, и 30% сценариев упали.

Преимущества монолита:

— Один процесс: end-to-end тесты запускаются сразу на всей системе.

— Минимум инфраструктуры — достаточно локального или staging-сервера.

— Простая отладка через IDE-брейкпойнты и профайлинг.

Как найти «золотую середину»:

➡️ Вводите микросервисы по частям, оставляя критичные фичи в монолите

➡️ WireMock, Hoverfly или Mountebank помогут «подтасовать» внешние зависимости

➡️ Автоматизируйте развёртывание через Docker Compose + тестовые контейнеры — чтобы окружение было идентичным на каждом прогоне

А у вас что сложнее далось: ловить таймауты в Kubernetes или гонять тесты на монолите? Поделитесь своими историями в комментариях! ✏️

🐸 Библиотека тестировщика

#междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
😧 Фишка в Postman

pm.sendRequest — мощная функция в Postman Sandbox, позволяющая выполнять дополнительные HTTP-запросы из pre-request или test-скриптов. Это полезно, когда нужно динамически получить данные во время выполнения теста.

Почему это важно:

🔘 Получение access-токенов или временных ключей перед выполнением основного запроса.

🔘 Вызов зависимого API и сохранение ответа для последующего использования.

🔘 Проверка отклика стороннего сервиса (например, email или webhook) в рамках одного сценария.

🔘 Имитация более сложных интеграционных сценариев без стороннего кода.

Пример использования: получение токена и сохранение в переменной окружения


pm.sendRequest({
url: 'https://auth.example.com/api/token',
method: 'POST',
header: {
'Content-Type': 'application/json'
},
body: {
mode: 'raw',
raw: JSON.stringify({
username: 'testuser',
password: 'securepassword'
})
}
}, function (err, res) {
if (err) {
console.error('Ошибка при получении токена:', err);
return;
}

if (res.code === 200) {
const token = res.json().access_token;
pm.environment.set('authToken', token);
} else {
console.warn('Неожиданный статус:', res.code);
}
});


➡️ После этого можно использовать {{authToken}} в других запросах, например, в заголовке:


Authorization: Bearer {{authToken}}


Важно:

— pm.sendRequest асинхронный — убедитесь, что основной запрос не зависит от результата, если вы используете его в test-скрипте.

— Для критически важных сценариев лучше использовать Pre-request Script — тогда вы гарантируете порядок выполнения.

🐸 Библиотека тестировщика

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
⭐️ Почему баги всплывают прямо перед релизом

Кажется, все готово: тесты зеленые, фича собрана, команда на связи. Но за день до релиза — баг.

Разбираем в карточках:

➡️ Почему не спасают даже автотесты и многоступенчатые проверки

➡️ Чем тестовая среда отличается от боевого окружения

➡️ Как дедлайны и нехватка QA-ресурсов влияют на баги

➡️ Почему важно подключать тестировщика и продакта заранее

➡️ Что ломает стабильность при работе с микросервисами

Во второй части — конкретные решения: как перестроить процесс так, чтобы багов становилось меньше, а релизы — спокойнее.

🔗 Полный текст статьи — по ссылке

🐸 Библиотека тестировщика
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
2025/06/28 05:16:20
Back to Top
HTML Embed Code: