Se você precisar configurar o monitoramento ou o teste de carga para aplicativos web com a funcionalidade de upload de arquivos, use a EveryStep Scripting Tool para gravar o script.
Limites de upload de arquivos
A EveryStep Scripting Tool suporta a gravação de um upload de arquivo para uma URL externa. Você pode gravar uploads de até 100 MB no total em um script EveryStep para teste de carga e até 20 MB para scripts de monitoramento.
Por exemplo, você pode gravar um upload de quatro arquivos de 25 MB ou um arquivo de 100 MB para o seu teste de carga. Ou você pode gravar o upload de dois arquivos com um tamanho de arquivo de 10 MB cada ou um arquivo de 20 MB para monitoramento de desempenho da Web.
Como funciona
O Dotcom-Monitor não possui armazenamento disponível localmente. Para emular o processo de upload de um arquivo, o sistema precisa baixar o arquivo para o script a partir de uma URL pública antes de executar a etapa de upload. Assim, primeiro, você precisa fornecer um arquivo de teste que será usado no processo de upload pelo Dotcom-Monitor. Como resultado, o Dotcom-Monitor baixará o arquivo da URL fornecida para o armazenamento em nuvem do sistema e o usará no processo de upload cada vez que o script for executado. Há duas abordagens para fornecer um arquivo de teste para o Dotcom-Monitor.
Baixando o arquivo da URL externa
Para usar um arquivo de uma URL externa, coloque um arquivo de teste de até 100 MB (até 20 MB para scripts de monitoramento) em uma URL acessível publicamente, como o bucket do Amazon S3, o armazenamento do Azure ou os serviços de CDN, como a CDN do AWS CloudFront. Em seguida, registo o passo de upload do arquivo no EveryStep Recorder. Ao gravar a etapa, você será solicitado a fornecer o link para o arquivo de teste. O sistema baixará o arquivo e o usará na operação de upload.
Gravando um download de arquivo dentro do script
Como alternativa, você pode gravar o download do arquivo e selecionar o arquivo baixado para gravar uma etapa de upload no script. Se necessário, você pode alterar o nome e o link do arquivo, bem como baixar o tempo limite, editando a linha relacionada na área do Código de Script após a gravação.
Melhores Práticas
O Dotcom-Monitor executa todas as etapas e ações no script sem atrasos por padrão. No entanto, normalmente leva algum tempo para carregar um arquivo para um recurso da Web. Neste caso, para simular o atraso e esperar que o sistema execute a etapa de upload, recomenda-se adicionar a linha Delay ao script logo após a etapa de upload.
Além disso, para garantir que o upload foi executado corretamente, configure a validação do conteúdo após a etapa de upload. Em geral, se as caixas de diálogo ou confirmações de upload aparecerem na página após o upload do arquivo, adicione validação de palavras-chave ou trechos de código disponíveis para verificar se a etapa de upload trouxe os resultados esperados.
Gravando o upload de arquivos a partir da URL externa
Confira as etapas de configuração de upload do arquivo abaixo:
- Baixe um arquivo de teste de até 100 MB para uma URL acessível publicamente.
- Grave o script até o ponto que você precisa para carregar o arquivo.
- Clique no botão correspondente na página de destino para carregar o arquivo.
- Na janela Upload Files, forneça um link externo para o arquivo que deseja carregar. O arquivo será baixado a partir do link externo fornecido para o armazenamento em nuvem Dotcom-Monitor. Uma vez baixado, o nome do arquivo será listado na janela Upload Files. Selecione a caixa de seleção de arquivos e clique em OK. Como resultado, a linha OpenFileDialogHandler será adicionada automaticamente ao script.
- Adicione o atraso logo após a etapa de upload.
- Adicione a palavra-chave ou validação de imagem ao script.
- Se necessário, prossiga com a gravação; e pare o processo de gravação quando estiver pronto.
Encontre o exemplo do script de upload de arquivo gravado na ferramenta de scripting EveryStep abaixo. O script contém exemplos de carregamento de um arquivo armazenado localmente e um arquivo da URL externa. Para fins de teste de upload, você pode usar os seguintes arquivos de exemplo de URLs disponíveis publicamente:
- 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");