executing Jmeter on a Unix box - shell

Hello I'm working with Jmeter 2.4 and extended it creating a jmeter components jar, placed within the ext subfolder of libs. I've also created some test plans jmx files. These all run find locally. I've placed the whole jmeter directory on my Unix box, created a shell script to start it which consists of one line.
java JVM_ARGS="-Xms1024m -Xmx1024m" jmeter -t Block1Thread-1000.jmx
I have also tried
java JVM_ARGS="-Xms512m -Xmx512m" jmeter -t Block1Thread-1000.jmx
But both return
script.sh: line 32: java: command not found
My Unix is rather 101 so I'm could be missing something silly.
Cheers

First, make sure java is properly installed, and that you have JAVA_HOME and a path to the java bin directory set in your user profile.
Next, the JVM_ARGS need to be set as an environment variable. This means that the command you're trying to execute need to be two commands, the first being
export JVM_ARGS="-Xms512m -Xmx512m"
And the second probably just being
./jmeter.sh -t Block1Thread-1000.jmx
Please note that the second command may fail, and Linux will tell you that the script is not executable. You can change that by doing:
chmod +x *.sh jmeter jmeter-server
In the /bin directory of your jmeter installation.

Sounds like java is not added in the PATH environment variable of the machine you're executing the command on.
Check on the command line with echo $PATH?

Related

append a parameter to a command in the file and run the appended command

I have a the following command in a file called $stat_val_result_command.
I want to add -Xms1g parameter at the end of the file so that is should look like this:
<my command in the file> -Xms1g
However, I want to run this command after append. I am running this in a workflow system called "nextflow". I tied many things, including following, but it does not working. check the script section which runs in Bash by default:
process statisticalValidation {
input:
file stat_val_result_command from validation_results_command.flatten()
output:
file "*_${params.ticket}_statistical_validation.txt" into validation_results
script:
"""
echo " -Xms1g" >> $stat_val_result_command && ```cat $stat_val_result_command```
"""
}
Best to avoid appending to or manipulating input files localized in the workdir as these can be, and are by default, symbolic links to the original files.
In your case, consider instead exporting the JAVA_TOOL_OPTIONS environment variable. This might or might not work for you, but might give you some ideas if you have control over how the scripts are being generated:
export JAVA_TOOL_OPTIONS="-Xms1g"
bash "${stat_val_result_command}"
Also, it's generally better to avoid localizing and running scripts like this. It might be unavoidable, but usually there are better options. For example, third-party scripts, like your Bash script could be handled more simply:
Grant the execute permission to these files and copy them into a
folder named bin/ in the root directory of your project repository.
Nextflow will automatically add this folder to the PATH environment
variable, and the scripts will automatically be accessible in your
pipeline without the need to specify an absolute path to invoke them.
This of course assumes you can control and parameterize the process that creates your Bash scripts.

Sourcing the source files using bash script

Usually I source all the macros I have for the jobs run in a remote machine using this command:
macros=$\my_directory
But I see someone uses a different way to get all the macros for submitting the jobs in a remote machine. He uses this command:
macros=$(dirname $(readlink -f $BASH_SOURCE))
Now I want to know how the $dirname has the advantages over giving the specific macro location. It would be great if you just explain to me regarding the sourcing the macro using $dirname
By using dirname you get the directory of where the script is located, therefore it's easy to source other files locally close to your script and don't worry about specifying the correct path each time the script bundle is relocated.
For instance if you have in your script source $macros/some_script.sh then it will not break when the bundle is located in the /usr/local/bin/ or /bin/ or ...
Regarding $BASH_SOURCE see: https://stackoverflow.com/a/35006505/2146346

MonkeyRunner on Windows Command Line

How does Python (or MonkeyRunner) locate imported modules?
I previously asked about an error I get when running a monkeyrunner script from Git Bash. I still haven't resolved the issue and decided to try running it from the Windows 7 command line. I cd to the directory containing my .py files and run
> monkeyrunner screenshots.py
Can't open specified script file
Usage: monkeyrunner [options] SCRIPT_FILE
-s MonkeyServer IP Address.
-p MonkeyServer TCP Port.
-v MonkeyServer Logging level (ALL, FINEST, FINER, FINE, CONFIG, INFO, WARNING, SEVERE, OFF)
screenshots.py is indeed in the current directory. Why can't monkeyrunner find it? What do I need to do to fix this to run on Windows 7?
did you try giving full path to your screenshots.py.
monkeyrunner C:\folder_location_to_your_file\scrrenshots.py
There is an easier way to call monkeyrunner script if the cmd is in the directory that contains your script:
monkeyrunner "%cd%\your_script.py"
Make sure you put the "" marks.

Export environment variable Mac

I am starting with spring-roo, so I downloaded it and now I'm trying to export the variable.
To get it, I tried:
PATH=$PATH:/Users/myUsr/spring-roo/bin
export PATH
PATH variable
my-Name-3:~ myUsr$ echo $PATH
/sw/bin:/sw/sbin:/usr/local/mysql/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/usr/X11R6/bin:/Users/myUsr/spring-roo/bin
In this path (/Users/myUsr/spring-roo/bin), there is roo.sh
But then, I can not run the command roo as it is supposed to be.
You are not supposed to be able to run a command roo (no .sh), when all you have is roo.sh. Run roo.sh instead. There is no magic dropping of extensions in Unix.
Are you in the directory where the root.sh is ? Just give a try by being in that directory to run the shell script. Also check the permissions of the file.

Where do I put mxmlc so that I could just type 'mxmlc' in the terminal to compile a swf file?

I'm on a Mac and I'm trying to make a Vim plugin for compiling/running actionscript files.
First, I need to run mxmlc on the command line, but to do that I have to keep on typing the path to it. Where do I place it so that I don't have to retype the path?
You need to modify your "$PATH" environment variable, so that the tool is in that directory. However, if you want to make this very easy... you can download my macosx-environment-setup.tar.bz2 program. If you execute the "install.sh" script using "sudo ./install.sh", it will setup your environment in such a way that if you use "/Library/Flex4SDK" as the location for the Flex4SDK, it will automatically find it, define FLEX_HOME to point to that location, and it will also ensure that the binaries from the Flex4SDK are in your PATH.
Side Note: This is up on the web, because I use it in my Development Environment Setup How-To Guides. If you aren't too keen about running "sudo ./install.sh", you need to choose a location (I am going to assume "/Library/Flex4SDK", so that the tools are located in "/Library/Flex4SDK/bin"), and then you would simply need to edit your "~/.profile" file (using "nano ~/.profile"), adding the following to the very end:
export FLEX_HOME=/Library/Flex4SDK
export PATH="$PATH":"$FLEX_HOME/bin"
Note that these changes occur in your shell... they will not affect programs that are launched by double-clicking them in Finder. In order to affect those programs, you will need to place the environment variables in a file named ~/.MacOSX/environment.plist. See Automatically build ~/.MacOSX/environment.plist for a script that will automatically generate such a file using the current environment variables defined in your shell.
There are a few ways to answer this:
In one of your directories searched
by PATH (see the list with echo
$PATH)
Add a new directory to PATH
(e.g. in your ~/.bashrc
export PATH=$PATH:/path/to/bindir)
Add an
alias to your program (e.g. in your
~/.bashrc alias
mxmic=/path/to/mxmic)
(I'm assuming you're using bash shell, which is usually the case you can check with echo $SHELL)

Resources