如何测试一个web网站的性能(并发数)?

最近做了个web网站(javaweb),现在想测试一下这个网站能承受的最大并发数,但是对于压力测试知之甚少,求指教啊,我有两个问题:
1.我最想测试的是最大并发量,怎么测试呢?
2.一般web网站性能测试都有哪些指标呢,并发量、响应时间?

关于测试并发量,我是想写个程序,开多个线程连接网站(模拟用户量),在线程中进行增删改查的操作,不知是否可以呢?


另外,该网站需要满足300人能同时考试,具体应该怎么测试呢?
实测当中,估计同时考试的用户有时候会超过500人,有少数考生在读取试题页面时浏览器会卡死,这个问题是读取数据库那边的瓶颈么?

这个是我用httpload测试网站首页的结果(首页数据需从数据库读取)
并发线程数 / 持续时间(s) / 每秒连接数 / 每秒数据量(byte)
100 / 10 / 93 / 102969
200 / 10 / 128 / 142342
300 / 10 / 121 / 134047
500 / 10 / 118 / 131278
1000 / 10 / 69 / 76411
光这么测试,也看不出太大效果,求有经验的XDJM指定~~

阅读 38.5k
评论
    7 个回答

    httpload
    apache的ab
    这两个比较容易上手,但是能测到的数据也比较有限,不会非常的详细

      • 317

      看你是想做单个连接的或者是几个模块的压力测试呢 还是全站的

      如果单独几个连接的 apache 的ab 和webbench等就基本上差不多可以做到了,压力起来以后观察内存和cpu、磁盘的状态,同时程序中要注意通过日志记录 主要的性能变化,例如 一些远程rpc请求的耗时、数据库操作的耗时、复杂数据处理逻辑的耗时,然后分析性能瓶颈和问题,另外一些程序在开发时就可以通过一些内置的功能进行性能检测,避免有大的逻辑耗时出现

      如果是想整个网站都进行也就是最真实的看全局的压力应对能力,可能就要涉及到web请求日志的回放或者缩小回放了,这里可能要自己利用程序实现了

      不过一般都是先根据项目状态把最主要的核心模块做好压力测试之后 在进行全局的

        如果您的要求比较复杂,实际上LoadRunner还是比较靠谱。

        一般来讲,使用 ab、seige、vegeta等工具已经很有参考价值了。因为很多情况下,你得到的报告是对服务质量、能力的一个相对指标,主要起参考作用。而不是说,你可以通过工具得到网站究竟可以支持多少人访问。

        当然,是可以在不断的分析中,总结出更为客观的评价方法的。

          jmeter可以录制网页动作生成报表,不知道能不能满足你的要求

            Jmeter就是你需要的, 可以控制请求线程的数量, 线程到最大数预热的时间, 每次请求的随机间隔时间来模拟用户思考, 加上录制脚本, 学习一下, 你想要的基本都会有

              1.我最想测试的是最大并发量,怎么测试呢?
              jmeter,设置线程数,一个线程数代表1个并发,根据需求可以一直增加,直到测出性能极限
              性能极限的判断标准:前后二次增加并发数,tps没有递增,响应时间递增,说明系统已经到极限了,可停止压测
              2.一般web网站性能测试都有哪些指标呢,并发量、响应时间?
              一般是关注三个指标,并发,响应时间,tps
              建议
              我看了下,你的压测时长,都是10s,压测时间太短,不一定能够发现问题,建议每一轮的压测
              时长至少5min,这样出来的压测数据也比较可信,且可以看下,恒定的压力下,系统是否有波
              动,进一步的查找出一些性能瓶颈的问题

                撰写回答

                登录后参与交流、获取后续更新提醒