Css Selector выражение не работает в Jmeter

Я пытаюсь создать сценарий Jmeter, используя экстрактор выбора CSS, но он всегда получает ошибку.

Пример с этой страницы: https://www.analog.com/en/about -adi / союзы / search.html ? д = *

Я хочу извлечь каждую ссылку на странице результатов, используя ниже селектор CSS в Jmeter. Я использовал приведенное ниже выражение селектора CSS в Jmeter (Post Processors):

Div.search-results-item div.col-md-8> h4> a

Тем не менее, он всегда выбрасывает следующую ошибку:

java.net.URISyntaxException: Illegal character in path at index 23: http://www.analog.com/${Alliances}
    at java.net.URI$Parser.fail(Unknown Source)
    at java.net.URI$Parser.checkChars(Unknown Source)
    at java.net.URI$Parser.parseHierarchical(Unknown Source)
    at java.net.URI$Parser.parse(Unknown Source)
    at java.net.URI.<init>(Unknown Source)
    at java.net.URL.toURI(Unknown Source)
    at org.apache.jmeter.protocol.http.sampler.HTTPHC4Impl.sample(HTTPHC4Impl.java:546)
    at org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy.sample(HTTPSamplerProxy.java:67)
    at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1231)
    at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1220)
    at org.apache.jmeter.threads.JMeterThread.doSampling(JMeterThread.java:622)
    at org.apache.jmeter.threads.JMeterThread.executeSamplePackage(JMeterThread.java:546)
    at org.apache.jmeter.threads.JMeterThread.processSampler(JMeterThread.java:486)
    at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:253)
    at java.lang.Thread.run(Unknown Source)

Может кто-нибудь, пожалуйста, помогите мне. Я перепробовал все, чтобы это заработало, но безрезультатно.

Заранее спасибо

0
Omeng 19 Авг 2019 в 09:24

2 ответа

Лучший ответ

Причина в том, что результатов поиска в основном нет, вы можете проверить их дважды, используя Просмотреть результаты Дерево слушатель в режиме HTML

enter image description here

Для получения результатов поиска вам нужно выполнить еще один HTTP-запрос:

enter image description here

Так:

  1. Добавьте менеджер файлов cookie HTTP в свой план тестирования
  2. Добавьте еще один пример HTTP-запроса и настройте его следующим образом:

    • Метод: POST
    • Путь: https://www.analog.com/en/client/Search/PostAlliancesSearchResultsJson
    • Тело запроса:

      < Предварительно > < код > { "Facets": "FacetCategory :abilities_sm, IsMultiSelect: true, IsAllRequired: false, FacetType: filter, IsPivot: false, ParentPivot:, IncludeZeroCount: false | FacetCategory: market_l1_fac_sm, IsMultiSelect: true, IsAllReTypeP: false, ParentPivot:, IncludeZeroCount: false | FacetCategory: prod_cat_l1_fac_sm, IsMultiSelect: false, IsAllRequired: false, FacetType: фильтр, IsPivot: false, ParentPivot:, IncludeZeroCount: false | FacetCategory: регион_связи: Истинный_имя: Источники: регионы_выборки: Источники: регистры_столбия: регионы_исследования: регионы_выборки: Имена фильтр, IsPivot: false, ParentPivot:, IncludeZeroCount: false ", "Фильтры": "", «Контент»: «*», «Размер страницы»: 10, «PageStart»: 0, "SortBy": "customdate_s", «Заказ»: «актуальность» }
  3. Добавьте менеджер заголовка HTTP в качестве дочернего элемента 2-го примера HTTP-запроса и настройте его отправить Content-Type заголовок со значением application/json

  4. Добавьте JSON Extractor как дочерний 2-й пример HTTP-запроса и настройте его следующим образом:

    • Имя созданных переменных: Alliance
    • Выражения пути JSON: $..AbsoluteURL
    • Совпадение №: -1
  5. Вот и все, теперь вы должны получить URL-адреса, которые вы ищете

    введите описание изображения здесь

0
Dmitri T 20 Авг 2019 в 11:48

Проверь это:

  • Вы устанавливаете HREF в вашем селекторе CSS?
  • ваш css-селектор совпадает с чем-то, используя View Rests Tree и средство визуализации Css Selector
  • вы поставили экстрактор на правильный запрос
  • вы извлекаете из текстового ответа а не другое поле

Потому что из вашей ошибки извлечение ничего не совпало

0
UBIK LOAD PACK 19 Авг 2019 в 08:46