| career | drupal | java | mac | mysql | perl | scala | uml | unix  

JMeter example source code file (

This example JMeter source code file ( is included in the "Java Source Code Warehouse" project. The intent of this project is to help you "Learn Java by Example" TM.

Java - JMeter tags/keywords

abstractsampler, cannot, deprecated, number, runtimeexception, sampler, sampler, sampleresult, sampleresult, string, transactioncontroller, transactioncontroller, transactionsampler, transactionsampler

The JMeter 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
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * See the License for the specific language governing permissions and
 * limitations under the License.

 *  N.B. Although this is a type of sampler, it is only used by the transaction controller,
 *  and so is in the control package
package org.apache.jmeter.control;

import org.apache.jmeter.samplers.AbstractSampler;
import org.apache.jmeter.samplers.Entry;
import org.apache.jmeter.samplers.SampleResult;
import org.apache.jmeter.samplers.Sampler;

 * Transaction Sampler class to measure transaction times
 * (not exposed a a GUI class, as it is only used internally)
public class TransactionSampler extends AbstractSampler {
    private static final long serialVersionUID = 240L;

    private boolean transactionDone = false;

    private TransactionController transactionController;

    private Sampler subSampler;

    private SampleResult transactionSampleResult;

    private int calls = 0;

    private int noFailingSamples = 0;

     * @deprecated only for use by test code
    public TransactionSampler(){
        //log.warn("Constructor only intended for use in testing");

    public TransactionSampler(TransactionController controller, String name) {
        transactionController = controller;
        setName(name); // ensure name is available for debugging
        transactionSampleResult = new SampleResult();
        // Assume success

     * One cannot sample the TransactionSampler directly.
    public SampleResult sample(Entry e) {
        throw new RuntimeException("Cannot sample TransactionSampler directly");
        // It is the JMeterThread which knows how to sample a real sampler

    public Sampler getSubSampler() {
        return subSampler;

    public SampleResult getTransactionResult() {
        return transactionSampleResult;

    public TransactionController getTransactionController() {
        return transactionController;

    public boolean isTransactionDone() {
        return transactionDone;

    public void addSubSamplerResult(SampleResult res) {
        // Another subsample for the transaction
        // The transaction fails if any sub sample fails
        if (!res.isSuccessful()) {
        // Add the sub result to the transaction result

    protected void setTransactionDone() {
        this.transactionDone = true;
        // Set the overall status for the transaction sample
        // TODO: improve, e.g. by adding counts to the SampleResult class
        transactionSampleResult.setResponseMessage("Number of samples in transaction : "
                        + calls + ", number of failing samples : "
                        + noFailingSamples);
        if (transactionSampleResult.isSuccessful()) {

    protected void setSubSampler(Sampler subSampler) {
        this.subSampler = subSampler;

Other JMeter examples (source code examples)

Here is a short list of links related to this JMeter source code file:

... this post is sponsored by my books ...

#1 New Release!

FP Best Seller


new blog posts


Copyright 1998-2021 Alvin Alexander,
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.