Ответ
Да, тестирование функционала загрузки файлов — это частая задача. Я тестировал его как вручную, так и с помощью автоматизации.
Ручное тестирование:
- Проверял загрузку файлов разных типов (изображения, PDF, документы) и размеров.
- Тестировал валидацию на стороне клиента и сервера (ограничения по размеру, типу).
- Проверял поведение при попытке загрузить файл с запрещенным расширением или вирус (эмулируя).
- Отрабатывал сценарии с прерыванием загрузки, повторной загрузкой файла с тем же именем.
- Проверял отображение прогресса загрузки и сообщений об ошибках/успехе.
Автоматизация (на примере Selenium WebDriver + Java):
// Находим элемент input типа file
WebElement fileInput = driver.findElement(By.cssSelector("input[type='file']"));
// Передаем абсолютный путь к файлу
String filePath = "/Users/test/data/test_image.jpg";
fileInput.sendKeys(filePath);
// Далее можно проверить, что файл загрузился
WebElement successMessage = wait.until(
ExpectedConditions.visibilityOfElementLocated(By.id("upload-success"))
);
assertTrue(successMessage.isDisplayed());
Особенности и подводные камни:
- Для скрытых элементов (
display: none)sendKeys()может не сработать. Иногда приходится использовать JavaScript для изменения видимости элемента. - В headless-режиме (Chrome/Firefox) загрузка файлов работает, но требует правильной настройки.
- Для тестирования drag-and-drop загрузки использовал
ActionsAPI Selenium или, чаще, напрямуюsendKeys()к элементу-приемнику. - Также тестировал API для загрузки файлов через
multipart/form-dataзапросы, используя инструменты вроде Postman или библиотеки (RestAssured в Java, requests в Python).