zoukankan      html  css  js  c++  java
  • JMeter——异步请求性能测试

    前段时间任务要求要对一种异步请求做性能测试,异步请求步骤如下:

    step1: 发一个数据计算的请求,response里面返回一个jobId

    step2: 带上这个jobId,就可以实时查看这个请求返回的jobStatus, 如果jobStatus==0, 则成功返回计算结果;如果jobStatus==2,则代表job in progress;如果jobStatus==3,则代表job in failure.

    我的思路:

    1. 怎样把step1和step2包裹起来,成为一个整体,因为这个整体花费的时间,才是整个异步请求的响应时间。

    solution: 我用了一个Transaction Controller, 把这两步构成了一个整体。它的用法可参考:http://jmeter.apache.org/usermanual/component_reference.html#Transaction_Controller

    2. 怎样隔一段时间就去查看一下job status, 并且根据返回的job status来判断是否计算完成并返回计算结果了。

    solution: 我在step2上包裹了一个While Controller内加一个Constant Timer, 前者控制不断发送step2的请求直到返回计算结果,后者设定每隔多久发送一次。最后还加了一个BeanShell PostProcessor去多条件控制循环结束。

    condition script for While Controller is:

    ${__javaScript("${flag}"=="0" && "${jobStatus}"!="0")}

    BeanShell PostProcessor script is:

    String jobStatus = vars.get("jobStatus");

    log.info("jobStatus:"+jobStatus);

    if(jobStatus.equals("0")){

    log.info("AssetUnderManagement data returned successfully!");

    vars.put("flag","1");

    }

    if(jobStatus.equals("3")){

    log.info("AssetUnderManagement data calculate in failure!");

    vars.put("flag","1");

    原文:https://www.cnblogs.com/testing-life/p/11534120.html

  • 相关阅读:
    [转]为Ubuntu Server安装gnome图形桌面环境
    [转]ubuntu 安装五笔输入法
    [转]更改文件所有者
    QT 透明设置
    ubuntu 交叉编译arm linux 内核
    Opencv vs 2005编译
    [转]在skyeye中运行uboot
    object的引用 与 foreach的使用
    音频和视频
    HTML5 Canvas API
  • 原文地址:https://www.cnblogs.com/sucretan2010/p/14463980.html
Copyright © 2011-2022 走看看