There is frequently the need in Load Testing for sharing something accross threads which might have been initialized in a setup Thread Group or by some Thread. Currently JMeter has 2 ways to do it: - Properties but they are limited to String - Through Beanshell (which is deprecated) through bsh.shared A recent illustration of this is the Coverage Tests created for JMS, TCP and FTP. To do it we had to use Beanshell. So after discussion: - http://mail-archives.apache.org/mod_mbox/jmeter-dev/201710.mbox/%3CCAH9fUpY3jEb%3D_Oa-fuf-RFuSUz2Nop5ix7%2BnPzy-yVc7C47_JA%40mail.gmail.com%3E This would be introduced this way: - any variable starting with "global:" is global - JMeterVariables class modification, which would delegate all variables with "global:" prefix into global thread-safe map. - The Map would be ConcurrentMap - It would be initialized/cleared in StandardJMeterEngine#run or JMeterContextService.startTest(); See dev discussion:
This will affect any test which happens to use the global: prefix. Might be better to use a less likely prefix such as __G__ In any case if it is implemented the release notes need to make the change in behaviour very clear.
This issue has been migrated to GitHub: https://github.com/apache/jmeter/issues/4548