Какие языки программирования использовались в вашем последнем проекте?

Ответ

В проекте применялся полиглотный стек, выбранный под конкретные задачи:

  • Python — основной язык для API и E2E-автотестов (фреймворк pytest с библиотеками Selenium WebDriver и Requests).
  • JavaScript — для тестирования фронтенда с использованием Cypress.
  • SQL — для валидации данных и сложных проверок в БД PostgreSQL.
  • Bash/Shell — для скриптов в пайплайнах CI/CD (GitLab).
  • Java — для поддержки и доработки legacy-модулей с JUnit 4.

Пример автотеста на Python (pytest + Requests):

import pytest
import requests

API_URL = "https://api.example.com/login"

def test_successful_login():
    """Проверка успешной аутентификации."""
    credentials = {"username": "test_user", "password": "secure_pass"}
    response = requests.post(API_URL, json=credentials)

    assert response.status_code == 200
    response_data = response.json()
    assert "access_token" in response_data
    assert isinstance(response_data["access_token"], str)

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

Ответ 18+ 🔞

А, ну это ж классика, блядь! Смотри, как у нас тут всё устроено, ёпта. Проект — он как многослойный пирог, только вместо теста — код, а вместо крема — мат в чатиках. И для каждого слоя свой инструмент, чтоб не получилось говно вместо системы.

Вот смотри, какой у нас тут зоопарк языков накопился, просто овердохуища:

  • Python — это наш главный по тарелочкам, блядь. На нём все эти APIшки и полные автотесты от начала и до конца (E2E, ёпта). Двигаемся на pytest, а если надо в браузер тыкать — Selenium WebDriver, а если по HTTP стучать — Requests. Универсальная дубина, в общем.
  • JavaScript — а это когда нужно фронтенд пощупать, чтобы он не выёбывался. Тут в дело идёт Cypress, который всё красиво и быстро делает, почти как магия, только без волшебной палочки, блядь.
  • SQL — о, это святое! Когда нужно не просто "ой, ответ пришёл", а проверить, а не наёбывает ли нас база? Данные там записались, удалились, обновились? Для этого наш PostgreSQL и мозги, заточенные под сложные запросы. Без этого — нихуя не тестирование, а гадание на кофейной гуще.
  • Bash/Shell — ну а куда ж без этого, блядь? Всякие скриптики в пайплайнах CI/CD (у нас GitLab, если что). Запустить, собрать, развернуть, почистить за собой — вот это всё. Работа грязная, но кто-то же должен её делать.
  • Java — а это, сука, наше legacy-наследие, ядрёна вошь! Старые модули, которые ещё живы, и их тоже надо поддерживать и иногда даже дорабатывать. Сидим, ковыряем JUnit 4 и вспоминаем молодость. Но без этого никуда, иначе всё рухнет, как карточный домик.

Выбор, блядь, простой как три копейки: какой стек у продукта — такой и у тестов. Нехуй на Python'е фронтенд гонять, если есть Cypress, и нехуй SQL'ные проверки в коде пихать, когда можно одним запросом всё выяснить. Инструмент — под задачу, ёпта!

Вот, глянь, как это на Питоне выглядит (pytest + Requests):

import pytest
import requests

API_URL = "https://api.example.com/login"

def test_successful_login():
    """Проверка успешной аутентификации."""
    credentials = {"username": "test_user", "password": "secure_pass"}
    response = requests.post(API_URL, json=credentials)

    assert response.status_code == 200
    response_data = response.json()
    assert "access_token" in response_data
    assert isinstance(response_data["access_token"], str)

Видишь? Всё чётко, без лишней воды. Отправили запрос, получили ответ, проверили, что токен есть и он строка. И никаких, блядь, танцев с бубном! Вот так и живём.