Как найти записи с наиболее распространенными тегами, как связанные вопросы в StackOverflow

  1. Это утверждение может быть проблематичным:

    props.put("path_${__threadNum}", String.valueOf(fileName));
    

    согласно Документация по JSR223 Sampler

    JMeter обрабатывает функции и ссылки на переменные перед передачей поля скрипта интерпретатору, поэтому ссылки будут разрешены только один раз . Ссылки на переменные и функции в файлах сценария будут дословно передаваться интерпретатору, что может вызвать синтаксическую ошибку. Чтобы использовать переменные времени выполнения, пожалуйста, используйте соответствующие методы реквизита, например

    props.get("START.HMS");
    
    props.put("PROP1","1234"); 
    
    blockquote>

    Поэтому я бы рекомендовал заменить ${__threadNum} на ctx.getThreadNum(), где ctx - сокращение для JMeterContext class

  2. В соответствии с главой Порядок выполнения документации JMeter:

    0. Configuration elements
    1. Pre-Processors
    2. Timers
    3. Sampler
    4. Post-Processors (unless SampleResult is null)
    5. Assertions (unless SampleResult is null)
    6. Listeners (unless SampleResult is null)
    

    ваша Конфигурация набора данных CSV выполняется на первом месте, до любой другие тестовые элементы сценариев. Поэтому времена, когда он «работает» IMO, вызваны «ложноположительной» ситуацией, поскольку свойства JMeter являются глобальными и «активными» во время работы JMeter (и базовой JVM). Когда вы в следующий раз запустите JMeter, свойства будут иметь нулевое значение, и ваша конфигурация набора данных CSV потерпит неудачу. Поэтому я ожидаю, что вы должны рассмотреть возможность использования функции __ CSVRead () , которая оценивается во время выполнения именно там, где она вызывается. Ознакомьтесь с Apache JMeter Functions - вступительной статьей , чтобы узнать больше о концепции JMeter Functions .

7
задан Jonny Buchanan 29 October 2008 в 14:33
поделиться

3 ответа

Возможно, что-то как:

select qt.question_id, count(*)
from   question_tags qt
where  qt.tag in
( select qt2.tag
  from   question_tags qt2
  where  qt2.question_id = 123
)
group by qt.question_id
order by 2 desc
9
ответ дан 6 December 2019 в 21:21
поделиться

Если можно гарантировать, что нет дублирующихся тегов для вопроса, то можно сделать следующее:

SELECT
     QT2.question_id,
     COUNT(*) AS cnt
FROM
     Question_Tags QT1
INNER JOIN Question_Tags QT2 ON QT2.tag = QT1.tag AND QT2.question_id <> QT1.question_id
WHERE
     QT1.question_id = @question_id
GROUP BY
     QT2.question_id
ORDER BY
     cnt DESC

Если Вы не можете гарантировать уникальность тегов в вопросе, то решение Tony Andrews будет работать. Его будет работать в любом случае, но необходимо сравнить производительность в системе с этим методом, если можно сделать гарантию уникальности посредством ограничений.

3
ответ дан 6 December 2019 в 21:21
поделиться

Не совсем уверенный, что Вы имеете в виду, но теги списков страницы Tags в порядке популярности (как в отмеченной сумме).

Править: это о ТАК или о Вашем собственном приложении? Если это о Вашем собственном приложении, удалите ТАК тег, поскольку это является довольно вводящим в заблуждение.

Edit2: я сказал бы что-то как:

SELECT * FROM `questions` WHERE `tag` LIKE '%tagname%' OR (looped for each tag) LIMIT 5,0

Где 5 максимальные результаты, Вы хотите возвратиться (по крайней мере для некоторой оптимизации). Вероятно, не лучшее решение, но я видел, что он работал.

Вы могли бы также хотеть попробовать a LIKE соответствие с помощью заголовка.

0
ответ дан 6 December 2019 в 21:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: