import java.util.Random;
import java.util.regex.Pattern;
import java.util.regex.Matcher;
String responseData = prev.getResponseDataAsString();
// log.info("the response data is : " + responseData);
Pattern pattern = Pattern.compile("<option value=\"(.+?)\">(.+?)</option>");
// log.info("pattern is : " + pattern);
Matcher matcher = pattern.matcher(responseData);
// log.info("matcher is :" + matcher);
while(matcher.find())
{
log.info("the cities are : " + matcher.group(1));
String extractedCity = matcher.group(1);
log.info("the extracted city is : " + extractedCity);
vars.put("Depart_city" , extractedCity);
}[log level output of the code](https://isstatic.askoverflow.dev/ANKbl.png)
consigo extrair os dados, mas não consigo escolher um valor aleatório do resultado e armazená-lo em uma variável jmeter
Você está sobrescrevendo o valor de cada correspondência. Em vez disso, armazene-os em uma lista e, em seguida, obtenha o item aleatório da lista, algo como:
Usar Beanshell é alguma forma de padrão formiga de desempenho, desde o JMeter 3.1 você deve usar elementos de teste JSR223 e linguagem Groovy para scripts
Usar expressões regulares para analisar HTML não é a melhor ideia , você poderia preferir usar a biblioteca jsoup
E por último, mas não menos importante, você não precisa de nenhum script, você pode obter a cidade aleatória da resposta em uma variável JMeter usando CSS Selector Extractor :