O JMeter Aninhadas Variável de Referência com JDBC Resultset Variável e a Variável do Contador
-
21-12-2019 - |
Pergunta
Preciso consultar um Banco de dados MYSQL para uma lista de siteIDs e siteURLs.Eu especifiquei esses nomes no JDBC Pedido o Nome de Variável de campo.
Então eu criei um ForEach Controlador de Lógica para percorrer o siteURLs ${siteURL_1} até que o último registro do resultado como tal:
Input Variable Prefix: siteURL
Start Index: 0
End Index: 40
Output Variable Name: newSiteURL
Então eu uso isso na Solicitação HTTP do Caminho do campo, como:
${newSiteURL}
Isso funciona bem e as solicitações HTTP que estão passando.
Agora, eu quero nome de Solicitações HTTP corretamente para que eles são indexados melhor.Por isso, eu decidi usar o siteID campo do conjunto de resultados.
Para fazer isso, eu criei uma variável de contador, como tal:
Start: 1
Increment: 1
Maximum: 40
Reference Name: siteIndex
Agora, para obter o id local do show resultado no correspondente Pedido de HTTP, eu editei o Nome do campo de Solicitação HTTP para isso:
${siteID_"({siteIndex})"}
Mas o meu Solicitações HTTP na Vista de Resultados de Árvore ainda acabar mostrando como:
${siteID_"({siteIndex})"}
${siteID_"({siteIndex})"}
${siteID_"({siteIndex})"}
${siteID_"({siteIndex})"}
${siteID_"({siteIndex})"}
...
E não o real siteID para o correspondente siteURL na Solicitação HTTP, como:
21231
12315
21654
64574
76876
...
Solução
Você precisa alterar este bit:
${siteID_"({siteIndex})"}
para
${__V(siteID_${siteIndex})}
Explicação:
Como por __V a documentação de função
Por exemplo, se um tem variáveis A1,A2 e N=1:
${A1} - funciona OK
${Us${N}} - não funciona (aninhados variável de referência)
${__V(Us${N})} - funciona OK.A${N} torna-se A1, e a __V a função retorna o valor de A1
Ver Usando O JMeter Funções post da série para mais exemplos sobre como fazer as coisas úteis com o JMeter Funções.