Return-Path: X-Original-To: apmail-jmeter-user-archive@www.apache.org Delivered-To: apmail-jmeter-user-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 0F440901F for ; Mon, 16 Jul 2012 19:11:49 +0000 (UTC) Received: (qmail 12540 invoked by uid 500); 16 Jul 2012 19:11:46 -0000 Delivered-To: apmail-jmeter-user-archive@jmeter.apache.org Received: (qmail 12500 invoked by uid 500); 16 Jul 2012 19:11:46 -0000 Mailing-List: contact user-help@jmeter.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: "JMeter Users List" Delivered-To: mailing list user@jmeter.apache.org Received: (qmail 12449 invoked by uid 99); 16 Jul 2012 19:11:46 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 16 Jul 2012 19:11:46 +0000 X-ASF-Spam-Status: No, hits=-0.7 required=5.0 tests=FSL_RCVD_USER,RCVD_IN_DNSWL_LOW,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of sebbaz@gmail.com designates 209.85.214.171 as permitted sender) Received: from [209.85.214.171] (HELO mail-ob0-f171.google.com) (209.85.214.171) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 16 Jul 2012 19:11:41 +0000 Received: by obqv19 with SMTP id v19so10643156obq.2 for ; Mon, 16 Jul 2012 12:11:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; bh=M8wCHiBOyUqgFN3pwZoQJ2Nzoe9Wd4BbfsRQ6JascAI=; b=AxB+K/Tvumqrt5Y7XC+JI72A+tm/BA/2KhqFugxhe0PaO57XpEnrSvBq85vb5aT/gJ hwcfVvNUBSMLhHbjREm07IXZ3G2aZhHeHWEE2K0CTyL8ddpzIzxvWaCPgldOfUwtMF6S O6Hb5MEZfXuZg5FvWZU5DKl+akGDoOSq414R+f9Z8nx6SBwosfmnq21CReO/fLUw9Nb3 v9+GkVzBJTu19+ND6vskE3NrW7gjy7fE7LRefC2PgUWjj8DAiUvfj30BL3cG8qNUUvJ0 0ml9wvqSwiSdIlSZfA+6w1z/s6pda7HBxynLq+kGUS3sv1dZpmF5YoXE4at/dthN1vD8 b1Hw== MIME-Version: 1.0 Received: by 10.182.167.101 with SMTP id zn5mr17186941obb.60.1342465880777; Mon, 16 Jul 2012 12:11:20 -0700 (PDT) Received: by 10.182.182.99 with HTTP; Mon, 16 Jul 2012 12:11:20 -0700 (PDT) In-Reply-To: References: Date: Mon, 16 Jul 2012 20:11:20 +0100 Message-ID: Subject: Re: Sharing Variables Between Thread-Group From: sebb To: JMeter Users List Content-Type: text/plain; charset=ISO-8859-1 X-Virus-Checked: Checked by ClamAV on apache.org On 16 July 2012 19:42, unjc email wrote: > Guys, thanks for your replies. > > I don't know if anyone have this experience. I found that > ${__setProperty}/${__P} pair would work between thread groups IF I use > constant value ("abc" like below example) or system variables (like > $__time(HMS). When I use a local variable ("tmp" as like in my > example) in the $__setProperty call, it doesn't work. > > tmp = "abc"; > ${__setProperty(key,tmp)}; // > THAT DOES NOT WORK!! > ${__setProperty(key,"abc")}; > // THAT WORKS!! > > > I also found that it is NOT the variable value that is shared between > the thread group, it's the reference. When I put ${__time(HMS)} in > the __setProperty call and run the test, the "key" values are > different between the two thread group. Does anyone know how to pass > a local-defined variable value using setProperty call? > > > Test Plan (with 2 thread groups) > > Thread-Group1 (with 1 thread) >> Dubug Sampler >> BeanShell PreProcessor > Script: > ${__setProperty(key,${__time(HMS)})}; > // USING TIMESTAMP > log.info("Group 1 key = " + ${__P(key)}); > //2012/07/16 18:31:36 INFO - > jmeter.util.BeanShellTestElement: Group 1 key = 183136 > > > Thread-Group2 (with 2 threads) >> HTTP Sampler >> BeanShell PreProcessor > Script: > log.info("Group 2 key = " + ${__P(key)}); > //2012/07/16 18:31:36 INFO - > jmeter.util.BeanShellTestElement: Group 2 key = 183119 > > Note that it is not the same value being logged. Sorry, I saw that you were using function references within the script, but did not realise the implications. Such references are processed *before* the script is passed to BeanShell, so won't have access to the values set up by BeanShell. It's best not to mix function references with script elements such as BeanShell, as the behaviour is harder to follow. To set a property using BeanShell, use: props.put("propname", "value"); or using variables: key="propname"; val="value"; props.put(key, value); Property setting is documented at: http://jmeter.apache.org/usermanual/component_reference.html#BeanShell_Sampler > > > Regards, > Jacky > > On Mon, Jul 16, 2012 at 12:48 PM, Jomebrew wrote: >> I documented how I do in a blog post a while back. I still use this 100% >> of the time. I run several instances on a machine in GUI mode and each >> instance has 250 users per thread group (two thread groups, same users for >> each group) for a total 500 threads/connections per instance. >> >> I think this was problem #2 for me in this post. >> >> http://www.jomebrew.com/2011/10/jmeter-random-transactions-and-sharing.html >> >> /Joe >> >> On Mon, Jul 16, 2012 at 8:50 AM, unjc email wrote: >> >>> Hello, >>> >>> I have two thread groups set up in my test plan. The first test group >>> is for initializing variables for the test plan at start; it is >>> configured with a dummy debug sampler. The second group is where the >>> actual test samplers are placed. I try to pass the variables from >>> thread-group 1 via __setProperty to thread-group 2, but I always have >>> "void" value from __P calls. Could someone please advise the proper >>> way to pass variables from one group to another? >>> >>> >>> Test Plan (with 2 thread groups) >>> >>> Thread-Group1 (with 1 thread) >>> > Dubug Sampler >>> > BeanShell PreProcessor >>> Script: >>> tmp = "abc"; >>> ${__setProperty(key,tmp)}; >>> log.info("Group 1 key = " + ${__P(key)}); >>> >>> >>> Thread-Group2 (with 2 threads) >>> > HTTP Sampler >>> > BeanShell PreProcessor >>> Script: >>> log.info("Group 2 key = " + ${__P(key)}); >>> >>> >>> 2012/07/16 15:47:32 INFO - jmeter.threads.JMeterThread: Thread >>> started: Thread Group 1-1 >>> 2012/07/16 15:47:32 INFO - jmeter.threads.JMeterThread: Thread >>> started: Thread Group 2-1 >>> 2012/07/16 15:47:32 INFO - jmeter.util.BeanShellTestElement: Group 1 key >>> = abc >>> 2012/07/16 15:47:32 INFO - jmeter.threads.JMeterThread: Thread >>> finished: Thread Group 1-1 >>> 2012/07/16 15:47:32 INFO - jmeter.engine.StandardJMeterEngine: Ending >>> thread Thread Group 1-1 >>> 2012/07/16 15:47:32 INFO - jmeter.engine.StandardJMeterEngine: All >>> threads have been started >>> 2012/07/16 15:47:32 INFO - jmeter.threads.JMeterThread: Thread >>> started: Thread Group 2-2 >>> 2012/07/16 15:47:32 INFO - jmeter.util.BeanShellTestElement: Group 2 >>> key = void >>> 2012/07/16 15:47:32 INFO - jmeter.threads.JMeterThread: Thread >>> finished: Thread Group 2-1 >>> 2012/07/16 15:47:32 INFO - jmeter.engine.StandardJMeterEngine: Ending >>> thread Thread Group 2-1 >>> 2012/07/16 15:47:32 INFO - jmeter.util.BeanShellTestElement: Group 2 >>> key = void >>> 2012/07/16 15:47:32 INFO - jmeter.threads.JMeterThread: Thread >>> finished: Thread Group 2-2 >>> 2012/07/16 15:47:32 INFO - jmeter.engine.StandardJMeterEngine: Ending >>> thread Thread Group 2-2 >>> >>> >>> >>> >>> Thanks, >>> Jacky >>> >>> --------------------------------------------------------------------- >>> To unsubscribe, e-mail: user-unsubscribe@jmeter.apache.org >>> For additional commands, e-mail: user-help@jmeter.apache.org >>> >>> > > --------------------------------------------------------------------- > To unsubscribe, e-mail: user-unsubscribe@jmeter.apache.org > For additional commands, e-mail: user-help@jmeter.apache.org > --------------------------------------------------------------------- To unsubscribe, e-mail: user-unsubscribe@jmeter.apache.org For additional commands, e-mail: user-help@jmeter.apache.org