|
JMeter example source code file (SampleEvent.java)
The JMeter SampleEvent.java source code/* * 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.samplers; import java.io.Serializable; import java.net.InetAddress; import java.net.UnknownHostException; import org.apache.jmeter.threads.JMeterVariables; import org.apache.jmeter.util.JMeterUtils; import org.apache.jorphan.logging.LoggingManager; import org.apache.jorphan.util.JMeterError; import org.apache.log.Logger; /** * Packages information regarding the target of a sample event, such as the * result from that event and the thread group it ran in. */ public class SampleEvent implements Serializable { private static final Logger log = LoggingManager.getLoggerForClass(); private static final long serialVersionUID = 232L; public static final String SAMPLE_VARIABLES = "sample_variables"; // $NON-NLS-1$ public static final String HOSTNAME; // List of variable names to be saved in JTL files private static final String[] variableNames; // Number of variable names private static final int varCount; // The values. Entries be null, but there will be the correct number. private final String[] values; static { String hn=""; try { hn = InetAddress.getLocalHost().getHostName(); } catch (UnknownHostException e) { log.error("Cannot obtain local host name "+e); } HOSTNAME=hn; String vars = JMeterUtils.getProperty(SAMPLE_VARIABLES); variableNames=vars != null ? vars.split(",") : new String[0]; varCount=variableNames.length; if (varCount>0){ log.info(varCount + " sample_variables have been declared: "+vars); } } private final SampleResult result; private final String threadGroup; // TODO appears to duplicate the threadName field in SampleResult private final String hostname; /* * Only for Unit tests */ public SampleEvent() { this(null, null); } /** * Creates SampleEvent without saving any variables. * * Use by Proxy and StatisticalSampleSender. * * @param result SampleResult * @param threadGroup name */ public SampleEvent(SampleResult result, String threadGroup) { this.result = result; this.threadGroup = threadGroup; this.hostname = HOSTNAME; values = new String[variableNames.length]; } /** * Contructor used for normal samples, saves variable values if any are defined. * * @param result * @param threadGroup name * @param jmvars Jmeter variables */ public SampleEvent(SampleResult result, String threadGroup, JMeterVariables jmvars) { this.result = result; this.threadGroup = threadGroup; this.hostname = HOSTNAME; values = new String[variableNames.length]; saveVars(jmvars); } /** * Only intended for use when loading results from a file. * * @param result * @param threadGroup * @param hostname */ public SampleEvent(SampleResult result, String threadGroup, String hostname) { this.result = result; this.threadGroup = threadGroup; this.hostname = hostname; values = new String[variableNames.length]; } private void saveVars(JMeterVariables vars){ for(int i = 0; i < variableNames.length; i++){ values[i] = vars.get(variableNames[i]); } } /** Return the number of variables defined */ public static int getVarCount(){ return varCount; } /** Get the nth variable name (zero-based) */ public static String getVarName(int i){ return variableNames[i]; } /** Get the nth variable value (zero-based) */ public String getVarValue(int i){ try { return values[i]; } catch (ArrayIndexOutOfBoundsException e) { throw new JMeterError("Check the sample_variable settings!", e); } } public SampleResult getResult() { return result; } public String getThreadGroup() { return threadGroup; } public String getHostname() { return hostname; } } Other JMeter examples (source code examples)Here is a short list of links related to this JMeter SampleEvent.java source code file: |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.