项目简介:像百度知道系统类似的系统性能测试,是公司的自己产品。

  对最近这个系统的性能测试进行总结下:

  系统功能介绍:

  前台用户可以根据自己的需要对不同的区域提问,提问包括匿名和登陆用户提问

  后台不同区域的管理员对所提的问题进行回答、删除和审核问题,超级管理员对所有区域信息能够进行统计。

  测试工具:

  ● MI公司的压力测试工具LoadRunner

  ● 版本:8.1

  ● License:10000

  ● 协议:HTTP/WEB协议

  根据需求设计性能测试方案及场景

  场景简单设计如下:

  1. 前台发帖

  ● 打开首页面;

  ● 记录进入首页面所用时间

  ● 输入用户名和口令登陆;

  ● 记录登陆所用的时间;

  ● 编辑帖子并发送;

  ● 记录发帖所用时间;

  ● 重复3-6步15分钟。

  2. 后台回答问题

  ● 打开后台登陆页面;

  ● 记录进入页面所用时间;

  ● 输入用户名和口令登陆;

  ● 记录登陆所用的时间;

  ● 发送回答问题信息;

  ● 记录回答问题所用时间;

  ● 重复3-6步15分钟。

3. 后台审核问题

  ……

  4. 后台删除问题

  ……

  

硬件环境:

  负载均衡和HA,局域网(压力机和服务器在同一交换机上)

  性能指标:

  没有明确的性能指标,重点监控服务器不出现500错误,以及CPU、内存、IO等资源使用情况,以及并发数、TPS、成功率等根据测试情况进行调优,满意为止。(和别的web性能测试提出明确指标如响应时间等有所不同)

  测试脚本修改原则:

  前台发帖:

  1. 注释思考时间

  2. 前台要求对不同的区域进行发帖提问,所以要数据库中存在相应的区域,并允许同一IP多次提交提问

  A. 由于所存在区域如500个,而前台要求并发提问为2000并发,这样一一对应关系会使参数不足,可以做参数化的时候,对所存在的区域信息进行copy。参数选择的设置为unique、once,这样才能使一个提问者对于一个区域。

  B. 对问题的要求,要求每次提不同的问题,最简单的方法是做参数时选择unique number,update value on选择once,数据已经足够大了,不会担心参数不够而报错。

  3. 要求开发注释掉验证码,或万能验证码

  后台回帖:

  1. 注释思考时间

  2. 后台允许多个IE登陆

  A. 由于所存在区域如500个,要求登陆并发回帖为2000并发,这样一一对应关系会使参数不足,可以做参数化的时候,对所存在的区域信息进行copy。参数选择的设置为unique、once。注意密码和用户名要完全匹配。

  B. 对同一个问题运行多次回答。

  C. 加检查点如: web_global_verification("Text=欢迎您",LAST);

  D.对一个问题对应一个用户注意参数化的设置。

执行测试并分析调优:

  测试中报错的信息解决:

  1. Failed to connect to server "域名:80": [10065] No Route to Host

  解决:

  这种错误信息有两种情况,一是交换机堵塞,一是服务器网络堵塞或者CPU无法响应(网卡中断处理不过来了)。

  从服务器端检查下iptables 是否开启,看看 /proc/sys/net/ipv4/ip_conntrack_max 是多少。

  2. TTP Status-Code=500 (Internal Server Error)

  解决:

  A. 这个问题,开发人员从程序和环境进行调优了。

  B. 通过抓包发现有大量的sql语句重复执行,建议优化sql。

  C. 优化JVM。机器配置:4G的内存,32个线程并发能力

  -Xmx3800m -Xms3800m -Xmn2g -Xss128k -XX:+UseParallelGC -XX:ParallelGCThreads=20

  3. HTTP Status-Code=504 (Gateway Time-out)

  解决:

  502 bad Gateway  服务器作为网关或者代理时,为了完成请求访问下一个服务器,但该服务器返回了非法的应答。

  504Gateway Timeout  由作为代理或网关的服务器使用,表示不能及时地从远程服务器获得应答。

  解决:可以启动多个tomcat服务,一个tomcat服务可能支撑不了那么大的并发。(一般情况下像IBM高配的服务一个tomcat能支持2000并发吧。)(只能让部署环境的同事帮忙调整,我们没这权利啊。)

  4. Step download timeout (120 seconds) has expired when downloading non-resource(s)

  解决:

  可以修改配置参数(tomcat的),也可以程序上进行调整超时时间。

  如    <Connector port="8080"

  maxThreads="150" minSpareThreads="25" maxSpareThreads="75"

  enableLookups="false" redirectPort="8443" acceptCount="100"

  debug="0" connectionTimeout="20000"

  disableUploadTimeout="true" />

  当然了也可以调整LR的配置但最好不这样。

  5. Abnormal termination, caused by mdrv process termination

  解决:

  大胆尝试了修改了LR中的D:\Program Files\Mercury\LoadRunner\dat\protocols 中的http.lrp信息,在[Vugen]下面新加一条MaxThreadPerProcess=要设置的vuser数量 。

  测试结果:

  ● 前台发帖:

  场景设计:执行2000并发匿名对不同的区发帖,每15秒上50个用户,2000个用户全部到达后,持续执行10分钟。

并发数 提问响应时间 成功率% 服务器每秒处理的请求数 吞吐量(Mbps)
2000        

  ● 后台回帖:

  场景设计:执行400并发对同一区不同的帖子进行回复,每10秒上20用户,400个用户全部到达后,持续执行10分钟。

并发数 回帖响应时间 成功率% 服务器每秒处理的请求数 吞吐量(Mbps)
400        

  注:响应时间的单位为:秒

  这个测试结果比较满意,还在进一步调优。

LoadRunner做性能测试 从设计到分析执行的更多相关文章

  1. Loadrunner做性能测试的主要步骤

    Loadrunner做性能测试的主要步骤: Loadrunner将性能测试过程分为计划测试.测试设计.创建VU脚本.创建测试场景.运行测试场景和分析结果6个步骤. 1) 计划测试:主要进行测试需求的收 ...

  2. [转][LoadRunner]LR性能测试结果样例分析

    LR性能测试结果样例分析 测试结果分析 LoadRunner性能测试结果分析是个复杂的过程,通常可以从结果摘要.并发数.平均事务响应时间.每秒点击数.业务成功率.系统资源.网页细分图.Web服务器资源 ...

  3. [LoadRunner]LR性能测试结果样例分析

    R性能测试结果样例分析 测试结果分析 LoadRunner性能测试结果分析是个复杂的过程,通常可以从结果摘要.并发数.平均事务响应时间.每秒点击数.业务成功率.系统资源.网页细分图.Web服务器资源. ...

  4. 使用Loadrunner进行性能测试

    一.确定性能测试的范围.要求.配置.工具等 明确测试的系统: 本文档主要指的是web应用. 明确测试要求: 用户提出性能测试,例如,网站首页页面响应时间在3S之内,主要的业务操作时间小于10s,支持3 ...

  5. 转:LR性能测试结果样例分析 测试结果分析

    LoadRunner性能测试结果分析是个复杂的过程,通常可以从结果摘要.并发数.平均事务响应时间.每秒点击数.业务成功率.系统资源.网页细分图.Web服务器资源.数据库服务器资源等几个方面分析,如图1 ...

  6. LR性能测试结果样例分析

    http://www.cnblogs.com/hyzhou/archive/2011/11/16/2251316.html   测试结果分析 LoadRunner性能测试结果分析是个复杂的过程,通常可 ...

  7. (转)LR性能测试结果样例分析

    原文作者:猥琐丶欲为 传送门:http://www.cnblogs.com/hyzhou/archive/2011/11/16/2251316.html 测试结果分析 LoadRunner性能测试结果 ...

  8. LoadRunner 技巧之 脚本设计

    LoadRunner 技巧之 脚本设计 在做性能测试时,我们可能会遇到各种不同的业务需求与用户行为,在一个系统或网站中,每个用户的操作都不完全一样.我们如何来模拟这此用户的行为?经验与能力有限,我这里 ...

  9. 使用Jmeter做性能测试

    上周刚刚做完项目的性能测试.今天整理和总结一下,随便分享给大家. 首页呢,测试前,我们是有明确的性能指标的,而且测试环境和数据都已准备好,业务分析.场景分析大家根据自己的项目系统进行分析设计,我们选用 ...

随机推荐

  1. 解决hibernate向mysql插入中文乱码问题(转)

    转载自:http://blog.csdn.net/peditable/article/details/7047573 1.首先需要修改MySQL数据库的配置文件my.ini,此文件放在mysql根目录 ...

  2. [转]mysql中的字符串的拼接

    字符串的拼接 1,Mysql 在Java.C#等编程语言中字符串的拼接可以通过加号“+”来实现,比如:"1"+"3"."a"+"b ...

  3. [转]PLSQL Developer软件使用大全

    原文地址:https://www.cnblogs.com/lhrbest/p/6493218.html 第一章 PLSQL Developer特性 PL/SQL Developer是一个集成开发环境, ...

  4. C#使用ICSharpCode.SharpZipLib压缩后进行web批量下载文件

    参考:http://blog.csdn.net/kongwei521/article/details/51167903#

  5. laravel服务l队列资料整理

    Laravel 队列系列 —— 基于 Redis 实现任务队列的基本配置和使用 1.概述 在Web开发中,我们经常会遇到需要批量处理任务的场景,比如群发邮件.秒杀资格获取等,我们将这些耗时或者高并发的 ...

  6. <聪明的投资者(第四版点评)>读书笔记

    书在这里 企业的内在价值并不依赖于其股票价格 投资者的最大问题甚至最可怕的敌人,很可能就是他们自己 投资者不能指望通过买任何新股或“热门”股,而获得优于平均水平的收益.从长远来看,这几乎无疑会产生相反 ...

  7. Linux环境下NodeJS和MongoDB的安装配置

     一.NodeJS的安装配置 #进入安装目录cd /usr/local/ #删除原有安装rm -rf noderm -rf node-v0.10.29-linux-x64 #解压压缩包tar -zxv ...

  8. python计算机视觉项目实践

    这是一个贝叶斯模型的计算机视觉小项目.希望大家通过这个简单的项目知道一般的计算机视觉项目是怎样操作的. 我先讲题目放在这里希望有兴趣的童鞋花一周的时间思考并用python实现.一周以后我来发布我的详细 ...

  9. UI设计,使用 线框图(页面示意图或页面布局图)

    在进行页面框架设计的时候,尝试画个 线框图(页面示意图或页面布局图)吧.

  10. C++ 拷贝构造函数之const关键字

    class Complex { public: //拷贝构造函数1 Complex(const Complex &c); //拷贝构造函数2 Complex(Complex &c); ...