Search code examples
gradlejmeterjmeter-plugins

CannotResolveClassException: com.blazemeter.jmeter.controller.ParallelSampler


I ran into an issue which is basically that Gradle can not find the ParallelSampler class in which I included in my gradle file.

Basically, I am trying to use the plugin(ParallelSampler) developed by blazemeter in my project.

I am not sure why it is happening.

import org.ajoberstar.grgit.Grgit;

plugins {
    // Apply the java-library plugin to add support for Java Library
    id 'java-library'
    id 'groovy'
    id 'org.ajoberstar.grgit' version '4.0.0'
}

repositories {
    // Use jcenter for resolving dependencies.
    // You can declare any Maven/Ivy/file repository here.
    jcenter()
}

dependencies {
    compile group: 'org.codehaus.groovy', name: 'groovy-all', version: '2.4.16'
    compile group: 'org.apache.httpcomponents', name: 'httpclient', version: '4.5.10'
    compile group: 'org.apache.httpcomponents', name: 'httpcore', version: '4.4.12'
    compile group: 'org.apache.jmeter', name: 'ApacheJMeter_core', version: '5.2.1'
    compile group: 'org.apache.jmeter', name: 'ApacheJMeter_http', version: '5.2.1'
    compile group: 'com.blazemeter', name: 'jmeter-parallel', version: '0.9'
}

task cloneJmeter() {
    doFirst {
        Grgit.clone {
            dir = "apache-jmeter/"
            uri = "https://github.com/apache/jmeter.git"
            remote = "origin"
            refToCheckout = "rel/v5.2.1"
        }
    }
}

sourceSets.main.resources.srcDirs = ["src/"]

task copyJar(type: Copy) {
    from jar
    into "apache-jmeter/lib/"
}

clean.doFirst {
    delete "apache-jmeter"
}

I am seeing following console logs

Cause:
00:38:46  CannotResolveClassException: com.blazemeter.jmeter.controller.ParallelSampler
00:38:46  
00:38:46   Detail:com.thoughtworks.xstream.converters.ConversionException: 
00:38:46  ---- Debugging information ----
00:38:46  cause-exception     : com.thoughtworks.xstream.converters.ConversionException
00:38:46  cause-message       : 
00:38:46  first-jmeter-class  : org.apache.jmeter.save.converters.HashTreeConverter.unmarshal(HashTreeConverter.java:67)
00:38:46  class               : org.apache.jmeter.save.ScriptWrapper
00:38:46  required-type       : org.apache.jmeter.save.ScriptWrapper
00:38:46  converter-type      : org.apache.jmeter.save.ScriptWrapperConverter
00:38:46  path                : /jmeterTestPlan/hashTree/hashTree/hashTree[5]/hashTree[4]/com.blazemeter.jmeter.controller.ParallelSampler
00:38:46  line number         : 242
00:38:46  version             : 5.2.1-SNAPSHOT

I want to download jmeter-parallel jar and store into apache-jmer/lib/ext of jmeter.


Solution

  • JMeter Plugins need to go into "lib/ext" folder so if you put jmeter-parallel-0.9.jar file into "lib" folder JMeter won't recognize it as the plugin

    Also be aware of JMeter Plugins Manager which provides possibility to install JMeter Plugins (along with their dependencies), the Plugins Manager has programmatic and command-line interfaces so you should be able to use it for plugins installation from your Gradle build