Я использую JMeter для автоматизации тестов производительности. После HTTP-запроса я использовал RegEx Post Extractor для чтения заголовка ответа. Этот заголовок ответа возвращает местоположение. Местоположение - это URL-адрес конкретного проекта. Я хочу прочитать значение переменной состояния из этого URL-адреса. Для этого я использовал BeanShell PostProcessor. Например,
location: "http://www.google.com/state=asdas123123123123&query=asdasdas!@#"
Я могу прочитать значение заголовка ответа как http://www.google.com/state=asdas123123123123&query=asdasdas!@#%22 с использованием экстрактора регулярных выражений
Затем я добавил BeanShell PostProcesssor для чтения состояния и запроса.
import java.util.regex.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
try{
//location = "http://www.google.com/state=asdas123123123123&query=asdasdas!@#"
String location = vars.get("location");
String pStr = "/state=(\\S+?)&/"";
Pattern patternN = Pattern.compile(pStr);
Matcher matcher = patternN.matcher(pStr);
if (matcher.find()) {
vars.put("variablename_1",matcher.group(0));
}
vars.put("variablename_2",location);
}catch (Exception ex) {
vars.put("variablename_ex",ex);
throw ex;
}
Этот код не работает. Кажется, двойная косая черта создает проблемы.
String pStr = "/state=(\\S+?)&/"";
наString pStr = "state=([^\\s&]+)";
, а затем используйтеvars.put("variablename_1",matcher.group(1));
- person Wiktor Stribiżew   schedule 21.05.2021