压力测试应用程序与线程池执行程序

时间:2010-10-18 17:51:35

标签: java multithreading

我有以下问题。我想强调测试我的应用程序 部署在Tomcat服务器上。我要测试的案例如下: 用户上传文件,该文件被转码为另一种格式,新文件是 下载回用户的设备。 我用一个线程模拟每个用户(三个操作建模为三种方法)。 我创建了一个类型为newFixedThreadPool(30)的线程池执行器,然后执行 实现Runnable的类的run方法中的三个方法, 例如,在for循环中调用300次迭代(每次迭代 是一个新用户)。 主要:

  

ExecutorService executor = Executors.newFixedThreadPool(NTHREDS);

 for (int i = 0; i < 300; i++) {
    Runnable worker = new MyRunnable(i);
        executor.execute(worker);
    }
executor.shutdown();

和MyRunnable类

  

public void run()           {
          testPostFile();           testPSXFileRename();           testGetFile();       }

    public static void testPostFile() {}
    public static void testPSXFileRename() {}
    public static void testGetFile();

我的方法是否正确?还是我错过了棘手的部分

  • 第一个帖子= 1个用户(发布,转码,获取)

  • 第二线程= 1用户(发布,转码,获取)等

1 个答案:

答案 0 :(得分:2)

看来你正在尝试进行负载测试和一些单元测试。尝试并分离您的任务。

在加载/压力测试方面,JMeter是一种很好的开源方式来执行负载测试。 JMeter允许您录制脚本,然后您可以基于此模拟负载。您可以在youtube上搜索一些getting started videos

如果您正在进行单元测试,请使用JUnit

让您的单元测试确保功能正常,并进行负载测试以确定服务器在负载下的反应。