JMeter-按需暂停(和恢复)执行
我在服务器上执行JMeter任务几个小时 我希望能够暂停执行几秒钟/分钟,并在服务器重新启动后继续执行 有没有办法向JMeter发出暂停并恢复执行的信号 我看到了,但它不适合我的问题到目前为止,您的“问题”是无法解决的 我能想到的最简单的解决方案是:如果你重新启动你的服务器,它应该在一段时间内不可用,当它可用时,它应该用一个包含一些文本的HTML页面来响应 因此,您可以按如下方式“等待”服务器启动并运行:JMeter-按需暂停(和恢复)执行,jmeter,pause,Jmeter,Pause,我在服务器上执行JMeter任务几个小时 我希望能够暂停执行几秒钟/分钟,并在服务器重新启动后继续执行 有没有办法向JMeter发出暂停并恢复执行的信号 我看到了,但它不适合我的问题到目前为止,您的“问题”是无法解决的 我能想到的最简单的解决方案是:如果你重新启动你的服务器,它应该在一段时间内不可用,当它可用时,它应该用一个包含一些文本的HTML页面来响应 因此,您可以按如下方式“等待”服务器启动并运行: 将JSR223采样器添加到测试计划中需要“等待”服务器启动并运行的适当位置 将以下代码放入
kill-STOP${JMeter\u PID}
挂起进程,使用kill-CONT${JMeter\u PID}
恢复。在Windows中,您可以执行类似调用WindowsApi“kernel32”([bool])的操作DebugActiveProcess“@([int])@(JMETER\u PID)
。
import org.apache.http.client.config.RequestConfig
import org.apache.http.client.methods.HttpGet
import org.apache.http.impl.client.HttpClientBuilder
import org.apache.http.util.EntityUtils
SampleResult.setIgnore()
def retry = true
def requestConfig = RequestConfig.custom().setConnectTimeout(1000).setSocketTimeout(1000).build()
def httpClient = HttpClientBuilder.create().setDefaultRequestConfig(requestConfig).build()
while (retry) {
def httpGet = new HttpGet('http://jmeter.apache.org')
try {
def entity = httpClient.execute(httpGet).getEntity()
if (EntityUtils.toString(entity).contains('Apache JMeter')) {
log.info('Application is up, proceeding')
retry = false
} else {
log.info('Application is still down, waiting for 5 seconds before retry')
sleep(5000)
}
}
catch (Throwable ex) {
sleep(5000)
ex.printStackTrace()
}
}