2016-12-07 5 views
0

У меня есть требование, когда мне нужно написать функциональный тест для загрузки файла и тестирования его содержимого. Так что я могу сказать, что есть две части. 1) Убедитесь, что щелчок по ссылке загружает файл 2) Чтение файла, проверяющего его содержимое. Его файл csv, поэтому я могу сделать некоторые манипуляции с контентом.Как проверить загрузку файлов с помощью рамочной программы?

ответ

2

Существует несколько проблем с этим. Во-первых, если вы используете браузер в удаленной системе, вам понадобится способ вернуть файл в систему, запущенную с Интернетом. Вторая проблема заключается в том, что вам нужно будет знать, где был загружен загруженный файл, когда он был загружен. Третья проблема заключается в том, что некоторые браузеры (FF и IE) открывают диалоговые окна уровня ОС, с которыми Selenium не справляется.

Первый вопрос: действительно ли вам нужно скачать файл в браузере? Похоже, вы можете тестировать службу, а не браузер, и в этом случае вы можете просто загрузить файл с помощью Intern и проверить его там.

Предполагая, что вам необходимо загрузить файл через браузер, вы должны настроить браузер, чтобы не открывать диалоговое окно подтверждения и не загружать файл в известное место, которое, по крайней мере, обрабатывает 2 из 3 упомянутых проблем выше. Обратите внимание, что я на самом деле не проверял это.

В Firefox вы можете установить test profile and use it when running tests. Вы, вероятно, необходимо настроить следующие свойства:

  • browser.download.dir: 'путь для загрузки папку'
  • browser.download.folderList: 2
  • browser.helperApps.neverAsk.saveToDisk: 'текст/CSV'
  • browser.download.manager.showWhenStarting: ложному

Для Chrome вы передадите параметры через environment descriptor. Конкретные варианты должны быть:

  • 'profile.default_content_settings.popups': 0
  • 'download.default_directory': 'path to download folder'

После того, как вы настройки браузера, ваш тестовый код нужно будет нажать на ссылку, а затем подождать некоторое неопределенное количество времени (Selenium не предоставляет каких-либо данных о ходе загрузки), затем возьмите файл из самого теста Intern (используя сетевой запрос или локальную операцию файла), чтобы его проверить.

+0

Да, я согласен, что мы должны тестировать сервис для контента. Но нам также нужны тесты конца года, чтобы гарантировать, что загрузка работает с пользовательского интерфейса, поскольку это довольно важная функция. Принимая это как ответ на данный момент, пока у меня не будет возможности проверить это. – Mahesh