Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带有http代码的Jmeter If控制器_Jmeter - Fatal编程技术网

带有http代码的Jmeter If控制器

带有http代码的Jmeter If控制器,jmeter,Jmeter,我想在jmeter负载测试中使用if控制器。测试是: 发一篇帖子,然后取回一个访问令牌 使用该访问令牌获取下一个链接 我的问题: 我有访问令牌,并使用post断言->正则表达式提取器,从http响应中获得访问令牌。但是现在我不知道如何使用if控件,并且仅当http响应代码为200时才要求它进行下一次测试。第二个问题是,我仍然可以将访问令牌的正则表达式值传递到if循环的http头管理器中吗 附加我的jmeter的屏幕截图。根据返回的响应代码,尝试使用来处理请求状态\u访问\u令牌请求(成功/失败)

我想在jmeter负载测试中使用if控制器。测试是:

  • 发一篇帖子,然后取回一个访问令牌
  • 使用该访问令牌获取下一个链接
  • 我的问题:

    我有访问令牌,并使用post断言->正则表达式提取器,从http响应中获得访问令牌。但是现在我不知道如何使用if控件,并且仅当http响应代码为200时才要求它进行下一次测试。第二个问题是,我仍然可以将访问令牌的正则表达式值传递到if循环的http头管理器中吗

    附加我的jmeter的屏幕截图。

    根据返回的响应代码,尝试使用来处理请求状态\u访问\u令牌请求(成功/失败),然后使用IfController和预定义的jmeter变量-无论最后一个示例是否正常-真/假

    架构将如下所示:

    ThreadGroup
        Request_Access_Token
            Response Assertion
            Response Field to Test: Response Code
            Pattern Matching Rules: Equals
            Patterns to Test: 200
            Regex Extractor          // your Access_Token extractor
        IfController
        Condition: ${JMeterThread.last_sample_ok}   // will be TRUE if Response Assertion above is TRUE (i.e. response code = 200)
            HttpRequest
            // send extracted Access_Token along with request
            ...
    
    ThreadGroup
    请求访问令牌
    响应断言
    要测试的响应字段:响应代码
    模式匹配规则:等于
    测试模式:200
    正则表达式提取器//您的访问\令牌提取器
    IfController
    条件:${JMeterThread.last_sample_ok}//如果上面的响应断言为TRUE(即响应代码=200),则为TRUE
    HttpRequest
    //将提取的访问令牌与请求一起发送
    ...
    
    但是,如果为了测试的目的,我需要考虑一个以上的状态为“OK”(比如说200和302),但是如果状态是200(不为302),只想做第二个请求。