我想从我的Gradle脚本运行JMeter GUI,这样我就可以仔细控制版本和环境因素,这样我的本地开发人员机器构建1就没有必要的设置了。
我的JMeter的构建。gradle(多项目构建的一部分):
plugins{
id 'base'
id 'java'
}
repositories {
jcenter()
}
dependencies {
compile 'org.apache.jmeter:ApacheJMeter:4.0'
}
task jmeterGui(type: JavaExec){
workingDir = "$project.buildDir/jmeter-working-dir"
classpath = sourceSets.main.runtimeClasspath
main = "org.apache.jmeter.NewDriver"
doFirst{
println "running Jmeter from Gradle"
mkdir workingDir
}
}
> Task :functional-test:jmeterGui
java.lang.Throwable: Could not access <source root>\functional-test\build\lib
at org.apache.jmeter.NewDriver.<clinit>(NewDriver.java:102)
java.lang.Throwable: Could not access <source root>\functional-test\build\lib\ext
at org.apache.jmeter.NewDriver.<clinit>(NewDriver.java:102)
java.lang.Throwable: Could not access <source root>\functional-test\build\lib\junit
at org.apache.jmeter.NewDriver.<clinit>(NewDriver.java:102)
java.lang.ClassNotFoundException: org.apache.jmeter.JMeter
at java.net.URLClassLoader$1.run(URLClassLoader.java:372)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at org.apache.jmeter.NewDriver.main(NewDriver.java:242)
JMeter home directory was detected as: <source root>\functional-test\build
1目前,在我的构建中,所有内容都受到严格的版本控制,是Gradle构建的一部分。这包括NodeJS、NPM和Terraform。从字面上看,唯一的设置先决条件是Java8 JDK。我想用JMeter继续这种方法。
下面是我目前从Gradle运行JMeter GUI的最佳尝试。注意,GUI启动了,但是几乎不起作用(甚至不能打开测试计划)。
dependencies {
// using the runtime classpath instead of compile in order to avoid
// downloading all these and their deps in places where we never intend
// to run the JMeter GUI (continuous build environments, etc.)
runtime 'org.apache.jmeter:ApacheJMeter:4.0'
runtime 'org.apache.jmeter:jorphan:4.0'
runtime 'org.apache.jmeter:ApacheJMeter_core:4.0'
runtime 'org.apache.jmeter:ApacheJMeter_components:4.0'
runtime 'org.apache.jmeter:ApacheJMeter_config:4.0'
runtime 'org.apache.jmeter:ApacheJMeter_functions:4.0'
runtime 'org.apache.jmeter:ApacheJMeter_java:4.0'
runtime 'org.apache.jmeter:ApacheJMeter_http:4.0'
runtime 'org.apache.jmeter:ApacheJMeter_tcp:4.0'
runtime 'org.apache.jmeter:ApacheJMeter_parent:4.0'
}
task launchJmeterGui(type: JavaExec){
description = "Launch the JMeter GUI for editin test plans"
workingDir = "$project.buildDir/jmeter-working-dir"
classpath = sourceSets.main.runtimeClasspath
// This is the main class that the jmeter.bat file invokes.
// I think this thing is specifically intended to be invoked from a batch/
// shell script and is not intended to be invoked like this.
main = "org.apache.jmeter.NewDriver"
// I think this controls where the log file goes, not sure.
args "--homedir=${workingDir.absolutePath}"
doFirst{
println "Launching Jmeter from Gradle"
// log file ends up in here
mkdir workingDir
// I don't put anything in here, but there will be errors in the console
// output if they don't exist. I think this is where the darcula jar
// needs to be in order to work?
mkdir "$buildDir/lib"
mkdir "$buildDir/lib/ext"
mkdir "$buildDir/lib/junit"
// Copied into the source tree from a JMeter 4.0 install.
// Will run without these files but will print errors to console/log file.
// I'm happy to put these under source control, that makes sense to me.
project.copy {
from "src/test/resources/jmeter.properties"
from "src/test/resources/log4j2.xml"
into "$buildDir/bin"
}
}
}
问题内容: 我正在尝试设置gradle以启用各种spring配置文件来启动该过程。 我当前的配置如下: 我想通过任务设置系统属性,然后执行。 我的尝试看起来像这样: 几个问题: 是spring boot bootRun配置的一部分? 是否可以在另一个任务中设置系统属性? 我下一步应该做什么?我需要先进行配置 我还有其他方法可以研究吗 -埃里克 问题答案: 最简单的方法是定义默认值并允许其被覆盖。我
我在build.gradle中创建了一个新的gradle任务: 哪个应该运行rerun.sh: 我使用IntelliJ作为IDE。如何运行此任务? 我尝试在zshell控制台中运行并收到此错误: gradle调用CL zsh:找不到命令:gradle 但是在 IDE 中,我一直使用 gradle,因此必须安装它。 我怎么才能解决这个问题?我的写作还好吗?
我试图设置gradle,在启用各种spring配置文件的情况下启动bootRun进程。 我当前的配置如下所示: 我想用gradle任务设置系统属性,然后执行bootRun。 我的尝试是这样的: 几个问题: 系统属性是spring boot bootRun配置的一部分吗 可以在另一个任务中设置系统属性吗 我的下一步应该是什么?我需要在bootRun之前进行配置 有没有其他方法值得我研究 -埃里克
我有一个结构如下的项目: Maven-as-submodule-只是一个分级项目;graph-gen是gradle项目中的Maven模块(不是子模块) 我的目标是从gradle任务运行command:。所以我写了一些: null 任务runMvnInterfaceGenerator(类型:Exec){dependsOn“copy graphstoGenerator”workingDir“./gra
我尝试用JavaExec类型创建gradle任务。在gradle文档中,我发现我不需要使用java插件。但是这个插件与android插件不兼容。如果我没有应用java插件,我会收到以下错误: 错误:无法找到或加载主类包。TestM 我的任务示例: 如果使用相同的任务创建java库模块,则会收到相同的错误: 错误:无法找到或加载主类 也许我需要设置类路径变量?如何在Android Studio中获取
我在跑Pop_OS!20.10 [✓] Flutter(Channel stable,1.22.3,Linux,locale en_US.UTF-8)•Flutter版本1.22.3 at/home/samdc/DevTools/Flutter•框架版本8874f21(3个月前),2020-10-29 14:14:35-0700•引擎版本a1440ca392•Dart版本2.10.3•Pub下载镜