Ok, got that fixed! Thanks. -Pete
On Fri, 2007-12-28 at 14:40 +0800, dennis wrote: > The reason why you cannot add Java Request Sampler is because you used > log4j in your code. > > Actually, when you add Java Request sampler the first time, you can see > errors in the console. It says: > > Exception in thread "AWT-EventQueue-0" java.lang. > e/log4j/Logger > at LaunchPLC.<clinit>(LaunchPLC.java:18) > > You can add log4j.jar to JMeter classpath to solve this problem. > > Peter Loron wrote: > > I have created a class that extends AbstractJavaSamplerClient. I > > basically edited the JavaTest.class file included with the JMeter 2.3.1 > > source. I build the JAR file and put it in lib/ext. I'm using Java > > 1.6.0.03 on Ubuntu 7.10. > > > > When I try to add a Java Sampler to a test, the first time I click on > > the menu option, it does nothing. When I click a second time. I get a > > sampler added. In the dropdown list, I can see my class, but no > > parameters are listed (I have 2 defined in the getDefaultParameters() > > method). When I select either the JavaTest or SleepTest options, they > > don't show any parameters, either. > > > > When I remove my JAR from the lib/ext directory and repeat the process, > > the JavaTest and SleepTest options properly show parameters and the Java > > Sampler is added on the first click. > > > > Code is appended below. > > > > Suggestions on where to look? > > > > Thanks. > > > > -Pete > > ------------------------------------------- > > package test; > > > > import java.io.Serializable; > > import java.util.Iterator; > > > > import org.apache.log4j.*; > > > > import org.apache.jmeter.config.Arguments; > > import > > org.apache.jmeter.protocol.java.sampler.AbstractJavaSamplerClient; > > import org.apache.jmeter.protocol.java.sampler.JavaSamplerContext; > > import org.apache.jmeter.samplers.SampleResult; > > //import org.apache.jmeter.testelement.TestElement; > > > > > > > > public class LaunchPLC extends AbstractJavaSamplerClient implements > > Serializable { > > > > private static final long serialVersionUID = 1L; > > > > //create our logger > > static Logger log = Logger.getLogger(LaunchPLC.class.getName()); > > > > /** The name of the script to run. */ > > private String scriptName; > > > > private static final String SCRIPT_NAME = "Script Name"; > > > > /** The success status to be stored in the sample result. */ > > private boolean status; > > > > private static final String STATUS_NAME = "Status"; > > > > > > public LaunchPLC() { > > getLogger().debug(whoAmI() + "\tConstruct"); > > > > //CONFIG LOGGING > > FileAppender fa = null; > > > > log.setLevel(Level.DEBUG); > > try { > > fa = new FileAppender(new PatternLayout(),"log.txt"); > > } catch (Exception e) { > > e.printStackTrace(); > > } > > log.addAppender(fa); > > } > > > > /* > > * Utility method to set up all the values > > */ > > private void setupValues(JavaSamplerContext context) { > > > > scriptName = context.getParameter("Script Name",""); > > > > /* > > sleepTime = context.getLongParameter(SLEEP_NAME, > > DEFAULT_SLEEP_TIME); > > sleepMask = context.getLongParameter(MASK_NAME, > > DEFAULT_SLEEP_MASK); > > > > responseMessage = context.getParameter(RESPONSE_MESSAGE_NAME, > > RESPONSE_MESSAGE_DEFAULT); > > > > responseCode = context.getParameter(RESPONSE_CODE_NAME, > > RESPONSE_CODE_DEFAULT); > > > > success = context.getParameter(SUCCESS_NAME, > > SUCCESS_DEFAULT).equalsIgnoreCase("OK"); > > > > label = context.getParameter(LABEL_NAME, ""); > > if (label.length() == 0) > > label = context.getParameter(TestElement.NAME); // > > default to name > > > > // of element > > > > samplerData = context.getParameter(SAMPLER_DATA_NAME, > > SAMPLER_DATA_DEFAULT); > > > > resultData = context.getParameter(RESULT_DATA_NAME, > > RESULT_DATA_DEFAULT); > > */ > > } > > > > > > public void setupTest(JavaSamplerContext context) { > > getLogger().debug(whoAmI() + "\tsetupTest()"); > > listParameters(context); > > > > //configure sampler > > setupValues(context); > > } > > > > > > public Arguments getDefaultParameters() { > > Arguments params = new Arguments(); > > params.addArgument("Script Name","foo"); > > params.addArgument("Status","OK"); > > return params; > > } > > > > > > public SampleResult runTest(JavaSamplerContext context) { > > > > > > log.info("Starting runTest"); > > > > SampleResult results = new SampleResult(); > > > > > > // Record sample start time. > > results.sampleStart(); > > > > > > > > com.pureload.tools.runner.ScenarioRunner.execute(scriptName, > > Level.DEBUG_INT, com.pureload.task.runtime.BasicTaskRuntime.LOG_DEBUG, > > true, log); > > > > results.setSuccessful(true); > > results.sampleEnd(); > > > > log.info("Finished runTest"); > > > > return results; > > } > > > > > > public void teardownTest(JavaSamplerContext context) { > > getLogger().debug(whoAmI() + "\tteardownTest()"); > > listParameters(context); > > } > > > > > > @SuppressWarnings("unchecked") > > private void listParameters(JavaSamplerContext context) { > > if (getLogger().isDebugEnabled()) { > > Iterator argsIt = context.getParameterNamesIterator(); > > while (argsIt.hasNext()) { > > String name = (String) argsIt.next(); > > getLogger().debug(name + "=" + > > context.getParameter(name)); > > } > > } > > } > > > > > > private String whoAmI() { > > StringBuffer sb = new StringBuffer(); > > sb.append(Thread.currentThread().toString()); > > sb.append("@"); > > sb.append(Integer.toHexString(hashCode())); > > return sb.toString(); > > } > > > > } > > > > > > > > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]