Uma das formas mais comuns de realização de requisições HTTP para consulta de dados é utilizando parâmetros de consulta, também conhecidos como query params.
Essa é uma forma simples e eficiente de passar dados para uma página da Web ou API por meio da URL.
Nesse artigo veremos como podemos utilizar query params em testes de performance com K6.
Pré-requisitos📑
Conhecendo a lib URL🧐
O K6 oferece uma variedade de bibliotecas oficiais otimizadas para realizar testes de desempenho usando a jslib k6
. Um desses módulos é o URL.
Esse módulo permite construir URLs com várias informações, incluindo query params.
Script de exemplo📚
Vamos modificar o script a seguir para que a nossa URL seja criada contendo parâmetros de consulta:
import http from 'k6/http';
export default function () {
const base_url = https://k6.io';
const res = http.get(base_url);
}
Nesse script de exemplo teremos apenas as fases de inicialização e execução.
Modificando nosso script🔨
O ponto de partida é adicionarmos o módulo URL
a fase de inicialização do script. Para fazer isso, você pode simplesmente incluir a seguinte linha ao seu script:
import { URL } from 'https://jslib.k6.io/url/1.0.0/index.js';
Uma vez que o modulo URL foi adicionado na fase de inicialização, podemos realizar as modificações no script na fase de execução.
Agora, vamos criar nossa base_url
utilizando o módulo URL
. Para fazer isso, você pode realizar a seguinte modificação no seu script:
const base_url = new URL('https://k6.io');
Como nossa base_url
é uma constante do tipo URL
, podemos aproveitar todas as funções disponibilizadas pelo módulo, incluindo a searchParams
, que nos permite buscar e manipular os parâmetros presentes na base_url. Além disso, podemos adicionar novos parâmetros facilmente usando o a função base_url.searchParams.append('chave', 'valor')
.
Parâmetros de consulta são anexados ao final de uma URL após um (?), e consistem em pares chave-valor separados por um (&).
Vamos adicionar alguns parâmetros de consulta a nossa base_url
, sendo eles os seguintes:
url.searchParams.append('utm_medium', 'organic');
url.searchParams.append('utm_source', 'test');
url.searchParams.append('multiple', ['foo', 'bar']);
Por fim, só precisamos fazer uma pequena modificação na url fornecida no http.get
. Atualmente, estamos passando o objeto URL diretamente, mas para corrigir isso, basta acessar a propriedade toString() da seguinte forma:
const res = http.get(base_url.toString());
E então a base_url
informada seria a seguinte:
Script pós modificações📋
Nosso script de exemplos após a modificações para a inclusão de parâmetros de consulta ficou da seguinte forma:
import { URL } from 'https://jslib.k6.io/url/1.0.0/index.js';
import http from 'k6/http';
export default function () {
const base_url = new URL('https://k6.io');
url.searchParams.append('utm_medium', 'organic');
url.searchParams.append('utm_source', 'test');
url.searchParams.append('multiple', ['foo', 'bar']);
const res = http.get(base_url.toString());
}
Conclusão💖
A jslib k6 oferece uma ampla gama de soluções que ajudam os testadores a conceber suas soluções de testes de desempenho de forma ideal. 😎
Os query params foram apenas um dos aspectos abordados, no entanto, o módulo é bastante robusto, permitindo a personalização de vários outros elementos da URL, como hash, host, porta, protocolo e muito mais. Esses pontos são detalhadamente explicados na documentação oficial do módulo URL.😄
Gostou do conteúdo e quer saber mais sobre testes de performance com K6? Então não deixe de conferir meu curso na Udemy:
Top comments (0)