V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
wuxiaolin
V2EX  ›  PHP

web 程序做压力测试怎么让结果最精准

  •  
  •   wuxiaolin · 2012-11-28 17:16:39 +08:00 · 4714 次点击
    这是一个创建于 4379 天前的主题,其中的信息可能已经有所发展或是发生改变。
    如题,我现在需要做这方面的测试,暂时只是测一个接口。一般我们做压测,应该怎么开始,环境有什么要求没有?测试时数据应该怎么调整?要对几次测试结果进行汇总对比才能得出一个更加准确的结果。暂时用ab在测试
    16 条回复    1970-01-01 08:00:00 +08:00
    webgeekman
        1
    webgeekman  
       2012-11-28 17:28:33 +08:00
    推荐Loadrunner!
    wuxiaolin
        2
    wuxiaolin  
    OP
       2012-11-28 17:37:25 +08:00   ❤️ 1
    @webgeekman 其实我想问的是,如何能得到一个较为准确的测试结果
    hehe
        3
    hehe  
       2012-11-28 21:01:05 +08:00
    webbench
    http_load
    and so on
    webgeekman
        4
    webgeekman  
       2012-11-29 00:21:03 +08:00
    @wuxiaolin
    测试数据越接近实际数据越好(包括数据大小、复杂程度,当然测试阶段接近最高值比较好);
    测试模拟的过程越接近实际使用过程越好(模拟用户实际操作的流程);
    被测试服务器与实际部署服务器配置越接近越好;
    发起测试机配置当然也越高越好,能够更好的模拟并发;
    测试机与被测试机最好在同一局域网下;
    测试次数越多越能得到准确的测试结果。
    sivacohan
        5
    sivacohan  
       2012-11-29 01:44:50 +08:00
    ab
    jmeter
    都可以简单测试
    当然,网络因素也要考虑一下。
    wuxiaolin
        6
    wuxiaolin  
    OP
       2012-11-29 09:25:57 +08:00
    @webgeekman 谢谢哥们详细的解说
    wuxiaolin
        7
    wuxiaolin  
    OP
       2012-11-29 09:27:08 +08:00
    @sivacohan 现在就是用ab在做测试,就是不知道怎么得到一个更加准确的结果
    sampeng
        8
    sampeng  
       2012-11-30 00:53:56 +08:00
    首先问题是定义,什么叫准确。
    sampeng
        9
    sampeng  
       2012-11-30 00:56:52 +08:00
    我走压力测试,一定是以现有数据推算一个值,然后去压。符合这个值。就算ok。。。
    服务器和线上服务器最好一致。不一致就在推算的数据值进行比例换算。

    要想知道是不是准确的很简单。。

    每个操作就是一个事物。TPS是可以在代码里面就算的。一统计就知道TPS了。。
    如果是每秒多少个页面请求。1,可以自己代码里面进行记录。2,直接分析web服务器的日志也一样的。然后和测试数据一比就知道了。。

    所以才说,一定要现定义什么叫准确,自己预期压力是多少
    venglide
        10
    venglide  
       2012-11-30 12:05:56 +08:00
    你应该先要明白你要测的是什么,比如:
    - 有预期并发量,测试系统响应及资源利用
    - 无预期并发量,想测试系统能有多大的容量
    - 测试系统的稳定性而非响应速度
    各种测试所用的测试策略是不一样的,依需求而测。
    wuxiaolin
        11
    wuxiaolin  
    OP
       2012-12-08 15:29:21 +08:00
    @venglide 我现在是- 无预期并发量,想测试系统能有多大的容量 测试这条
    wuxiaolin
        12
    wuxiaolin  
    OP
       2012-12-08 15:32:57 +08:00
    @sampeng 因为之前没搞过这块,所以也是很凌乱,这个是新的系统,所以并没一个可估算的值,现在是想测试在这一个环境下面能支持最大的容量等,想得出到底在什么情况之下得加机器,就想这样的测试
    yegle
        13
    yegle  
       2012-12-09 08:27:59 +08:00
    @wuxiaolin 直接上线撑不住就立即扩容…这个不是更好么…
    sampeng
        14
    sampeng  
       2012-12-10 23:25:47 +08:00
    @wuxiaolin web的压力测试只是一个补充,不能起绝对作用。所有数据都是有相对前提的。。。
    一个tps1000的系统也很有可能一个小小的疏漏1-2个人就玩卡死了。
    sampeng
        15
    sampeng  
       2012-12-10 23:26:57 +08:00
    @wuxiaolin 我以前服务的一家公司是要求cpu不能超过50%。否者必须扩容,所以才用压力测试。平常都是盯着。loader太高,响应明显变慢才加机器。一般初步估计的够用个1-2年的
    venglide
        16
    venglide  
       2012-12-17 12:23:36 +08:00
    @wuxiaolin 可以尝试这样做:
    1)取一个并发量N作为基数进行测试
    2)在1)通过的前提下用2*N并发进行测试
    3)若上一轮测试通过,取2*2N并发进行测试;若未通过,取(N+2N)/2并发进行测试
    重复第3)步可以得到系统的最大容量
    Note:
    1)基数N根据系统实际情况进行预估
    2)增量可以采用其它方式,如在N基础上加/减一个定量
    3)测试通过判定:系统主要功能正常运行,没有出现大量错误及系统故障(系统响应慢是可接受的)
    更好的建议可以参看:http://www.loadtest.com.au/types_of_tests/volume_tests.htm
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   897 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 20:23 · PVG 04:23 · LAX 12:23 · JFK 15:23
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.