#jmeter #jmeter-plugins #jmeter-5.0 #openweathermap #jmeter-4.0
Вопрос:
Я попытался получить данные о погоде, используя имя города из openweathermap.org. После запятой стоит код страны. Я ссылаюсь на эту ссылку. Вот данные CSV из моего файла Excel, включающие код страны, а также запятую:
Вот конфигурация набора данных CSV в JMeter:
Но когда я попытался запустить с группой из 4 потоков, она возвращает ошибку:
Когда я попытался изменить данные CSV без запятой, это работает нормально, за исключением последней строки:
Вопрос здесь:
- Неужели JMeter не может считывать данные CSV с запятыми и пробелами?
- Должен ли я изменить файл чтения с CSV на блокнот?
- Обратитесь к последней строке CSV-файла, я попытался выполнить поиск в Нью-Йорке (с пробелом), но возвращает ошибку. Согласно openweathermap, поисковая система является гибкой, поэтому я не знаю, почему в данном случае она не может прочитать «Нью-Йорк», но может прочитать город одним словом.
Буду признателен, если кто-нибудь сможет помочь. Спасибо.
Комментарии:
1. Как выглядит ваш CSV-файл, когда вы не открываете в нем Excel? (например, Блокнот) Он может видеть
,
и просматривать код страны в отдельном столбце.2. Я просматриваю его в блокноте, пример здесь: «Лондон,Великобритания»
3. Я имею в виду, что если вы проанализируете свой CSV
,
, он будет учитыватьLondon,UK
2 отдельных столбца:London
amp;UK
. Также я думаюNew York
, что это вызывает у вас проблемы, потому что в нем есть пробел, разделяющий 2 слова, и он не будет работать, когда вы передадите это в URI4. Хорошо. Как это решить?
5. Я полагаю, что у вас есть 2 проблемы: анализ CSV и передача значений в URI. Первый из них можно решить, изменив разделитель в CSV. Вторая проблема может быть решена с помощью кодирования URL-адреса.
Ответ №1:
Вы забыли добавить самый важный скриншот — образец HTTP-запроса
Скорее всего, вы забыли поставить URL Encode
галочку рядом со своим q
параметром.
Я не думаю, что пространство нуждается в кодировке, однако запятая, безусловно, нужна, поэтому вам нужно переключиться ,
,
либо вручную, либо поставив галочку в вышеупомянутом поле
Если у вас возникли проблемы с созданием образцов HTTP-запросов вручную, имейте в виду, что вы можете просто записать соответствующий сетевой вызов с https://openweathermap.org/find страница, использующая HTTP(ы)JMeter Регистратор тестовых сценариев или расширение JMeter Chrome.
Ответ №2:
Вам нужно закодировать значение при отправке символов в виде пробела, используйте __urlencode
${__urlencode(${cityname})}
Комментарии:
1. Я пытался это сделать, но все еще не получалось. Вот в чем ошибка:
java.net.URISyntaxException: Illegal character in query at index 57: http://api.openweathermap.org/data/2.5/weather?q=New York}amp;appid=e6f90e2506dfd0f2dbd1ed2d87fe18ef
я заметил, что после Нью-Йорка там появилась дополнительная скобка2. Как удалить лишний символ скобки?
3. @sabbyna ты уверена, что не добавила лишнего
}
?