#spring #spring-mvc #jmeter
#spring #spring-mvc #jmeter
Вопрос:
У меня есть контроллер Spring с такой подписью
public ResponseEntity<blabla> find(@RequestParam Long id, @RequestParam Long version, @RequestParam CheckedItemType type)
Я пытаюсь выполнить http-запрос с Jmeter, устанавливающим третий параметр как: type=0 text / plain, и я получаю код ошибки 400, потому что контроллер не может преобразовать строку в CheckedItemType.
Есть идеи о том, как я могу это решить?
Комментарии:
1. JMeter просматривает только трафик, проходящий по проводам [то, что вы получаете в Wireshark или аналогичных сетевых анализаторах]. Вы просматриваете это на уровне прикладного уровня. Пожалуйста, поделитесь из других инструментов, как выглядит тело вашего запроса, когда оно доставляется по проводам.
Ответ №1:
Вот пример:
public enum Modes {
ALPHA, BETA;
}
Преобразователь строки в перечисление:
public class StringToEnumConverter implements Converter<String, Modes> {
@Override
public Modes convert(String from) {
return Modes.valueOf(from);
}
}
Зарегистрируйте наш конвертер:
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void addFormatters(FormatterRegistry registry) {
registry.addConverter(new StringToEnumConverter());
}
}
Комментарии:
1. есть ли способ сообщить Jmeter отправить что-то, что будет рассматриваться как int вместо строки? Конечная точка, которую я показал, работает в рабочей среде, это просто интеграция с Jmeter, которая выдает эту ошибку