Если необходимо настроить мониторинг или нагрузочное тестирование для веб-приложений с функцией загрузки файлов, используйте средство сценариев EveryStep для записи сценария.
Ограничения на отправку файлов
Средство создания сценариев 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, такие как AWS CloudFront CDN. Затем зарегистрайте шаг загрузки файла в EveryStep Recorder. Во время записи шага вам будет предложено предоставить ссылку на тестовый файл. Система загрузит файл и будет использовать его в операции загрузки.
Запись загрузки файлов в скрипте
Кроме того, можно записать загруженный файл и выбрать загруженный файл, чтобы записать шаг отправки в скрипте. При необходимости можно изменить имя файла и ссылку, а также загрузить тайм-аут, редактируя связанную строку в области Скриптового кода после записи.
Рекомендации
Dotcom-Monitor выполняет все шаги и действия в скрипте без задержек по умолчанию. Тем не менее, обычно загрузка файла на веб-ресурс занимает некоторое время. В этом случае, чтобы имитировать задержку и ждать, пока система выполнит шаг загрузки, рекомендуется добавить строку задержки в скрипт сразу после шага загрузки.
Кроме того, чтобы убедиться, что загрузка была выполнена правильно, настроить проверку содержимого после шага загрузки. Как правило, если диалоговые окна или подтверждения загрузки появляются на странице после загрузки файла, добавьте проверку ключевых слов или доступные фрагменты кода, чтобы проверить, принес ли шаг загрузки ожидаемые результаты.
Запись загрузки файла с внешнего URL
Проверьте шаги настройки загрузки файла ниже:
- Загрузите тестовый файл размером до 100 МБ на общедоступный URL-адрес.
- Запись скрипта до момента загрузки файла.
- Нажмите соответствующую кнопку на целевой странице, чтобы загрузить файл.
- В окне Upload Files предоставьте внешнюю ссылку на файл, который вы хотите загрузить. Файл будет загружен с предоставленной внешней ссылки на облачное хранилище Dotcom-Monitor. После загрузки имя файла будет уложено в окне Upload Files. Выберите флажок файла и нажмите OK. В результате линия OpenFileDialogHandler будет автоматически добавлена в скрипт.
- Добавьте задержку сразу после шага загрузки.
- Добавьте в скрипт ключевое слово или подтверждение изображения.
- При необходимости приступайте к записи; и остановить процесс записи, когда он будет готов.
Найдите пример сценария загрузки файлов, записанного в скриптовом инструменте EveryStep ниже. Сценарий содержит примеры загрузки локально сохраненного файла и файла с внешнего URL-адреса. Для загрузки тестов вы можете использовать следующие примеры файлов из общедоступных URL:
- https://d149yd38g6ldk.cloudfront.net/LoremIpsum.docx
- https://d149yd38g6ldk.cloudfront.net/LoremIpsum.pdf
- https://d149yd38g6ldk.cloudfront.net/LoremIpsum.txt
// 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");