【转载】使用JMeter的Java请求功能测试Hetty性能

来源:互联网 发布:telnet ip地址 端口 编辑:程序博客网 时间:2024/05/04 01:40
转载地址:http://my.oschina.net/xishuixixia/blog/83348
1.JMeter介绍
JMeter是Apache组织的开放源代码项目,它是功能和性能测试的工具,100%的用java实现。JMeter可以用于测试静态或者动态资源的性能(文件、Servlets、Perl脚本、java对象、数据库和查询、ftp服务器或者其他的资源)。JMeter用于模拟在服务器、网络或者其他对象上附加高负载以测试他们提供服务的受压能力,或者分析他们提供的服务在不同负载条件下的总性能情况。

2.启动JMeter
进入JMeter的bin目录,然后执行:
Java代码 复制代码 收藏代码
  1. sudo ./jmeter.sh

3.原始的测试方法
在没有使用JMeter前,我对hetty的性能测试,都是通过自己写多线程代码去完成的,相当苦逼,相当麻烦,不过也能锻炼自己的编码能力,我先贴出比较原始的测试方法,如下:

Java代码 复制代码 收藏代码
  1. public class RpcHessianClient {
  2. public static void main(String[] args) {
  3. String url = "http://localhost:8081/apis/hello";
  4. HessianProxyFactory factory = new HessianProxyFactory();
  5. ExecutorService es = Executors.newFixedThreadPool(10);
  6. int size = 1000000;
  7. final CountDownLatch cdl = new CountDownLatch(size);
  8. try {
  9. long start = System.currentTimeMillis();
  10. factory.setUser("client1");
  11. factory.setPassword("client1");
  12. factory.setOverloadEnabled(true);
  13. final Hello basic = (Hello) factory.create(Hello.class,url);
  14. for (int i = 0; i < size; i++) {
  15. es.submit(new Runnable() {
  16. @Override
  17. public void run() {
  18. String u = basic.hello("guolei");
  19. //System.out.println(u);
  20. cdl.countDown();
  21. }
  22. });
  23. }
  24. cdl.await();
  25. long time = System.currentTimeMillis() - start;
  26. System.out.println("SayHello:");
  27. System.out.println("耗时:" + (double) time /1000 + " s");
  28. System.out.println("平均:" + ((double) time) / size +" ms");
  29. System.out.println("TPS:" + (double) size / ((double) time /1000));
  30. // System.out.println("Hello, " + s.getMail());
  31. } catch (MalformedURLException e) {
  32. e.printStackTrace();
  33. } catch (InterruptedException e) {
  34. e.printStackTrace();
  35. } finally {
  36. es.shutdown();
  37. }
  38. }
  39. }  
原创粉丝点击