51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 1756|回复: 5
打印 上一主题 下一主题

[讨论] 怎样正确做 Web 应用的压力测试?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2017-6-28 09:58:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
“大家一般如何做压力测试?比如怎样判断一个应用的承受能力,在到达何种程度时需要增加服务器? 请大家讲一下经验~”
看到这个问题想来回答一下

一个完整的压力测试需要关注三个方面:如何正确产生压力、如何定位瓶颈、如何预估系统的承载能力
(1) 首先说一下如何产生压力,产生压力的方法有很多,通常可以写脚本产生压力机器人对服务器进行发包和收包操作,也可以使用现有的工具(像jmeter、LoadRunner这些),所以说产生压力其实并不难,难点在于产生的压力是不是真实地反映了实际用户的操作场景。举个例子来说,对游戏来说单纯的并发登陆场景在整个线上环境中的占比可能并不大(新开服等特殊情况除外),相反“登陆-开始战斗-结束战斗”、不同用户执行不同动作这种“混合模式”占了更大的比重。所以如何从实际环境中提炼出具体的场景比重,并且把这种比重转化成实际压力是一个重要的关注点。
(2) 产生压力之后,通常我们可以拿到TPS、响应时延等性能数据,那么如何定位性能问题呢?TPS、响应时延只能告诉你服务器是否存在问题,但不能帮助你定位问题。这些表面背后是整个后台处理逻辑综合作用的结果,这时候可以先关注系统的CPU、内存、IO、网络,对比在tps、时延达到瓶颈时这些系统数据的情况,确定性能问题是系统哪一部分造成的,然后再回到代码的逻辑中逐个优化这些点。
(3) 当服务器的整体性能就可以相对稳定下来,这时候就需要对自己服务器的承载能力有一个预估,通过产生真实压力、对比系统数据,大致可以对单套系统的处理能力有个真实的评价,然后结合业务规模配置服务器数量。

总结一下:通过产生真实压力来发现问题、结合系统性能来解决问题
欢迎大家来讨论
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

3#
发表于 2017-6-28 17:27:56 | 只看该作者
压力测试的目标,是搞死服务器,从而找到瓶颈点,如果搞不死,意义就不大
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2017-6-28 17:28:47 | 只看该作者
testcomplete,loadrunner,这些只是工具。
1、了解被测试应用的协议,
2、了解被测系统的组成,
3、编写压力测试脚本,
4、生成压力
5、监控系统
6、收集并分析数据
7、得出结论
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2017-6-28 17:29:54 | 只看该作者
jmeter+badboy再外加一个自己写的monitor监控,用起来还比较顺手,主要就是用来做web压力测试
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2017-6-28 17:30:37 | 只看该作者
要做压力测试,首先要选择好工具,俗话说:“工欲善其事,必先利其器”
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-4-30 19:11 , Processed in 0.067125 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表