Если необходимо настроить мониторинг или нагрузочное тестирование для веб-приложений с функцией загрузки файлов, используйте средство сценариев EveryStep для записи сценария.

Запись загрузки файла доступна только для Chrome и мобильных браузеров.

Ограничения на отправку файлов

Средство создания сценариев EveryStep поддерживает запись загрузки файла на внешний URL-адрес. Вы можете записывать загрузку до 100 МБ в общей сложности в скрипте EveryStep для нагрузочного тестирования и до 20 МБ для сценариев мониторинга.

Например, можно записать загрузку четырех файлов размером 25 МБ или одного файла размером 100 МБ для нагрузочного теста. Или вы можете записать загрузку двух файлов с размером файла 10 МБ каждый или одного файла размером 20 МБ для веб-мониторинга производительности.

Как это работает

Dotcom-Monitor не имеет локально доступного хранилища. Чтобы подражать процессу загрузки файла, система должна загрузить файл на скрипт из общедоступного URL-адреса перед выполнением шага загрузки. Таким образом, во-первых, необходимо предоставить тестовый файл, который будет использоваться в процессе загрузки Dotcom-Monitor. В результате Dotcom-Monitor загрузит файл из предоставленного URL в облачное хранилище системы и будет использовать его в процессе загрузки каждый раз, когда сценарий выполняется. Существует два подхода к предоставлению тестового файла в Dotcom-Monitor.

Загрузка файла с внешнего URL-адреса

Чтобы использовать файл из внешнего URL-адреса, поместите тестовый файл размером до 100 МБ (до 20 МБ для сценариев мониторинга) в общедоступный URL-адрес, такой как корзина Amazon S3, хранилище Azure или службы CDN. Затем зарегистрайте шаг загрузки файла в EveryStep Recorder. При записи шага вам будет предложено предоставить ссылку на тестовый файл. Система загрузит файл и будет использовать его в операции загрузки.

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

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

Рекомендации

Dotcom-Monitor выполняет все шаги и действия в скрипте без задержек по умолчанию. Тем не менее, обычно загрузка файла на веб-ресурс занимает некоторое время. В этом случае, чтобы имитировать задержку и ждать, пока система выполнит шаг загрузки, рекомендуется добавить строку задержки в скрипт сразу после шага загрузки.

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

Запись загрузки файла с внешнего URL

Проверьте шаги настройки загрузки файла ниже:

  1. Загрузите тестовый файл размером до 100 МБ на общедоступный URL-адрес.
  2. Запишите скрипт до того момента, когда вам нужно загрузить файл.
  3. Нажмите соответствующую кнопку на целевой странице, чтобы загрузить файл.
  4. В окне Upload Files предоставьте внешнюю ссылку на файл, который вы хотите загрузить. Файл будет загружен с предоставленной внешней ссылки на облачное хранилище Dotcom-Monitor. После загрузки имя файла будет уложено в окне Upload Files. Выберите флажок файла и нажмите OK. В результате линия OpenFileDialogHandler будет автоматически добавлена в скрипт.

    Если загрузка файла была записана на предыдущем шаге скрипта, сразу выберите имя файла в окне Загрузить файлы .

  5. Добавьте задержку сразу после шага загрузки.
  6. Добавьте в скрипт ключевое слово или подтверждение изображения.
  7. При необходимости приступайте к записи; и остановить процесс записи, когда он будет готов.

Найдите пример сценария загрузки файлов, записанного в скриптовом инструменте EveryStep ниже. Сценарий содержит примеры загрузки локально сохраненного файла и файла с внешнего URL-адреса.

// script_version=3.0; everystep_version=4.0.7706.9249; date=2/10/2021; Chrome=83.0.4103.61
Tabs.SetSize (1768, 419);
DMBrowser tab0 = null;
Step (1, "Download & Generate Test Files - https://fastest.fish/test-files");
tab0 = Tabs.NewTab ();
tab0.GoTo ("https://fastest.fish/test-files");
tab0.Link ("//A[normalize-space()=\"5MB\"]", "//A[normalize-space(text())=\"5MB\"]", "//A[normalize-space()=\"10MB\"]/preceding-sibling::A[1]").Click ();
//File Download to the system storage  
Step (2, "Download & Generate Test Files - http://ipv4.download.thinkbroadband.com/5MB.zip");
tab0.Downloading ("5MB.zip", "http://ipv4.download.thinkbroadband.com/5MB.zip");
tab0.Para ("//P[normalize-space()=\"These test files will be downloaded in full over your network connection from high speed servers. These files can be used to test your network download speed.\"]/preceding-sibling::P[1]", "//P[normalize-space(text())=\"These test files will be downloaded in full over your network connection from high speed servers. These files can be used to test your network download speed.\"]/preceding-sibling::P[1]", "/HTML/BODY/DIV/DIV/P[1]").Click ();
//File Upload using the file from the system storage
Step (3, "Gofile - https://gofile.io/uploadFiles");
tab0.GoTo ("https://gofile.io/uploadFiles");
OpenFileDialogHandler (OpenFileDialogButton.Ok, new string[1] {"5MB.zip"});
tab0.Button ("//BUTTON[normalize-space()=\"Click here\"]", "//BUTTON[normalize-space(text())=\"Click here\"]", "//BUTTON[@ID=\"dropZoneBtnSelect\"]").Click ();
tab0.Button ("//BUTTON[normalize-space()=\"Upload\"]", "//BUTTON[normalize-space(text())=\"Upload\"]", "//BUTTON[@ID=\"uploadFiles-btnUpload\"]").Click ();
Delay ("40sec".ToDuration ());
tab0.KeywordAssert ("successfully uploaded");
//File Upload from the external URL
tab0.Link ("//P[normalize-space()=\"Upload Files\"]/..", "//LI[@ID=\"li-uploadFiles\"]//A", "//LI[@ID=\"li-api\"]/preceding-sibling::LI[1]//A").Click ();
tab0.Download ("Q3UTw.htm", "https://dropmefiles.com/Q3UTw");
OpenFileDialogHandler (OpenFileDialogButton.Ok, new string[1] {"Q3UTR.htm"});
tab0.Button ("//BUTTON[normalize-space()=\"Click here\"]", "//BUTTON[normalize-space(text())=\"Click here\"]", "//BUTTON[@ID=\"dropZoneBtnSelect\"]").Click ();
tab0.Button ("//BUTTON[normalize-space()=\"Upload\"]", "//BUTTON[normalize-space(text())=\"Upload\"]", "//BUTTON[@ID=\"uploadFiles-btnUpload\"]").Click ();
Delay ("40sec".ToDuration ());
tab0.KeywordAssert ("successfully uploaded");