📄 examplesampler.java
字号:
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/
package org.apache.jmeter.examples.sampler;
import org.apache.jmeter.samplers.AbstractSampler;
import org.apache.jmeter.samplers.Entry;
import org.apache.jmeter.samplers.SampleResult;
import org.apache.jorphan.logging.LoggingManager;
import org.apache.log.Logger;
/**
* Example Sampler (non-Bean version)
*
* JMeter creates an instance of a sampler class for every occurrence of the
* element in every thread. [some additional copies may be created before the
* test run starts]
*
* Thus each sampler is guaranteed to be called by a single thread - there is no
* need to synchronize access to instance variables.
*
* However, access to class fields must be synchronized.
*
* @version $Revision: 493780 $ $Date: 2007-01-07 17:49:30 +0000 (Sun, 07 Jan 2007) $
*/
public class ExampleSampler extends AbstractSampler {
private static final Logger log = LoggingManager.getLoggerForClass();
// The name of the property used to hold our data
public final static String DATA = "ExampleSampler.data"; //$NON-NLS-1$
private static int classCount = 0; // keep track of classes created
// (for instructional purposes only!)
public ExampleSampler() {
classCount++;
trace("ExampleSampler()");
}
/*
* (non-Javadoc) Performs the sample, and returns the result
*
* @see org.apache.jmeter.samplers.Sampler#sample(org.apache.jmeter.samplers.Entry)
*/
public SampleResult sample(Entry e) {
trace("sample()");
SampleResult res = new SampleResult();
boolean isOK = false; // Did sample succeed?
String data = getData(); // Sampler data
String response = null;
res.setSampleLabel(getTitle());
/*
* Perform the sampling
*/
res.sampleStart(); // Start timing
try {
// Do something here ...
response = Thread.currentThread().getName();
/*
* Set up the sample result details
*/
res.setSamplerData(data);
res.setResponseData(response.getBytes());
res.setDataType(SampleResult.TEXT);
res.setResponseCodeOK();
res.setResponseMessage("OK");// $NON-NLS-1$
isOK = true;
} catch (Exception ex) {
log.debug("", ex);
res.setResponseCode("500");// $NON-NLS-1$
res.setResponseMessage(ex.toString());
}
res.sampleEnd(); // End timimg
res.setSuccessful(isOK);
return res;
}
/**
* @return a string for the sampleResult Title
*/
private String getTitle() {
return this.getName();
}
/**
* @return the data for the sample
*/
public String getData() {
return getPropertyAsString(DATA);
}
/*
* Helper method
*/
private void trace(String s) {
String tl = getTitle();
String tn = Thread.currentThread().getName();
String th = this.toString();
log.debug(tn + " (" + classCount + ") " + tl + " " + s + " " + th);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -