这几天做压力测试/性能测试。颇有些心得, 写下来分享。
压力测试最重要的一点是测试方案。 分析要测试的问题是什么? 就我目前的理解, 压力测试主要通过 request/sec 加压来达到压力测试的目的。 而加压的技巧有:
此次做压力测试主要是用了两个工具Loadrunner和开发自己开发的一个工具。首先介绍loadrunner.
Loadrunner需要注意的地方
安装
系统只能是winSrv03 或者winXP, 因为Loadrunner不支持IE8的录制。 使用这两个系统避免了大量的麻烦。
使用loadrunner
loadrunner的主要使用过程为: 录制, 回放, 修改脚本。
visual user generator中工具栏最后一个工具“Edit Runtime Settings” 设置运行时的重要参数, action的循环次数也在这里设置。
对Controller的理解, 仅仅在于增加Vuser的数量以及怎样增加。对“Windows Resources”这个指标要通过右键点击“Windows Resources”区域选择"Add measurements" 添加服务器。
对Anlysis有许多疑问。
1. 我工具栏中选择“Schedule Builder”中Vuser 什么时候启动, 我设置了10个Vuser同时启动,但是曲线显示在00:00:09分时只运行了8个Vuser, 00:00:12分时才运行剩下的2个Vuser. 为什么不行?
2. 而点击数又是我疑惑的一个地方。 这个点击数是指什么? 我完全没明白。
3. Response Time显示各个事务的反应时间。 但是为什么我定义的"LoadPage"事务每一次的请求反馈都不一样,但是曲线确实显示为一条直线,非常费解。
目前来看, loadrunner找不到我想找的数据, 暂停研究了。
开发做的测试程序:
程序原理: 将手机上的程序移植到PC上, 对关键业务进行查询。 查询类似于Push. 首先在客户端与服务器端建立连接,连接建立后服务器给客户端Push数据。 并不断开连接。
测试技术点:
部署程序到多个PC客户端,以便对服务器进行加压。登录到远程服务端winSrv2003或者Linux。有几个工具介绍一下:
PuTTY: 单个远程服务器进行登录。 非常好用。
XShell: 多个远程服务器进行登录。
局域网内多个PC端加压,怎样解决同步的问题。 我使用的是windows "任务计划程序"。 在特定的时间所有PC端同时执行测试程序。
"任务计划程序" 有一个at命令, 但是根据实验,发现不好用。 根本就不执行。 不同的系统默认的执行时间按有可能是今天也有可能是明天。 直接去附件中选择"任务计划程序"执行反而出现的问题比较少。
登录遇到的问题解决:
远程服务器桌面如果是直接关掉, 多了就会出现连接数达到最大限制的问题。这时候XP/2003系统使用mstsc /console 进行登录, win7使用mstsc /admin进行登录。区别的原因是win7上的程序升级了。
Linux 命令使用:
ifconfig:查看网卡信息
top:查看cpu内存等信息
压力测试最重要的一点是测试方案。 分析要测试的问题是什么? 就我目前的理解, 压力测试主要通过 request/sec 加压来达到压力测试的目的。 而加压的技巧有:
- 按照一定的步进逐步加压, 直至系统出现大量超时或宕机
- 并发一次发出大量数据, 测试服务器瞬间承受压力的能力
- 当系统负载在一定水平(一般业务处理频率)时连续运行,查看系统响应的时间以及系统响应失败率
- 数据库
- 登录服务器
- 业务逻辑服务器
- ....
此次做压力测试主要是用了两个工具Loadrunner和开发自己开发的一个工具。首先介绍loadrunner.
Loadrunner需要注意的地方
安装
系统只能是winSrv03 或者winXP, 因为Loadrunner不支持IE8的录制。 使用这两个系统避免了大量的麻烦。
使用loadrunner
loadrunner的主要使用过程为: 录制, 回放, 修改脚本。
visual user generator中工具栏最后一个工具“Edit Runtime Settings” 设置运行时的重要参数, action的循环次数也在这里设置。
对Controller的理解, 仅仅在于增加Vuser的数量以及怎样增加。对“Windows Resources”这个指标要通过右键点击“Windows Resources”区域选择"Add measurements" 添加服务器。
对Anlysis有许多疑问。
1. 我工具栏中选择“Schedule Builder”中Vuser 什么时候启动, 我设置了10个Vuser同时启动,但是曲线显示在00:00:09分时只运行了8个Vuser, 00:00:12分时才运行剩下的2个Vuser. 为什么不行?
2. 而点击数又是我疑惑的一个地方。 这个点击数是指什么? 我完全没明白。
![](http://hi.csdn.net/attachment/201007/7/0_1278501403tU4U.gif)
3. Response Time显示各个事务的反应时间。 但是为什么我定义的"LoadPage"事务每一次的请求反馈都不一样,但是曲线确实显示为一条直线,非常费解。
![](http://hi.csdn.net/attachment/201007/7/0_127850205978fp.gif)
目前来看, loadrunner找不到我想找的数据, 暂停研究了。
开发做的测试程序:
程序原理: 将手机上的程序移植到PC上, 对关键业务进行查询。 查询类似于Push. 首先在客户端与服务器端建立连接,连接建立后服务器给客户端Push数据。 并不断开连接。
测试技术点:
部署程序到多个PC客户端,以便对服务器进行加压。登录到远程服务端winSrv2003或者Linux。有几个工具介绍一下:
PuTTY: 单个远程服务器进行登录。 非常好用。
XShell: 多个远程服务器进行登录。
局域网内多个PC端加压,怎样解决同步的问题。 我使用的是windows "任务计划程序"。 在特定的时间所有PC端同时执行测试程序。
"任务计划程序" 有一个at命令, 但是根据实验,发现不好用。 根本就不执行。 不同的系统默认的执行时间按有可能是今天也有可能是明天。 直接去附件中选择"任务计划程序"执行反而出现的问题比较少。
登录遇到的问题解决:
远程服务器桌面如果是直接关掉, 多了就会出现连接数达到最大限制的问题。这时候XP/2003系统使用mstsc /console 进行登录, win7使用mstsc /admin进行登录。区别的原因是win7上的程序升级了。
Linux 命令使用:
ifconfig:查看网卡信息
top:查看cpu内存等信息