Bitbucket Pipelines

Привіт друзі! В житті кожного автоматизатора настає момент, коли треба припинити писати нові тести і налаштувати їх запуск в Continuous Integration. І тут можуть виникнути складнощі, оскільки інструментів для забезпечення CI – дуже багато. Я вам не розкажу за всі, але поділюсь свіжим досвідом про один, що наразі використовую.

Раніше, коли трава була зеленіша, налаштування запуску автотестів було простіше – встановлювався на окремий сервер інструмент типу Jenkins, Test Execute чи мій тодішній фаворит – CruiseControl, і білди/тести просто запускались за командою інструменту.

Сучасні ж тренди пропагують більшу ізольованість середовищ для автотестування, з чим чудово зправляється Docker – на кожний білд/тест ми тепер маємо ізольоване середовище з мінімальним впливом сторонніх факторів.

Звучить дуже круто, але ускладнення інфраструктури зазвичай призводить до ускладнення її налаштування. Але не завжди. В одному з моїх проєктів мені видали bitbucket в якості source control і я вирішив дізнатись, як налаштувати в ньому запуск тестів. І це виявилось на диво просто. Напишу покроково:

  1. Почитати документацію
  2. Створити в своєму проєкті файл bitbucket-pipelines.yml (можна з готового темплейту, одразу в bitbucket)
  3. Вказати ім’я Docker image, в якому має працювати тест (я вказав офіційний з документації playwright)
  4. Далі можна створювати пайплайни – їх в одному файлі може бути багато. Якщо вам такого не треба, нехай буде один default
  5. І тут вже все просто. Створюєте степ, вказуєте його ім’я, кеш (зазвичай те, що треба качати в докер, можна закешувати, щоб прискорити виконання) і вказати команди в пункті script
  6. Також додатково зверну увагу, що у випадку, якщо команда скрипту зафейлиться, то всі наступні команди і кроки виконуватись не будуть!

І на останок приклад мого пайплайну (трохи спростив)

image: mcr.microsoft.com/playwright:focal
pipelines:
  default:
    - step:
        name: Test
        caches:
          - pip
          - playwright # browser drivers cached
        script:
          - pip install -r requirements.txt
          - python -m playwright install
          - pytest -v


definitions:
  caches:
    playwright: ~/.cache/ms-playwright

P.S. А ось іще крута штука – якщо зберігати результати тесту в junit report їх можна переглянути просто в пайплайні. Інструкція

10 Серпня 2021
Автор: 
  • Як оцінити проєкт з автотестування?
  • Мої автотести фіксять баги
  • MQTT performance test
  • Let the search be with you

Залишити коментар

Залишити вiдгук