Это утверждение может быть проблематичным:
props.put("path_${__threadNum}", String.valueOf(fileName));
согласно Документация по JSR223 Sampler
JMeter обрабатывает функции и ссылки на переменные перед передачей поля скрипта интерпретатору, поэтому ссылки будут разрешены только один раз . Ссылки на переменные и функции в файлах сценария будут дословно передаваться интерпретатору, что может вызвать синтаксическую ошибку. Чтобы использовать переменные времени выполнения, пожалуйста, используйте соответствующие методы реквизита, например
blockquote>props.get("START.HMS"); props.put("PROP1","1234");
Поэтому я бы рекомендовал заменить
${__threadNum}
наctx.getThreadNum()
, гдеctx
- сокращение для JMeterContext class
В соответствии с главой Порядок выполнения документации 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 .
Возможно, что-то как:
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
Если можно гарантировать, что нет дублирующихся тегов для вопроса, то можно сделать следующее:
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 будет работать. Его будет работать в любом случае, но необходимо сравнить производительность в системе с этим методом, если можно сделать гарантию уникальности посредством ограничений.
Не совсем уверенный, что Вы имеете в виду, но теги списков страницы Tags в порядке популярности (как в отмеченной сумме).
Править: это о ТАК или о Вашем собственном приложении? Если это о Вашем собственном приложении, удалите ТАК тег, поскольку это является довольно вводящим в заблуждение.
Edit2: я сказал бы что-то как:
SELECT * FROM `questions` WHERE `tag` LIKE '%tagname%' OR (looped for each tag) LIMIT 5,0
Где 5 максимальные результаты, Вы хотите возвратиться (по крайней мере для некоторой оптимизации). Вероятно, не лучшее решение, но я видел, что он работал.
Вы могли бы также хотеть попробовать a LIKE
соответствие с помощью заголовка.