JMeter-按需暂停(和恢复)执行

JMeter-按需暂停(和恢复)执行,jmeter,pause,Jmeter,Pause,我在服务器上执行JMeter任务几个小时 我希望能够暂停执行几秒钟/分钟,并在服务器重新启动后继续执行 有没有办法向JMeter发出暂停并恢复执行的信号 我看到了,但它不适合我的问题到目前为止,您的“问题”是无法解决的 我能想到的最简单的解决方案是:如果你重新启动你的服务器,它应该在一段时间内不可用,当它可用时,它应该用一个包含一些文本的HTML页面来响应 因此,您可以按如下方式“等待”服务器启动并运行: 将JSR223采样器添加到测试计划中需要“等待”服务器启动并运行的适当位置 将以下代码放入

我在服务器上执行JMeter任务几个小时

我希望能够暂停执行几秒钟/分钟,并在服务器重新启动后继续执行

有没有办法向JMeter发出暂停并恢复执行的信号

我看到了,但它不适合我的问题

到目前为止,您的“问题”是无法解决的

我能想到的最简单的解决方案是:如果你重新启动你的服务器,它应该在一段时间内不可用,当它可用时,它应该用一个包含一些文本的HTML页面来响应

因此,您可以按如下方式“等待”服务器启动并运行:

  • 将JSR223采样器添加到测试计划中需要“等待”服务器启动并运行的适当位置
  • 将以下代码放入“脚本”区域:

  • 就是这样,代码将尝试打开网页并查找其中的一些文本,如果网页未打开和/或文本不存在,它将等待5秒钟,然后重试
  • 更多信息:


    谢谢,但我不想在每个请求发送到服务器之前发送额外的请求。我已经知道何时暂停,我想向JMeter Execution发送暂停/恢复如果您需要暂停JMeter一段时间(即“睡眠”),请使用sampler和Combination,但我如何根据需要调用它?例如,在服务器即将重新启动前1小时后(执行前时间未知)如果您的问题是关于挂起/恢复任何应用程序,而不是JMeter,那么在Linux中,您可以使用
    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()
        }
    }