【问题标题】:How to load test java REST web service without using any tool如何在不使用任何工具的情况下加载测试 java REST Web 服务
【发布时间】:2017-12-23 18:34:02
【问题描述】:

我有一个 REST 服务方法,需要对其进行负载测试。 不幸的是,我没有笔记本电脑的管理员权限,也无法安装/下载任何工具。

需要知道 REST 服务(tomcat 中的 web 项目)的容量,比如它可以处理多少并发请求。我不需要任何其他信息或细节。

以下是有关 REST api 的一些详细信息:

Method: POST
Technology: Spring MVC
Response object is very complex and huge form, requiring 100's of objects.

有没有办法使用核心 java 应用程序来做到这一点(发布到 REST URL,获取响应,并找到 API 支持的最大并发请求)

在核心 java 中,我可以使用 apache http、spring 或核心 java 7/8

【问题讨论】:

  • 格式化 REST 请求并使用 curl 命令将其发送到 REST URI。或者,您也可以使用 Chrome 扩展程序来帮助您使用 REST 客户端与 REST URI 进行交互。
  • 好的,如何同时发送多个请求?
  • 你能举一个java curl的例子吗?它可以用于发布吗?
  • 为什么它必须来自Java?您可以为此使用 linux 客户端。我假设 Web 应用程序是用 Java 编写的(您要对其进行测试)。
  • 无论如何,为了在任何 linux 机器上使用它(无需安装任何工具),curl 将满足您的需要。以下是它的示例:codingpedia.org/ama/…

标签: java spring rest model-view-controller restful-architecture


【解决方案1】:

我可以使用 java 7 Executors 和 URLConnection 使用以下代码进行负载测试:

public class POSTProcessor {

    class ManagedProcessor implements Callable {

    public void postMessage() {
        //Test execute single call for REST web service with URLConnection
    }

    @Override
    public Object call() throws Exception {
        postMessage();
        return null;
    }

    }

    public static void main(String[] args) {
        long time1 = System.currentTimeMillis();
        int size = 200;
        ExecutorService loadExecutor = Executors.newFixedThreadPool(size);      
        POSTProcessor threadRunner = new POSTProcessor();
        List jobs = new ArrayList();
        for(int i=0;i<size;i++){
            ManagedProcessor exec = threadRunner.new ManagedProcessor() ;
            jobs.add(exec);
        }
        try {
            loadExecutor.invokeAll(jobs);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        long time2 = System.currentTimeMillis();

        System.out.println("Time delay: " + ( (time2 - time1)/size));
        loadExecutor.shutdown();
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多