Перейти к содержимому

Фотография

Проверка скачивания файла.


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 6

#1 deeeee

deeeee

    Новый участник

  • Members
  • Pip
  • 10 сообщений

Отправлено 10 июня 2011 - 07:57

Собственно, вопрос из названия темы.
Как реализовать проверку, скачался ли файл, полностью или нет?
selenium RC + PHP
  • 0

#2 Freiman

Freiman

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 591 сообщений
  • ФИО:Андрей Адеркин
  • Город:Йошкар-Ола

Отправлено 10 июня 2011 - 08:36

Собственно, вопрос из названия темы.
Как реализовать проверку, скачался ли файл, полностью или нет?
selenium RC + PHP

Получить размер файла и сравнить с тем, что должно быть?
  • 0

#3 deeeee

deeeee

    Новый участник

  • Members
  • Pip
  • 10 сообщений

Отправлено 17 июня 2011 - 03:15

я имел ввиду, нажал кнопку скачать, файл начал качаться, и нужно дождаться когда он скачается. какая нибудь команда типа waitForFileDownload() ? ))

на данный момент, сделал ожидание этого обычным sleep(), но из-за не постоянной скорости интернета, иногда не докачивает, а большой sleep ставить не очень хорошо.
после ожидания, делаю проверку с файлом который должен быть. assertFileEquals()
  • 0

#4 barancev

barancev

    Администратор

  • Admin
  • PipPipPipPipPipPip
  • 6 872 сообщений
  • ФИО:Алексей Баранцев
  • Город:Россия, Москва


Отправлено 17 июня 2011 - 12:13

Специальной команды ожидания нет. Я обычно использую вспомогательный метод, который контролирует, качается ли ещё файл -- меняется ли размер. Если, скажем, в течение 5 или 10 секунд размер не меняется, считаю, что загрузка прекратилась (либо докачался, либо оборвался).
  • 0
Алексей Баранцев
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium

#5 dinas

dinas

    Новый участник

  • Members
  • Pip
  • 52 сообщений
  • Город:Минск

Отправлено 17 июня 2011 - 15:15

waitForFileDownload() не может быть по определению селениума. Алексей Баранцев предложил самый оптимальный вариант - проверять наличие файла средствами языка программирования. Дополню - проверить факт полной скачки файла можно попробовав его скопировать куда-нибудь. Пока файл качается, скопировать его будет нельзя, он будет занят. Как только докачается, процесс копирования пойдет. Это избавит нас от 5-10 секунд ожидания смены размера файла. С самим процессом копирования потом можно поступать поразному: сохранить файл (актуальные резалты в тесте) или просто убить процесс копирования.
while True:
    try:
        shutil.copy('c:\\file.txt','d:\\results\\')
        break
    except:
        time.sleep(.1)

Пытаемся копировать file.txt, не получается - ждем 0.1 секунды и опять пытемся. Работу с процессами не расписывал, в вашем языке она может отличаться от Python.
  • 0

#6 deeeee

deeeee

    Новый участник

  • Members
  • Pip
  • 10 сообщений

Отправлено 20 июня 2011 - 03:38

Спасибо.
  • 0

#7 Misha_NSK

Misha_NSK

    Новый участник

  • Members
  • Pip
  • 58 сообщений


Отправлено 23 июня 2011 - 01:13

waitForFileDownload() не может быть по определению селениума. Алексей Баранцев предложил самый оптимальный вариант - проверять наличие файла средствами языка программирования. Дополню - проверить факт полной скачки файла можно попробовав его скопировать куда-нибудь. Пока файл качается, скопировать его будет нельзя, он будет занят. Как только докачается, процесс копирования пойдет. Это избавит нас от 5-10 секунд ожидания смены размера файла. С самим процессом копирования потом можно поступать поразному: сохранить файл (актуальные резалты в тесте) или просто убить процесс копирования.

while True:
    try:
        shutil.copy('c:\\file.txt','d:\\results\\')
        break
    except:
        time.sleep(.1)

Пытаемся копировать file.txt, не получается - ждем 0.1 секунды и опять пытемся. Работу с процессами не расписывал, в вашем языке она может отличаться от Python.

Зачем сразу копировать? Достаточно просто попытаться открыть файл на чтение.
  • 0


Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных