Найти в Дзене
BizzyD

Основы программирования для автоматизация

Автоматизация тестирования — это следующий этап в развитии QA-специалиста, который позволяет ускорить процессы тестирования и минимизировать рутину. В этой статье мы разберём основы программирования, ключевые инструменты для автоматизации и понятие CI/CD. Практическая часть поможет вам написать первый автоматизированный тест с использованием Selenium. Чтобы начать автоматизацию тестирования, необходимо освоить базовые навыки программирования. Рассмотрим ключевые моменты: Для автоматизации чаще всего используются следующие языки: Объектно-ориентированное программирование — это парадигма, которая лежит в основе многих языков программирования. Основные концепции: class Car:
def __init__(self, brand, model):
self.brand = brand
self.model = model
def drive(self):
print(f"Driving {self.brand} {self.model}")
my_car = Car("Tesla", "Model 3")
my_car.drive()
После освоения основ программирования важно выбрать подходящий инструмент для автоматизации. Рассмотри
Оглавление

Автоматизация тестирования: с чего начать

Автоматизация тестирования — это следующий этап в развитии QA-специалиста, который позволяет ускорить процессы тестирования и минимизировать рутину. В этой статье мы разберём основы программирования, ключевые инструменты для автоматизации и понятие CI/CD. Практическая часть поможет вам написать первый автоматизированный тест с использованием Selenium.

Основы программирования для автоматизации

Чтобы начать автоматизацию тестирования, необходимо освоить базовые навыки программирования. Рассмотрим ключевые моменты:

1. Изучение языка программирования

Для автоматизации чаще всего используются следующие языки:

  • Python:
    Простой и читаемый синтаксис.
    Подходит для новичков.
    Большое количество библиотек для тестирования.
  • Java:
    Один из самых популярных языков для автоматизации.
    Широкая поддержка инструментов, таких как Selenium.
    Отличная совместимость с корпоративными приложениями.
  • JavaScript:
    Используется для работы с инструментами, такими как Cypress и Playwright.
    Идеален для тестирования фронтенд-приложений.

2. Основы объектно-ориентированного программирования (ООП)

Объектно-ориентированное программирование — это парадигма, которая лежит в основе многих языков программирования. Основные концепции:

  • Классы и объекты:
    Класс — это шаблон, объект — это экземпляр класса.
    Пример на Python:

class Car:
def __init__(self, brand, model):
self.brand = brand
self.model = model

def drive(self):
print(f"Driving {self.brand} {self.model}")

my_car = Car("Tesla", "Model 3")
my_car.drive()

  • Наследование: Позволяет одному классу наследовать свойства и методы другого класса.
  • Полиморфизм: Возможность методов работать с различными типами данных.
  • Инкапсуляция: Сокрытие деталей реализации от пользователя.

Инструменты автоматизации

После освоения основ программирования важно выбрать подходящий инструмент для автоматизации. Рассмотрим наиболее популярные из них:

1. Selenium WebDriver

Selenium WebDriver — это мощный инструмент для автоматизации тестирования веб-приложений.

  • Возможности:
    Работа с различными браузерами (Chrome, Firefox, Safari).
    Поддержка множества языков программирования (Python, Java, C# и др.).
    Автоматизация действий пользователя: клики, ввод текста, перемещения.
  • Пример кода:

from selenium import webdriver

# Открыть браузер
driver = webdriver.Chrome()
driver.get("https://example.com")

# Найти элемент и выполнить действие
search_box = driver.find_element("name", "q")
search_box.send_keys("Automation testing")
search_box.submit()

# Закрыть браузер
driver.quit()

2. Cypress и Playwright

Эти инструменты используются для тестирования современных веб-приложений.

  • Cypress:
    Простой в использовании инструмент для тестирования UI.
    Работает только с JavaScript.
    Отличается скоростью выполнения тестов.
    Пример кода:

describe('Google Search', () => {
it('Searches for Automation', () => {
cy.visit('https://google.com');
cy.get('[name="q"]').type('Automation testing{enter}');
});
});

  • Playwright:
    Поддерживает несколько языков (JavaScript, Python, C#).
    Предназначен для высокопроизводительного тестирования.
    Пример кода:

const { chromium } = require('playwright');

(async () => {
const browser = await chromium.launch();
const page = await browser.newPage();
await page.goto('https://example.com');
await page.screenshot({ path: 'example.png' });
await browser.close();
})();

Понятие CI/CD и работа с Jenkins

CI/CD (Continuous Integration/Continuous Delivery) — это подход, который позволяет автоматически тестировать и развёртывать изменения в приложении.

Jenkins

Jenkins — это инструмент для автоматизации процессов CI/CD.

  • Функции:
    Настройка автоматических билдов и запуск тестов.
    Мониторинг выполнения задач.
    Интеграция с Git и другими системами контроля версий.
  • Пример работы с Jenkins:
    Создать новый pipeline.
    Настроить шаги для сборки и тестирования кода.
    Подключить репозиторий Git и настроить триггеры для запуска при каждом коммите.

Практика: первый автоматизированный тест с Selenium

Напишем простой тест для автоматической проверки веб-страницы.

Задача

Проверить, что страница Google открывается, и поиск работает корректно.

Шаги реализации

  1. Установите Selenium: pip install selenium
  2. Установите драйвер для браузера (например, ChromeDriver).
  3. Напишите код:

from selenium import webdriver
from selenium.webdriver.common.by import By

# Открыть браузер
driver = webdriver.Chrome()
driver.get("https://www.google.com")

# Найти поле поиска и ввести запрос
search_box = driver.find_element(By.NAME, "q")
search_box.send_keys("Selenium WebDriver")
search_box.submit()

# Проверить заголовок страницы
assert "Selenium WebDriver" in driver.title

# Закрыть браузер
driver.quit()

Результат

При запуске теста браузер автоматически откроется, выполнит поиск в Google и закроется. Если заголовок страницы содержит "Selenium WebDriver", тест завершится успешно.

Заключение

Автоматизация тестирования — это мощный инструмент, который помогает улучшить качество продукта и ускорить процесс разработки. Освоение основ программирования, инструментов автоматизации и подходов CI/CD — это первый шаг к успешной карьере автоматизатора.