Ответ
В своей практике я работал со следующим стеком технологий для автоматизации тестирования:
- Языки программирования: Основной — Java (сборка Maven/Gradle). Также использовал Python для скриптов и прототипирования.
- UI-тестирование: Selenium WebDriver 4 (Java) в связке с JUnit 5/TestNG. Для современных веб-приложений применял Playwright (Java/TypeScript) и Cypress.
- API-тестирование: REST Assured (Java) для REST API, Postman с коллекциями и Newman для запуска в CI, GraphQL через специализированные клиенты.
- Мобильное тестирование: Appium для нативных и гибридных iOS/Android приложений.
- Инфраструктура и инструменты:
- CI/CD: Jenkins, GitLab CI, GitHub Actions.
- Отчетность: Allure Framework, ExtentReports.
- Контейнеризация: Docker для изоляции тестового окружения.
- Управление тестами: TestRail, Zephyr.
Пример базового UI-теста на Java + Selenium + JUnit 5:
import org.junit.jupiter.api.*;
import org.openqa.selenium.*;
import org.openqa.selenium.chrome.ChromeDriver;
import static org.junit.jupiter.api.Assertions.assertTrue;
public class LoginTest {
private WebDriver driver;
@BeforeEach
void setUp() {
driver = new ChromeDriver();
}
@Test
void successfulLoginTest() {
driver.get("https://example.com/login");
driver.findElement(By.id("username")).sendKeys("test_user");
driver.findElement(By.id("password")).sendKeys("pass123");
driver.findElement(By.id("submit")).click();
assertTrue(driver.getPageSource().contains("Welcome"));
}
@AfterEach
void tearDown() {
driver.quit();
}
}