Instance:
The service is: the input two parameters via IO to the file;
1. Open MyEclipse, write Java codeService:
Package Test;import Java.io.file;import Java.io.printwriter;public class Outputservice {public static void output ( String filename, int a, int b) throws Exception { PrintWriter out = new PrintWriter (new File); Out.write (A + ":" + b); Out.close (); }}
Test class:
Package Test;import Org.apache.jmeter.config.arguments;import Org.apache.jmeter.protocol.java.sampler.javasamplerclient;import Org.apache.jmeter.protocol.java.sampler.javasamplercontext;import org.apache.jmeter.samplers.sampleresult;// The service is: the input two parameters via IO to the file; public class Performencetest implements Javasamplerclient {private sampleresult results; Private String A; Private String B; private String filename; Set the parameters passed in, you can set more, the parameters that have been set are displayed in the JMeter parameter list public Arguments getdefaultparameters () {Arguments params = new Argume NTS (); Params.addargument ("filename", "0");//Set the parameter and give the default value 0 params.addargument ("a", "0");//Set the parameter and give the default value of 0 Params.adda Rgument ("B", "0");//Set the parameter and give the default value 0 return params; }//initialization method, the actual runtime is executed only once per thread, execute public void setuptest (Javasamplercontext arg0) {results = new sampleres before the test method runs) Ult (); }//test execution of the loop body, depending on the number of threads and the number of cycles performed multiple public sampleresult runtest (Javasamplercontext arg0) {b = Arg0.getparameter ("B");Gets the parameter value set in JMeter a = Arg0.getparameter ("a"); Gets the parameter value set in JMeter filename = arg0.getparameter ("filename"); Gets the parameter value set in JMeter Results.samplestart ();//JMeter start statistic response time tag try {outputservice test = new Out Putservice (); Test.output (filename, Integer.parseint (a), Integer.parseint (b)); Results.setsuccessful (TRUE); The object being measured is called} catch (Throwable e) {results.setsuccessful (false); E.printstacktrace (); } finally {results.sampleend ();//JMeter End statistic response time Tag} return results; }//End method, which is actually run only once per thread, executes public void Teardowntest (Javasamplercontext arg0) {}/* public Stati after the test method runs. c void Main (string[] args) {//TODO auto-generated method stub Arguments params = new Arguments (); Params.addargument ("A", "0");//Set the parameter and give the default value 0 params.addargument ("b", "0");//Set the parameter and give the default value of 0 params.addargument ("filename", "abc.txt"); Javasamplercontext arg0 = new Javasamplercontext (params); Performencetest test = new Performencetest (); Test.setuptest (arg0); Test.runtest (arg0); Test.teardowntest (arg0); } */}
Build the jar package and place it in the Jmeter_home/lib/ext directory.
2. Set JMeterAfter opening jmeter as an administrator and creating a Java request, the structure looks like this: A new test class was found in Java requests: We found three parameters in the JMeter: here we use two functions: (1) _random generates random integers; (2) _ RandomString generate random strings, set the number of concurrent threads in a thread group to 5, and run after saving; aggregated reports:
As a result, 5 files were successfully generated:
3. Problems encountered
3.1 Export for jar file causes the class name of Java request not to be found; 3.2 JMeter Java.lang.OutOfMemoryError:PermGen space problem: Modify in Jmeter.bat: Set H eap=-xms512m-xmx1024m set new=-xx:newsize=128m-xx:maxnewsize=128m set SURVIVOR=-XX:SURVIVORRATIO=8-XX: targetsurvivorratio=50% set tenuring=-xx:maxtenuringthreshold=2 Set rmigc=-dsun.rmi.dgc.client.gcinterval=600000- dsun.rmi.dgc.server.gcinterval=600000 Set perm=-xx:permsize=256m-xx:maxpermsize=512m
3.3 JMeter needs to be opened as an administrator, otherwise it will appear:
"Turn" JMeter Learning (18) JMeter Test Java (ii)