BDS SOLUTIONS – Juan Bertoluzzi Garcia
- 01 Instalação
-
Verificar se o Java está instalado no sistema (cmd: java -version) Java 7 =<
-
Download JMeter
-
Deszip JMeter
-
Start JMeter – jmeter/bin/jmeter.bat
- 02 Criar Primeiro Teste Jmeter
-
Jmeter.bat
-
Test Plan Container que contém todos os elementos
-
Botão direito/ add/ Threads(Users)/ Thread Group
| Thread Group é usado para criar ou iniciar os passos
| Opções: Thread Properties – parte mais importante
-
Number of Threads: Users simulados para o teste
-
Ramp-Up Period(s): Tempo de execução
-
Loop Count: opção de forever ou de quantidade
-
Delay Tread creation until needed: atraso de passos
-
Scheduler: agendador
- Botão Direito Thread/ add/ Sampler/ HTTP Request
| Teste um website
| Web Server
| Server Name or IP: link.com (sem http)
| Port Number: n° da porta se for necessário
| Path: acesso a uma sessão do site (ex: /calendário/2019-outubro)
-
Botão Direito Thread/ add/ Listener/ View Results in Table
-
Botão Direito Thread/ add/ Listener/ View Results Tree
- 03 Declarações
| Assertions
| Check das respostas, Erros e Warning
- Botão Direito/ add/ Assertions/ Reponse Assertion
| Response Field to Test Response Code
| Check as respostas gerais( Patterns to Test)
Tipos de Assertions enviados ao Response Assertion:
-
Botão Direito/ add/ Assertions/ Duration Assertion Duração
-
Botão Direito/ add/ Assertions/ Size Assertion Tamanho
-
Botão Direito/ add/ Assertions/ HTML Assertion HTML
-
Botão Direito/ add/ Assertions/ XML Assertion XML
-
Botão Direito/ add/ Assertions/ XPath Assertion Teste Particular
- 04 Auditor/ Receptor/ Ouvintes
| Listeners
| Elementos que pegam/escutam informações dos testes que são executados.
| Simples forma de visualizar os resultados e métodos do teste. Esses | resultados mostram a performance dos testes.
-
Add: Thread Group e HTTP Request
-
Botão direito Thread Group/ Add/ Listener/ View Results in Table
| Uma linha para cada Request
- Mostra quantidade de acessos/usuários
| Latência = tempo do primeiro byte/dado (1010ms)
| 1010ms___________2010ms
| __________1000ms
| 0s-----------------------------------------------2000ms
- Botão direito Thread Group/ Add/ Listener/ View Results Tree
| Importante notar que a lista em árvore(tree) ocupa muito espaço na memória. | Ideal apenas para verificar a qualidade do seu teste e eficiência, depois o | mais aconselhável é retira-lo.
- Botão direito Thread Group/ Add/ Listener/ Aggregate Report
| Única linha de resumo das respostas geradas
| Median: tempo médio de espera das Requests
- Botão direito Thread Group/ Add/ Listener/ Graph Results
| Gráfico de performance e qualidade dos resultados
- Botão direito Thread Group/ Add/ Listener/ Summary Report
| Alguns dos mesmos resultados do Aggregate Report
- Botão direito Thread Group/ Add/ Listener/ Simple Data Writer
| registrar os Logs, registrar meus resultados em arquivos
- 05 Gravar UI Teste
- Botão direito Test Plan/ Add/ Non-Test Elements/ HTTP(S) Test Script Recorder
| Record UI Test
| Workbench = HTTP(S) Test Script Recorder
| Global Settings: port, é a porta particular que sera gravada e usada pelo | teste
-
Tools(ferramentas) disponíveis para armazenamento de UI testes
-
Tools badboy version 2.2.5
-
Blazemeter
-
-
Use uma das ferramentas para fazer o mapa do teste Jmeter
-
Escolha um serviço de teste e copie a Url na barra superior do Badboy, e inicie.
-
Navegue pela página no próprio Badboy ele testara todos os caminhos acessados e visitados.
-
Salve em arquivo Jmeter(.jmx) Script, exportando
-
-
Abra o Script no Jmeter
-
Botão direito Thread Group/ Add/ Listener/ View Results in Table
-
Botão direito Thread Group/ Add/ Listener/ View Results Tree
-
Start e Validar
- 06 Criando Database e Plano de Teste
-
Adicionar MySql jdbc a pasta lib do Jmeter (Restart Jmeter)
-
… / add/ Threads(Users)/ Thread Group
-
Botão direito Thread Group/ add/ Config Element/ JDBC Connection Configuration
| Mostra os detalhes do BD
| Adicionar Database URL, JDBC Driver class, username e password.
- Botão direito Thread Group/ add/ Sampler/ JDBC Request
| Script e Requests SQLs separadas
| SQL Query: Espaço de seleção de tipo e para comandos SQL, como Selects, | Triggers e QuerySelectors
-
Botão direito Thread Group/ Add/ Listener/ View Results in Table
-
Botão direito Thread Group/ Add/ Listener/ View Results Tree
-
Start e Validar
- 07 Jmeter com Command Line (non-GUI mode)
| Execute non-GUI mode:
- Consome mais memory/pesquisas
- Não recomendado para Teste de grande e carregamento
- Command Line pode ser integrada a outros sistemas
(Jenkins, CI, etc.)
-
Botão direito/ add/ Threads(Users)/ Thread Group
-
Botão Direito Thread/ add/ Sampler/ HTTP Request
-
Botão direito Thread Group/ Add/ Listener/ View Results Tree
-
Cmd
-
$jmeter .sh write a log file
-
$jmeter -n -t /local/do/jmeter/test/script -l /local/de/resultados/arquivos
-n mode non-GUI
-t local Jmeter Script
-l local dos arquivos de resultados
- $jmeter -? Mostra todos as opções
(-h, --?, -v, -p, -q, etc.)
> **- 08 Test FTP Upload e Download**
Use Binary mode? : usado para FTP de zip file
Save File in Response? : validação de teste e get the file quando necessita de uma performance apropriada de testes
Response surgira nas Views Results.
-
Botão direito/ add/ Threads(Users)/ Thread Group
-
Botão Direito Thread/ add/ Sampler/ FTP Request GET
www.swfwmd.state.fl.us/data/ftp
Server Name or IP: ftp.swfwmd.state.fl.us
get(RETR)
Username e Password (e-mail aconselhado)
FileZIlla conectar: arquivar arquivos nessa localização ou local do sistema
-
Teste FTP GET e validate
-
Botão Direito Thread/ add/ Sampler/ FTP Request PUT
www.swfwmd.state.fl.us/data/ftp
Server Name or IP: ftp.swfwmd.state.fl.us
put(STOR)
-
Botão direito Thread Group/ Add/ Listener/ View Results in Table
-
Botão direito Thread Group/ Add/ Listener/ View Results Tree
- 09 Teste de Web Services(API)
Aplicação API Interface
WebService – cliente API Server
Ex: Cozinha Garçom Mesas
REST | SOAP diferença é o formato do protocolo no recebimento das mensagens
-
REST API
-
Botão direito/ add/ Threads(Users)/ Thread Group
-
Botão Direito Thread/ add/ Sampler/ HTTP Request
OU
Botão Direito Thread/ add/ Sampler/ SOAP XML-RPC Request
Webserver
Server Name or IP: endereço.api.open
Send Parameters with the Request
Add = [Name] [Value] Inclue Equals? V
-
Botão direito Thread Group/ Add/ Listener/ View Results Tree
-
SOAP API
-
Botão Direito Thread/ add/ Sampler/ SOAP XML-RPC Request
-
Adiciona detalhes do SOAP API Request
Soap/ XML – RPC Data
-
Botão direito Thread Group/ Add/ Listener/ View Results Tree
-
Botão direito Thread Group/ Add/ Listener/ View Results Table
- 10 criar Assertions JDBC(Database)
* 06 Criando Database e Plano de Teste
-
Botão direito/ add/ Threads(Users)/ Thread Group
-
Botão direito Thread Group/ add/ Sampler/ JDBC Request
-
Botão direito Thread Group/ Add/ Listener/ View Results Tree
-
Botão direito Thread Group/ Add/ Listener/ View Results Table
-
Botão direito JDBC Request/ add/ Assertions/ Response Assertions
-
Adiciona variáveis ao SQL Query do JDBC Request
[select * from Student1]
Parameter values: []
Parameter types: []
Variable names: [Col1,Col2,Col3,Col4]
Apply to: Jmeter Variable [Col4_2] do Response Assertions
- Botão direito Thread Group/ add/ Listener/ Assertion Results
- 11 create HTML dashboard Reports command line
-
Botão direito/ add/ Threads(Users)/ Thread Group
-
Botão Direito Thread/ add/ Sampler/ HTTP Request index.html
-
Botão Direito Thread/ add/ Sampler/ HTTP Request pag2.html
-
Botão Direito Thread/ add/ Sampler/ HTTP Request pag3.html
-
Botão direito Thread/ add/ Assertions/ Response Assertions
-
Salva e Fecha
Executa command Line
-
$jmeter -n -t “local do script/arquivo jmeter” -l “local do seu arquivo de resultados” -e -o “caminho de reports HTML”
-
$jmeter -g “local e csv file” -o “output Folder”
-
Analise o HTML(Dashboard) Reports
-
Duvidas de criação do dashboard, documentação Jmeter mostra passo a passo e resolução ideal dos problemas emergentes
-
link: https://jmeter.apache.org/usermanual/generating-dashboard.html
- 12 Plugin Manager
-
Install new Plugins
-
Remove old Plugins
-
Upgrade existing Plugins
-
Information on Plugins
- Downloads/ Install new plugins
Arquivos JAR: https://jmeter-plugins.org/wiki/PluginsManager/
Adicionar plugin a pasta ext
Options/ Plugins Manager
Link de plugins Jmeter https://jmeter-plugins.org/
Localizar plugins: apache-jmeter/ lib/ext
Adicionar plugin a pasta ext
- Para plugin ser executado, deve-se reiniciar a aplicação Jmeter.
- 13 Leitura de Dados do Arquivo csv – Parametrização
* 09 Teste de Web Service(API)
-
Botão Direito no Thread Group/ Add/ Config Element/ CSV Data Set Config
-
Filename (rota/do/arquivos/csv.csv/excel)
-
Variable Names (comma-delimited)
-
Allow quoted data? (True/False/Edit{})
-
Recycle on EOF = configuração de porta
-
-
Atualizar valor dos campos: ${ variable_name }
- URL value
- 14 Funções e Variáveis
Criar 3 ThreadGroup com HTTP Request
Criar Summary Report e View Results in Table
Adicionar Function no name do HTTP Request
Function: Método que preenche um campo e qualquer outro elemento no teste
${ ___functionName }
${ ___functionName(var1, var2, ... , varN}
Variable: Aloca valores que podem referenciar qualquer elemento com o thread
Function – caseSensitive | came | Casing
-
Log: label - ${__log(“message”)}
-
Time: label - ${__time(dd MM YYYY HH mm ss}
-
ThreadNum: label - ${__threadNum}
-
Soma: label - ${__intSum(2,3,result)}
– 15 Setup Performasses Reais
Think Time – Simula users atuais com timing/delay
Pacing – Controla os users virtuais
– Controla o tempo entre as interações
– Arquiva um número n de interações em x minutos/segundos
- Adicionar Plugin – Stepping Thread Group
* 12 Plugin Manager
-
Confirmar jpgc – Standard Set
-
BtnDireito TestPlan/ Add/ Threads(Users)/ jp@gc – Stepping Thread Group
-
… / HTTP Request
-
… / View Results Tree
-
… / View Results in Table
-
… / Aggregate Report
- 16 Timer, Como Adicionar Think Time
Pausar Thread (v.user) por algum tempo
Adiciona delay entre os Threads
Evitar sobrecarga no servidor e arquivar comportamento em tempo real passo a passo no carregamento
-
… / Thread Group
-
… / Add/ Logic Controller/ Simple Controller
-
BtnDireito Simple Controller/ … / HTTP Request
-
BtnDireito Thread Group/ … / View Results in Table
-
BtnDireito Simple Controller/ Add/ Timer/ Constant Timer
-
BtnDireito Simple Controller/ Add/ Timer/ Uniform Random Timer
-
Desabilitar todos os Constant Time
Random Delay Max
Constant Delay Offset
0.X * Random Delay Max + Constant Delay Offset
- 17 Parametrizar Teste FTP
* 8 Test FTP Upload e Download
Upload arquivos para o FTP com nomes diferentes
- Adicionar CSV Data Set Config
- Btn Direito Thread Group/ add/ Config Element/ CSV Data Set Config
- Criar Arquivo CSV e prover localização no CSV Data Set Config
- Adicionar aos Filename a rota do arquivo Excel
3- FTP Request PUT = Remote File: /rota/do/arquivo/ ${Name}
- Parametriza FTP PUT
- 18 Iniciar execução Programada + Sequencial
Executar testes de Duração Específica
- … / Thread Group
- Loop Counter Forever [√]
- Selecionar a opção Scheduler [√]
- Adicionar Duration (sec)
-
... / HTTP Request
-
... / View Results Tree
-
... / View Results in Table
Executar testes Sequencialmente
-
Criar 2 Thread Groups (Thread Group1 e Thread Group2)
-
Criar HTTP Request (HTTP Request 1 e HTTP Request2) em cada TG (Thread Group)
-
Test Plan
- Selecionar [√] Run Thread Groups consecutively (i. e. run groups one at a time)
Adicionando Websites para testes Sequenciais
-
Criar 2 Thread Groups (Thread Group1 e Thread Group2)
-
Criar HTTP Request (HTTP Request 1 e HTTP Request2) em cada TG
-
Adicionar duração Máxima ao 1° TG (30 segs.)
-
Adicionar delay ao 2° TG (10 segs.)
- 19 Correlação (Expressão Regular com extração)
Correlação: Extração do valor da resposta de um Step e referência deste dentro de uma solicitação de outro Step subsequente.
Extrai dinamicamente o Valor da resposta do 1°Step, por exemplo, e referencia esse valor extraído na solicitação do 2°Step.
Referência: Feito dinamicamente – at runtime.
Step: Passo (1°Passo, 2°Passo, ...).
a) Uso de Expressões de Extração Regulares para Correlação
1- Criar um Test Plan - … / Thread Group
- … / HTTP Request
- .../ View Results Tree (Pode-se usar o RegExp Tester)
2- Adicionar Regular Expression Extractor
- Onde o valor da resposta precisa ser extraido.
- BtnDir HTTP Request/ Add/ Post Processors/ Regular Expression Extractor
3- Referenciar o Valor Extraido ao Step subsequente
- regexr.com
- Adionar o Nome da Referência: ReferenceValue
- Adicionar outro HTTP Request com Nome da Referência Path: ${ReferenceValue}
- 20 Uso de Templates
JMeter Templates: Scripts reutilizáveis. Usuário pode gerar e selecionar uma Templates de Test Plan com necessidades e componentes básicos.
Acesso as Templates
-> Barra de Ferramentas| File > Templates..
-> Templates | Select Template: [Recording, Recording with Think Time**,** JDBC Load Test**,** BeanShell Samples**,** MongoDB Load Test**,** Building a Web Test Plan**,** Building an advanced Web Test Plan**,** Building a SOAP WebService Test Plan**]**
-> Pode se fundir Templates. Abre-se um e logo em seguida abre-se outro, surgira a opção de Merge.
Criar Template
-
Salvar seu Test Plan como arquivo .jmx
-
Colocar seu Test Plan .jmx na rota jmeter/bin/template
-
Abrir o arquivo templates.xml e editar a lista de templates
- Reiniciar Jmeter e verificar
21 Teste Script Recorder**
Workbench = HTTP(S) Test Script Recorder
Usado para graver ações no navegador
- BtnDir. TG/ Add/ Logic Controller/ Recording Controller
Definir Configuração Proxy do Navegador (Tools/Options)
Instalar certificado no Navegador(bin/apacheJMetercertificate.crt)
- BtnDir. HTTP(S) Test Script Recorder/ Add/ Listeners/ View Results Tree
Construir uma Template Recording (Recording with Think Time)
-
Test Plan
-
User Defined Variables
-
HTTP Request Default
-
HTTP Cookie Manager
-
-
Thread Group
- View Results Tree
-
HTTP(S) Test Script Recorder
- View Results Tree
- 22 Teste de Upload de Arquivo (POST)
-
Criar um Test Plan de HTTP Request
-
Adicionar o Server Name or IP: (URL ou IP)
-
Alterar o Method de GET para POST
-
Selecionar o [ ]Use multipart/form-data for POST
-
Seleciona Files Upload
-
Clicar no botão Add
-
Clicar em Browse.. e selecionar o arquivo que foi feito Upload
-
No local onde ocorreu o Upload do arquivo, será necessário Inspecionar o elemento e identicar seu name (ex: name=”upload_file”)
-
Copiar o valor do name, colar no Parameter Name
-
No freeformatter.com verificar o caminho do seu tipo de arquivo
(Ex: application/pdf áudio/x-aac image/png)
- Adicionar o caminho ao MIME Type
Recording File Upload
-
Templates > Recording = Create a Test Plan
-
HTTP(S) Test Script Recorder – Definir uma porta no Port
-
Definir Navegador com a Port
-
Preferences: Tools > Options > Advanced > Network> Connection Settings
-
Start HTTP(S) Test Script Recorder
-
Filtrar os resultados que você precisa
-
No View Results Tree/ Response Data verificar a mensagem do Script
Verificar Problemas: Options/ Log Viewer
- 23 Teste de Download de Arquivo (GET)
-
Test Plan com HTTP Request
-
Alterar o Method para GET
-
Adicionar o Server Name or IP: (URL ou IP)
-
Adicionar Path (Ex: /1KB.zip)
-
Adicionar Listener/ View Results Tree
-
Btn dir. HTTP Request/ Add/ Listener/ Save Responses to a File
-
Save Responses to a File FIlename Prefix (caminho)
-
Selecionar Don’t add number to prefix [√]
-
Options > Function Helper Dialog
-
Choose a Function _ _threadNum
-
Function String ${_ _threadNum} como prefixo
-
- 24 DEBUG e Correção de erros
-
Adicionar um Test Plan com HTTP Request
-
Analisar View Results Tree Listener
-
Btn Dir. Thread Group/ Add Sampler/ Debug Sampler
Desabilitar o Debug Sampler antes de iniciar a performance teste
Btn dir. Debug Sampler /Disable
-
Btn Dir. HTTP Request/ Add/ Post Processors/ Debug PostProcessor
-
Btn Dir. HTTP Request/ Add/ Config Element/ HTTP Cache Manager
-
Step by Step DEBUG
- 25 Gravar login testes
-
Adicionar BlazeMeter Plugin no browser
-
Iniciar BlazeMeter plugin e login
-
Gravar o Cenário
-
Finalizar gravação e Exportar para .jmx
-
Importar .jmx em Jmeter
-
Adicionar os Listener
26 Jmeter Selenium WebDriver**
Analise de performance do cliente usando WebDriver
Add plugin
- JMeter > Plugin Manager > Selenium/WebDriver Support
- https://github.com/undera/jmeter-plugins-webdriver
-
Criar um Test Plan/ Add Thread Group
-
Btn dir. Thread Group/ Add/ Config Element /jp@gc -Chrome Driver Config
-
... / Add/ Sampler/jp@gc – WebDriver Sampler
-
... / Add/ Listener/ View Results Tree
Download chromedriver.exe e definir o local no Chrome Driver Config
-
Adicionar Path ao jp@gc Chrome Driver Config
- g. – D:\Desktop\drivers\chromedriver\chromedriver.exe
-
Adicionar script no Web Driver Sampler
-
Adicionar Extensão do Chrome Katalon Recorder (Selenium IDE for Chrome)
-
Adicionar um Script no Web Driver Sampler
WebDriver Sampler automatiza a execução e coleta das métricas da performance do navegador (cliente-side)
Enquanto o uso do WebDriver Sampler, cada Thread vai ter um único navegador instanciado e um consumo significativo entre as pesquisas
27 Encontrar LOGS no JMeter**
- Options > Log Viewer**[√]**
Options > Log Level > { ERROR/ WARN/ INFO/ DEBUG/ TRACE }
-http://jmeter.apache.org/usermanual/get-started.html\#logging
-
Jmeter/ bin/ log4js.xml
-
Escolher o Log Level e executar a aplicação JMeter
- 28 Passo a Passo Debug
-
Criar um Test Plan
-
Adicionar Server Name or IP ao HTTP Request
-
Plugin Manager 3 Basic Graphs
- Step by Step Debugging
- https://github.com/Blazemeter/jmeter-debugger
- 29 Mudança do Timestamp formato em csv
-
Criar um Teste Plan
-
Adicionar Listener/ Aggregate Report
-
Adicionar um Filename no Write results para arquivos do Aggregate Report (results.csv)
-
Verificar results.csv
- 30 Uso de JSON Extractor
adicionar o caminho /api/users?page=2 (https://reqres.in/api/users?page=2)
Copiar resultado da página json
-
Criar um TestPlan
-
No HTTP Request adicionar
-
Protocol [http]
-
Server name or IP
-
Path
-
Method GET
-
-
Btn Dir. no HTTP Request/ Add/ Post Processors/ JSON Extractor
-
JSON - adicionar Names of created variables
-
JSON – Adicionar JSON Path expressions (EX:
$..id; $ ..first_name) -
Realizar o Step by Step Debugger
Dentro do Path pode-se adicionar um valor (ex: /api/users/${User1})
- 31 Definir Threads/users por command line
-
Criar um Test Plan
-
Thread Group
-
Number of Threads(users): ${__P(User,1)}
-
Ramp-Up Period (in seconds): ${__P(rampUp,1)}
-
Help > Useful links > Functions Reference Documentation
https:\\jmeter.apache.org/usermanual/Functions.html
-
Salva o Test Plan
-
CMD:
$jmeter -n -t “C:\Users\nomeUsusario\Desktop\JmeterTest\SeuTest.jmx”
- Options > Function Helper Dialog
- Choose a Function
-Definir um Name e Value
- Gerar Function
- CMD:
$jmeter -n -t “C:\Users\... \JmeterTest\SeuTest.jmx” -JUser=5 -JRampUp=1
- 32 Acrescentar registro de data e hora no arquivo de resultado
| Criar Nomes Exclusivos de Arquivos de Resultados
-
Criar TestPlan com HTTP Request
-
Adicionar Aggregate Report
-
Options > Function Helper Dialog
- Choose a Function > __time
- Format String: MM-dd-yyyy-HH-mm-ss
-Name of variables: TimeVar
- Gerar Function
- ${__time(MM-dd-yyyy-HH-mm-ss,TimeVAr)}
4- Adicionar function ao filename do Aggregate Report com \\ ou /
Ex: ...\jmeter\test\report\\ ${__time(MM-dd-yyyy-HH-mm-ss,TimeVAr)}
- 33 Thread Groups Simultâneos – Configurar testes Reais
* 15 Setup Performasses Reais*
jmeter-plugins.org/wiki/ConcurrencyThreadGroup
Download plugin
Plugins Manager
-
Add/ Threads/ bzm-Concurrency thread Group
-
Target Concurrency Numero de campos que vão ser rodados paralelos
-
Ramp Up Time Minutos ou Segundos
-
Ramp-Up Steps Count partições do gráfico
-
Hold Target Rate Time(sec) Momento de uniformidade
-
Thread Iterations Limit Numero de vezes
-
Log Threads Status into file arquivo de log
- 34 Criar Resultados Agregados csv por Command Line
1- Criar Thread Group + HTTP Request + Aggregate Report
$ cd ../jmeter/bin
$ jmeter -n -t “C:\Users\Desktop\JmeterTest\jmeter_test.jmx” -l “C:\Desktop\JmeterTest\Report\result.jtl”
JMeter Plugins CMD
https://jmeter-plugins.org/wiki/JMeterPluginsCMD
Download JMeterPlugins-Standard-1.4.0.zip
https://jmeter-plugins.org/downloads/old
Copiar todos os arquivos da pasta do arquivo baixado, JMeterPlugins-Standard-1.4.0.zip > lib > ext, e colar na pasta do próprio JMeter, JMeter > apache-jmeter > lib > ext
$ cd ..\apache-jmeter\lib\ext
$ JMeterPluginsCMD.bat --generate-csv “local do arquivo AggregateReport.csv” --input-jtl “local\do\arquivo result.jtl” --plugin-type AggregateReport
-35 Como declarar a contagem de NODES de uma resposta JSON
-
Criar TestPlan com HTTP Response
-
Sample Rest API reqres.in
-
Adiciona a Request reqres.in/api/users?page=2
-
JSON Editor Online jsoneditoronline.org
-
Colar o resultado do Request no JSON Editor
No HTTP Request adicionar informações
-Protocol[http]: https
-Server Name or IP: reqres.in
-Method: GET
-Path: /api/users?page=2
View Results Tree
-Response data = Resposta JSON
- Btn Dir. HTTP Request/ Add/ Post Processors/ JSON Extractor
- Names of created variables: UserCount
- JSON Path expressions: $.data[*]
- Match No.(0 for Ramdom): -1
-
Step-by-Step Debugger
-
../Assertions/Response Assertion
- JMeter Variable Name to use: UserCount_matchNr
-Patterns to Test: Adicionar valor para a resposta
- ../ Post Processors/ jp@gc – JSON Path Extractor
-Destination Variable Name: UserCount
-JSONPath Expression: $.data[*]
- Desabilitar JSON Extractor
-36 Como deixar em loop atraves de arquivo CSV – enquanto Loop
-
Criar um TestPlan
-
Adicionar Server Name or IP e salvar
-
Criar uma pasta Data e um arquivo data.csv
-
Adicionar numero de loops ao Thread Group
-
../Config Elements/CSV Data Set Config
-
CSV Data Set Config – Filename: Adicionar o caminho do arquivo data.csv
-
HTTP Request – Server name or IP: ${URL}
-
Adicionar na coluna A do arquivo data.csv o valor URL e abaixo os endereços que deseja verificar
-
Btn dir. TG/ Add/ Logic Cotroller/ While Controller
- Condition (function or variable) ${URL}
-
Mover CSV Data Set Config e HTTP Request para dentro do While Controller
-
CSV Data Set Config
-
Ciclo no final do arquivo
-
Recycle on EFO?: False Não manter uma trade ou parada súbita no final do arquivo
-
Stop thread on EOF?: True O final do arquivo será alcançado e não manterá a continuação
-37 Time Functions
Function Helper
a)- Choose a function: __time
- Format String: MMM-dd-yyyy-HH-mm-ss
-Generate & Copy to clipboard
b)-Choose a function: __timeShift
- Format String: MMM-dd-yyyy
-Date to shift: Pode-se adicionar uma data ou fazer a não, caso não a verificção sera feita com a date diaria
-Amount: P1D(pass 1 day) verificar dia seguinte
P-1D(pass 1 day ago) verificar dia anterior
-38 Executar um Thread específico por command line
-
Criar Vários(2 mínimos) Test Plan/ Thread Group /HTTP Request
-
Abrir o cmd
$ jmeter -n -t “local do arquivo Threads.jmx” -l “local\do\arquivo result.csv”
- Function Helper
- Choose a function: __P
-Name of property: users
-Default value: 1
*${__P(users,1)}
- Retorna ao TG que deve ser testado especificamente
- Number of Threads(users): *${__P(users1,1)}
- No outro TG
- Number of Threads(users): *${__P(users2,1)}
$ jmeter -n -t “local do arquivo Threads.jmx” -l “local\do\arquivo result.csv” -Jusers1=2 -Jusers2=0
-39 Recording in JMeter
File < Templates < Recording
File < Templates < Recording with Think Time
HTTP(S) Test Script Recorder
- Start
- Gera um certificado no diretório bin para adicionar ao navegador
BlazeMeter
Adicionar um View Results
durante teste**
* 12 Plugin Manager
Response
-
Time
-
Avg Time
-
Connect Time
-
Size
-
Bytes
Server – Máquina onde sua aplicação teste é hospedada, CPU, Memory, Disk I/O, Network
- Documentação PerfMon: jmeter-plugins.org/wiki/PerfMon
-
Adicionar PerfMon Plugin ao JMeter
-
Download e adicionar arquivos do plugin a pasta lib e ext
-
Habilitar no Plugin Manager
Server
- Dowload Perform Server Agent
- https://github.com/undera/perfmon-agent/blob/master/README.md
- Executar o arquivo startAgent.bat
- No Mac/Linux há necessidade de se executar pelo terminal $sh startAgent.sh
-Verificar se o Cliente tem comunicação com o Server via port 4444
- Abrir o cmd e localizar o IP $ipconfig
- Verificar Comunicação $telnet 192.168.99.1 4444 IP exemplo
- Ao iniciar o comando cmd, poderá checar a comunicação através do startAgent.bat executado
- Para finalizar comunicação basta digitar shutdown no cmd
-
Criar um Teste Plan no JMeter para verificar a saúde do Servidor
-
Btn TH/ Add/ Listener/ jp@gc – PerfMon Metrics Collector
jp@gc – PerfMon Metrics Collector
- Servers to Monitor (ServerAgent must be started, see help)
- Metric to Collect [CPU | Memory | Swap |TCP | Etc.]
- Download Jenkins Generic Java package (.war)
- Pelo CMD acessar a pasta Jenkins
- $java -jar jenkins .war –http Port=9191
-
Criar um TG com HTTP Request simples
-
Executar o Test Plan
-
verificar resultados no jp@gc
- 41 JMeter | Remote Testing | Master-Slave | Distributed Testing
- Setup Master
- adicionar um sistema ip remoto ao jmeter.properties
- apache-jmeter > bin > jmeter.properties.txt
- encontrar o remote_host IP
- abre cmd
- $ipconfig
- pode-se adicionar múltiplos IP Adress separados por virgula
- remote_host=192.168.1.2,192.168.1.3
- Criar um arquivo keystore
- apache-jmeter > bin > create-rmi-keystore.bat
- abrir no cmd
- http://jmeter.apache.org/usermanual/remote-test.html
- name: rmi
- password: {definir}
- Run jmeter-server file on slave (máster) system
- Criar um Test Plan
- Run > Remote Start > 192.168.1.2
-
Executar jmeter-server.bat
-
Executando pelo cmd
- $jmeter -n -t “Users/user/View results tree.jmx” -l “users/user/result.csv” -R 192.168.1.2
-
Todos sistemas (Master e Slaves) tem mesma versão do JMeter
-
Todos sistemas têm Java (ideal mesma versão)
-
Todos sistemas podem conectar um com o outro (mesma subnet)
- subnet = máscara de rede
-
Não precisa copiar scripts JMeter(jmx) para sistemas slaves
-
Se necessitar de 100 users e usando 2 slaves. Não passar como 50.
- Checar se o Java está instalado
- Abrir JMeter
- Extrair JMeter (tar -xf apache-jmeter-4.0.tgz)
-
aws - Connect to Your Instance
-
IOS/Linux :
$ssh -i “Linux_April2017.pem” ec2-user@ec2-34-237-142-2002.compute-1.amazonaws.com
$ ./jmeter.sh -n -t examples/
- Neat and clean looking.
- Look and Feel > ...
- Support Java 9
- Sem Workbench Workbench = HTTP(S) Test Script Recorder
- Help > Useful Links | Export Transactions for reports
- Save Your test plan whenever run it
- JMeter emulates a group of users sending request to a server
- Collects response and Metrics of the communication
-Presents the results in various formats via tables and graphs
Fontes Extras :
- http://shipit.resultadosdigitais.com.br/blog/testes-de-carga-com-jmeter/
- http://jmeter.apache.org/usermanual/build-db-test-plan.html
- https://jmeter.apache.org/usermanual/generating-dashboard.html
- https://jmeter-plugins.org/wiki/PluginsManager/
- https://stackoverflow.com/questions/48780603/workbench-section-not-showing-in-apache-jmeter
- https://www.devmedia.com.br/teste-de-performance-com-jmeter/34621