打开controller来做场景设计。打开controller的时候一定要破解,否则打不开。
目的:想看看一个小时最多能发多少条帖子。看一下处理能力,或从没测过性能看一下发帖子这个模块性能如何,让你评估一下性能。
打开controller:已管理员身份打开
1、新建一个场景,选手工场景
场景分为2中场景,如下:
手工场景:我们一般选手工场景,就是lr做的所有事情都手工设置。
复选框行的内容是:使用百分比模式在脚本之间分配用户,如果加的脚本就一个脚本,这个选项就没有意义;多个脚本才有意义,如2个脚本,勾选后可设置他们分配到的用户数百分比,让他们压力不一样。我们这里先不勾选。
面向目标场景:先去定一个目标,如期望登录事物这个响应时间在2s中以内。用户数是500个。接下来用lr自动如分压,如每次加50个、100个。当加到300个时,发现响应时间超过2s了,lr才会减压,让他压力小点再去压。假设每次400个的时候响应时间超过2s,我们就认为目标未达到。整个施压的过程你是控制不了的。我们一般不用这个场景。
场景设计要做好的几件事,如下:
吞吐量:tps、hps、网络带宽都叫吞吐量。
throughput:吞吐量,也叫下载,不只是吞吐量的意思。
画压力曲线图这一块和你性能测试的目的、业务有关系。
添加监控是纯技术,如监控数据库、服务器。技术是死的。
下面两个就靠经验。
2、 画压力曲线图
整个Design页面就是画图的,做画图、参数、压力、监控等设计;Run这个页面是做监控的,一般是点了运行后,看一下运行指标的。
真实的项目应该是一个波浪线。
有时候平稳的去压可能没问题,我们要想把他压死,我们可以忽高忽低,大起大落
做一个比较真实的图。波浪线不一定要对称,要有增有降就可以,降到中间再上去。
2分钟之内增到50个用户;2分内降到60个,再加一个action,action类型选Stop 降;然后再持续5分钟时间,
如果上升到一个点的时候没有持续,直接下降,就会弹出混合警告提示了,提示为了避免不期望的异常发生,你应该在start与stop直接加一个持续。
画的图是2个因素决定的:时间、用户数
无非就是多长时间加一批用户,这一批用户是多少个。一个是压力的大小,一个是加压的频率。
加用户,一次不要太多,要不不好定位问题;加的频率是第一批用户跑稳定了再加下一批用户。
Run视图中,Hits/Second(每秒点击次数:页面上有28个资源,点击一次首页,产生28个hit,页面上图片和资源越多,点击一次产生的Hit就越高)
随着压力的增大Hits/Second数量应该越来越高的。所以最好这个数字趋于稳定的时候再加下一批用户。
所以最好间隔的时间稍微长一些,没必要很快,因为我们的目的不是把服务器压死,是想看看不同的压力下面的性能表现。
我们每次做性能测试,一般都在半个小时以上。时间短的话会有随意性。所以是不准确的,有时30分钟也不够,需要跑很多次才能给出一个比较合理的结果。
怎么停止呢,,我们立马停止就可以
得到的曲线图。重点关注的是前半段增压的曲线,在不同压力下的性能表现,去会报,要说在什么情况压力下系统是什么样的表现。
系统的表现:响应时间多少、吞吐量多少、资源利用率多少
3、监控
监控的3个性能指标只要监控一个就需要都监控,因为他们之间有依赖关系,比如就想监控响应时间,你压力很小的情况下,你的响应时间很短,压力没上去所以还要关注吞吐量和资源利用率。
再往后去还要有数据库的监控、代码的监控、中间价的监控、jvm内存等
怎么监控性能指标?
1)回到controller里面去。在Run选项卡中,默认的响应时间和吞吐量的监控都不用我们自己去添加。
下图中这3块不用管他。他会自动去监控。
下面资源利用率的监控,咱们现在所说的资源利用率主要指操作系统或操作系统所在服务器的资源利用率。所以咱们监控操作系统。
咱们怎么监控操作系统呢,操作系统监控,我们可以使用lr去监控。?
你要想用lr监控Linuxl,必须现在Linux中先安装一个远程监控的软件。
cpu利用率:这个数字越大,说明cpu越忙。
4、设置压力
1)接下来,我们该设置压力了,压力生成器,默认是本机。
用户数比较少,只有30个,用我自己的机器可以做压力机
如果现在有3000个用户,用我自己机器做压力机就不行了。因为会性能差,有很多地方会受到限制,如带宽受限、端口受限。
2)如果我想用别的机器做压力机,我们可以点如下操作进行设置。
lr中只有一个部件是可以跨平台:就是压力机。可以选Windows 也可以选Linux平台。
压力机准确的来说就是咱们的客户端。
选中刚添加的压力机,点Connect,进行连接该压力机。
连接成功后,会在页面右下角有个小天线的图标,这是压力机图标,状态变为Ready。
压的时候我可以选择用哪个机器去压,点下图中的下拉按钮就可以选择。
点脚本运行按钮,controller把脚本发给65这个机器,65这个机器来运行我们的脚本,去压服务器。
安装压力机:
1)咱们装lr的时候默认会把压力机给装上。我们是完全安装,vugen、controller等都装上了,实际上这几个控件直接是可以单独安装的。我们是可以给机器单独安装压力机的。
做压力机,要先把别的机器防火墙关掉。我们装的时候不选完整安装,选Load Gennerator,就可以只装压力机。
2)用别的机器做压力机只把Load Gennerator 拷给别人,而不是整个lr安装包,
把lr光盘打开,在附加的组件文件夹中,独立应用文件夹中可以看到这些组件。把右图中的压力机组件拷过去就可以了。
这是Windows的压力机。
在咱们网盘下载资料里有3个版本的压力机:Unix、Linux、Windows版
压谁是由我们的脚本决定的,脚本里面写的那个地址。
压力小就这么设置
5、设置参数
接下来我们开始设置参数,点下图中按钮。所有的设置最后以controller为准。Vugen设置的不一定算。
1)设置自动事务,事物,我们暂时设置下面两个,每个action、每个步骤是一个事物,其他默认。
2)如果我想登录一次跑一百次,在controller这里设置。如下图
我们这次的脚本不是按次数跑,就先设1次。
咱们这个脚本跑多少遍你知道吗?也就是能发多少个帖子你知道吗?
不知道,我们现在只知道会跑10分钟。看下图中
10分钟到底会发多少个帖子,取决于你发帖子消耗的时间。你发一次帖子,也就是这个action跑完花的时间越短发的帖子量就越多。
因为咱们这个脚本怎么跑的?只要时间没到,反复的去执行action。所以设置成1没问题。
3)为了减轻压力机的压力,设置只有出错才写日志。
4)思考时间,暂时选择忽略。没任何停顿时间,狂压
然后点OK,这就完了。
6、开始跑
出错了我们看看啥原因导致的。可能是刚才连不上报的错。
我们点一下错误数量,看看错误原因。
下面这出错了,这个不能不管,我们不是所有错误都不管,要看是什么错误。我们点stop,先暂停。
我们看一下这个错误,提示:没有足够的记录为这个参数
因为我们的用户数据化参数选择的是unique data。没有唯一的值可取了。所以就导致出错了。
然后看一下脚本,哪一块唯一的值
在这个发帖子里面,咱们看一下参数化的方式,如下图,我们选的是唯一。
这样选择的话跑2用户跑1次就完了。
把的unique,修改为下图的按顺序取值。。修改完后保存一下脚本。
然后我们再在controller中跑,有的可能刚保存完脚本后,更新慢,我们为了保险起见,可以跑之前先点一下这个按钮。刷新一下脚本
然后我们再在controller中跑,跑完后看结果分析