Change GVs at runtime on tibco - tibco

I need to change the value of a global Variable while the engine its running, does anybody know how to do it? (javacode or whatever) the idea its to integrate the change as part of a process.
What if i want to do it only in test mode? i have my unitary test on the same project that the functional code, so i want to ensure myself that no tests GV�s are activated before start, to do that withaout changing any ear i want to integrate that on the unitary test process so, i start on tester, the process change the GV�s as need itself, and then it delete the VG so i have not to concern about that.
Thanks in advance!!

Trough standard palette can't alter GV at runtime.
If you want to alter configuration at runtime you can use shared variables and have a poller process to reload them (e.g. on file change or every 5 min)

Related

Query Wildfly for a value and then use that in a CLI script

I have an Ansible script to update and maintain my WildFly installation. One of my tasks in this setup is managing the MySQL-driver and in order to perform an update on that driver, I have to first disable the application that uses that driver, before I can replace the it and set up all my datasources anew.
My CLI script starts with the following lines:
if (outcome == success) of /deployment=my-app-1.1.ear:read-resource
deployment disable my-app-1.1.ear
end-if
My problem is that I am here very depending on the actual name of the application and that name can change over time since I have my version information in there.
I tried the following:
set foo=`ls /deployment`
deployment disable $foo
It did not work since when I look at foo I see that it was not my-app-1.1.ear but ["my-app-1.1.ear"] -- so I feel that I might be going in the right direction, even though I have not got it right.

JMeter - Execute specific components only on GUI and not CLI

I add several components for debugging as Debug Sampler, View Results Tree and JSR223 Sampler that are useful in GUI mode, but I want it to be ignored when running load test,
Is there such option of executing Sampler/Listener only in GUI mode and not in command line/"load" mode?
I am not sure that this is the exact answer you are looking for but still let me try. We know that JMeter script is nothing but xml in disguise and structure look like this.
So for every Jmeter component, there is enable property which needs to be true so that it will get executed as part of JMeter Test plan. Now if we can change this some properties which can be passed as parameter then we can make them disable at the run time.
Change in jmx will be reflected like this...
If you run this script in Non GUI mode with additional property passed as parameter, we essentially achieve what we want.
jmeter -n -t .\ExcludeJMeterComponent.jmx -l result.CSV -e -o "Output" -DenabledDebugComponents=false
Issue with this approach is, if you load this script again in JMeter, these values, manually edited jmx going to go away/get override with your next save but if you are using any version control system to keep track of your jmx script [which you must be doing] it will be very easy to add this changes in the script again in no time.
I will post this with more details once my blog is set up.
Found a workaround, to send in CLI JMeter property as -JignoreFirstSampler
Add If Controller as a parent of samplers to exclude checking if property is defined
${__isPropDefined(ignoreFirstSampler)}
The __isPropDefined function returns true if property exists or false if not.

Jmeter: how to modify properties on the fly while distributed test is running?

WHAT I HAVE:
Huge Jmeter agents network, 1 master + many slaves.
Master sends tasks to Slaves, they start test execution and report data to Master.
WHAT I WANT:
Be able to modify inputs (passed as global properties to Master, -G) on the fly, while test is executed, without necessity to stop/restart test.
WHAT I KNOW:
I can use BeanShell server to modify Jmeter properties while running the test. It works fine. But BeanShell server starts only on Master, not on Slaves.
Master sends -G properties to Slaves only once, before test execution. Even if Master properties are updated, slaves never get this information until test is restarted.
QUESTION:
How can I modify properties on Slaves as well? Is there any proper solution?
WHAT I THOUGHT ABOUT:
Well, I can do the same trick with BeanShell server for every Slave node too. But this solution doesn't look really ideal for me as I have a lot of agents and have to update all of them. It takes time.
I can change my test logic to update properties from file periodically, and then modify files on Slaves on the fly. Looks even easier for me than #1 as it's cheaper to modify a file over ssh remotely then to launch a separate server on every node.
Actually, all I need in fact is to write a proper method/function for BeanShell server that not only changes properties locally but informs Slaves about it. I'm not so familiar with Jmeter source code yet (just started) but know that it's already implemented inside the code as a part of remote launching procedure. So, if you can point me to the right class to take a look into - it can help me a lot.
Any ideas appreciated. Thanks in advance.
You can add to your Test Plan Property File Reader which will read and update properties in Slaves, you can add properties on runtime in Master using Beanshell/JSR233 element.

How to enqueue more than one build of the same configuration?

We are using two teamcity servers (one for builds and one for GUI tests). The gui tests are triggered from http GET in the last step of the build. (as in http://confluence.jetbrains.com/display/TCD65/Accessing+Server+by+HTTP)
The problem is, that there is only one configuration of the same kind in the queue at the same time. Is there a way to enable multiple starts of the same configuration? Can I use some workaround like sending a dummy id?
At the bottom the section "Triggering a Custom Build" here: http://confluence.jetbrains.com/display/TCD65/Accessing+Server+by+HTTP, you can find information about passing custom parameters to the build.
Just define some unused configuration parameter, like "BuildId", and pass, for example, current date (guid will work as well) to it
...&buildId=12/12/23 12:12:12

How do I write a Jmeter script without using the GUI?

Is there a way to create a JMeter test plan without going through the GUI?
I.E. can you create a script with pure code?
In a way - yes. You can create the JMX file in a text editor, but it would require knowing what every component needs.
You're better off creating in GUI mode and modifying the JMX file manually as needed.
Yes it's possible to write a test plan just by writing JAVA code.
The key classes to look into are:
StandardJMeterEngine - the main class which configures the Test Plan and executes it
HashTree - a special collection which holds Test Plan elements
A minimum of JMeter Controllers necessary to run the test.
Reference: http://blazemeter.com/blog/5-ways-launch-jmeter-test-without-using-jmeter-gui
I can write and run JMeter without GUI. JMeter use JMX file, as you can here.
Not entirely sure why you would want to write a JMX in this way? ... But yes, entirely possible if you understand the structure of the document.
You could use any basic text editor to achieve this (notepad / notepad++ for example).
A JMX file is a saved JMeter project in XML format. ~ Ref
Depending on your needs you could the browser editor from the JMeter Plugins website.
jmeter-plugins.org/editor/
Or simply save a basic JMX as a template and spend loads of time learning the structure, syntax and namings etc.

Resources