-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Implemented JMeter custom method call __FloatRandomNumber.
- Loading branch information
1 parent
46bc93e
commit 91d06c2
Showing
5 changed files
with
173 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,76 @@ | ||
package code4reference.com.jmeter.functions; | ||
|
||
import java.util.Collection; | ||
import java.util.LinkedList; | ||
import java.util.List; | ||
import java.util.Random; | ||
|
||
import org.apache.jmeter.engine.util.CompoundVariable; | ||
import org.apache.jmeter.functions.AbstractFunction; | ||
import org.apache.jmeter.functions.InvalidVariableException; | ||
import org.apache.jmeter.samplers.SampleResult; | ||
import org.apache.jmeter.samplers.Sampler; | ||
import org.apache.jmeter.threads.JMeterVariables; | ||
|
||
public class FloatRandomNumber extends AbstractFunction { | ||
private static final List<String> desc = new LinkedList<String>(); | ||
private static final String KEY = "__floatRandomNumber"; | ||
private static final Random random = new Random(System.currentTimeMillis()); | ||
|
||
static { | ||
desc.add("Returns the next pseudorandom, uniformly distributed float value between 0.0 and 1.0."); | ||
} | ||
private Object[] values; | ||
|
||
/** | ||
* No-arg constructor. | ||
*/ | ||
public FloatRandomNumber() { | ||
} | ||
|
||
/** | ||
* {@inheritDoc} | ||
*/ | ||
@Override | ||
public synchronized String execute(SampleResult previousResult, Sampler currentSampler) | ||
throws InvalidVariableException { | ||
JMeterVariables vars = getVariables(); | ||
|
||
Float randomFloat = random.nextFloat(); | ||
String varName = null; | ||
|
||
if (values.length > 0) { | ||
varName = ((CompoundVariable) values[0]).execute().trim(); | ||
} | ||
|
||
if (vars != null && varName != null && varName.length() > 0) {// vars will be null on TestPlan | ||
vars.put(varName, randomFloat.toString()); | ||
} | ||
|
||
return randomFloat.toString(); | ||
} | ||
|
||
/** | ||
* {@inheritDoc} | ||
*/ | ||
@Override | ||
public synchronized void setParameters(Collection<CompoundVariable> parameters) throws InvalidVariableException { | ||
values = parameters.toArray(); | ||
} | ||
|
||
/** | ||
* {@inheritDoc} | ||
*/ | ||
@Override | ||
public String getReferenceKey() { | ||
return KEY; | ||
} | ||
|
||
/** | ||
* {@inheritDoc} | ||
*/ | ||
@Override | ||
public List<String> getArgumentDesc() { | ||
return desc; | ||
} | ||
} |
76 changes: 76 additions & 0 deletions
76
JMeter/code4reference/com/jmeter/functions/FloatRandomNumber.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,76 @@ | ||
package code4reference.com.jmeter.functions; | ||
|
||
import java.util.Collection; | ||
import java.util.LinkedList; | ||
import java.util.List; | ||
import java.util.Random; | ||
|
||
import org.apache.jmeter.engine.util.CompoundVariable; | ||
import org.apache.jmeter.functions.AbstractFunction; | ||
import org.apache.jmeter.functions.InvalidVariableException; | ||
import org.apache.jmeter.samplers.SampleResult; | ||
import org.apache.jmeter.samplers.Sampler; | ||
import org.apache.jmeter.threads.JMeterVariables; | ||
|
||
public class FloatRandomNumber extends AbstractFunction { | ||
private static final List<String> desc = new LinkedList<String>(); | ||
private static final String KEY = "__floatRandomNumber"; | ||
private static final Random random = new Random(System.currentTimeMillis()); | ||
|
||
static { | ||
desc.add("Returns the next pseudorandom, uniformly distributed float value between 0.0 and 1.0."); | ||
} | ||
private Object[] values; | ||
|
||
/** | ||
* No-arg constructor. | ||
*/ | ||
public FloatRandomNumber() { | ||
} | ||
|
||
/** | ||
* {@inheritDoc} | ||
*/ | ||
@Override | ||
public synchronized String execute(SampleResult previousResult, Sampler currentSampler) | ||
throws InvalidVariableException { | ||
JMeterVariables vars = getVariables(); | ||
|
||
Float randomFloat = random.nextFloat(); | ||
String varName = null; | ||
|
||
if (values.length > 0) { | ||
varName = ((CompoundVariable) values[0]).execute().trim(); | ||
} | ||
|
||
if (vars != null && varName != null && varName.length() > 0) {// vars will be null on TestPlan | ||
vars.put(varName, randomFloat.toString()); | ||
} | ||
|
||
return randomFloat.toString(); | ||
} | ||
|
||
/** | ||
* {@inheritDoc} | ||
*/ | ||
@Override | ||
public synchronized void setParameters(Collection<CompoundVariable> parameters) throws InvalidVariableException { | ||
values = parameters.toArray(); | ||
} | ||
|
||
/** | ||
* {@inheritDoc} | ||
*/ | ||
@Override | ||
public String getReferenceKey() { | ||
return KEY; | ||
} | ||
|
||
/** | ||
* {@inheritDoc} | ||
*/ | ||
@Override | ||
public List<String> getArgumentDesc() { | ||
return desc; | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
import code4reference.com.jar.TestJar; | ||
|
||
class MainJar{ | ||
public static void main(String args[]){ | ||
|
||
TestJar testjar = new TestJar(); | ||
|
||
testjar.print(); | ||
|
||
} | ||
|
||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
package code4reference.com.jar; | ||
|
||
public class TestJar { | ||
|
||
public void print(){ | ||
System.out.println("Hello World! from TestJar"); | ||
} | ||
|
||
} |
Binary file not shown.