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)
我能够提取数据,但无法从结果中选择随机值并将其存储到 jmeter 变量中
您要覆盖每次匹配的值,您应该将它们存储到列表中,然后从列表中获取随机项目,如下所示:
使用 Beanshell 是某种形式的性能蚂蚁模式,从 JMeter 3.1 开始,您应该使用 JSR223 测试元素和 Groovy 语言来编写脚本
使用正则表达式来解析 HTML 不是最好的主意,你最好使用jsoup库
最后但并非最不重要的一点是,您根本不需要任何脚本,您可以使用CSS Selector Extractor从响应中获取随机城市到 JMeter 变量中: