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

Загрузка файла

Виджет загрузки файла — это входной тег с атрибутом type, равным file. Это позволяет нам загружать все форматы файлов (.jpg, .png, .txt…)

Давайте поработаем над случаем, когда нам нужно загрузить файл и проверить, загружен ли файл.

Шаги:

  • Запустите URL-адрес приложения
  • Развернуть окно
  • Используйте виджет загрузки файла, чтобы загрузить файл

Ручной режим:

Мы также можем использовать режим сценария. Ниже приведен код для загрузки файла и проверки загруженного файла.

Режим сценария:

'Open browser and navigate to given URL'
WebUI.openBrowser('C:\\\\Users\\\\User\\\\Desktop\\\\Katalon Articles\\\\File Upload\\\\UploadFile.html')
'Maximize the window\r\n'
WebUI.maximizeWindow()
'Passing the path of the file'
WebUI.uploadFile(findTestObject('Upload File'), 'C:\\\\Users\\\\Public\\\\Pictures\\\\Sample Pictures\\\\Desert.jpg')

'Capturing the file name after upload and storing it in a variable'
FilePath = WebUI.getAttribute(findTestObject('Upload File'), 'value')

'Verifying the Actual path and Expected path of file'
WebUI.verifyMatch(FilePath, 'C:\\fakepath\\Desert.jpg', false)

Загрузка файла с помощью ключей отправки

Мы также можем загружать файлы с помощью метода Отправить ключи. Отправить ключи работает для тега input, имеющего тип, равный файлу.

Шаги:

  • Запустите URL-адрес приложения
  • Развернуть окно
  • Используйте метод «Отправить ключи», чтобы загрузить файл.
  • Send Keys принимает URL-адрес файла в виде строки.

Ручной режим:

Режим сценария:

'Open browser and navigate to given URL'

WebUI.openBrowser('C:\\\\Users\\\\User\\\\Desktop\\\\Katalon Articles\\\\File Upload\\\\UploadFile.html')

'Maximize the window\r\n'

WebUI.maximizeWindow()

'Uploading the File using Send Keys method by passing the File path'

WebUI.sendKeys(findTestObject('Upload File'), 'C:\\\\Users\\\\Public\\\\Pictures\\\\Sample Pictures\\\\Desert.jpg')

'Capturing the file name after upload and storing it in a variable'

FilePath = WebUI.getAttribute(findTestObject('Upload File'), 'value')

'Verifying the Actual path and Expected path of file'

WebUI.verifyMatch(FilePath, 'C:\\fakepath\\Desert.jpg', false)

Проверка загруженного файла

После загрузки файла из приложения нам нужно проверить, успешно ли файл загружен и сохранен в папке.

Для этого нам нужно установить настройки для Firefox, как показано на изображении ниже.

Режим сценария:

import org.openqa.selenium.By as By
import org.openqa.selenium.WebDriver as WebDriver
import org.testng.Assert as Assert
import com.kms.katalon.core.webui.driver.DriverFactory as DriverFactory
import com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords as WebUI
import internal.GlobalVariable as GlobalVariable

'Define Custom Path where file needs to be downloaded'
String downloadPath = 'D:\\FileDownloadChecking'

'Launch a browser and Navigate to URL'
WebUI.openBrowser(GlobalVariable.FileDownloadCheckingURL)

WebDriver driver = DriverFactory.getWebDriver()

'Clicking on a Link text to download a file'
driver.findElement(By.linkText('smilechart.xls')).click()
'Wait for Some time so that file gets downloaded and Stored in user defined path'
WebUI.delay(10)

'Verifying the file is download in the User defined Path'
Assert.assertTrue(isFileDownloaded(downloadPath, 'smilechart.xls'), 'Failed to download Expected document')

boolean isFileDownloaded(String downloadPath, String fileName) {
boolean flag = false
'Creating an object for File and passing the download Path as argument'
File dir = new File(downloadPath)
'Creating an Array where it will store all the files from that folder'
File[] dir_contents = dir.listFiles()

println('Total Files Available in the folder are : ' + dir_contents.length)
'Iterating a loop for number of files available in the folder to verify file name in the folder'
for (int i = 0; i < dir_contents.length; i++) {
println('File Name at 0 is : ' + dir_contents[i].getName())
'Verifying the file name is available in the folder '
if (dir_contents[i].getName().equals(fileName)) {
'If the file is found then it will return a value as true'
return flag = true
}
}
'If the file is found then it will return a value as false'
return flag
}
Мы только что узнали, как обрабатывать загрузку файлов и проверять загруженные файлы с помощью Katalon Studio. Скачать исходный код можно здесь.

Дополнительные рекомендации по программному обеспечению для автоматизированного тестирования см. в Обзоре 10 лучших инструментов для автоматизированного тестирования.

Рекомендации по инструментам тестирования API см. в разделе 10 лучших инструментов тестирования API.

Дополнительные инструкции и помощь см. в руководстве Загрузить файл.