一、Controller的基本工作原理:通过1、2、3设置来模拟用户的操作,收集出4的各种信息

二、场景设置一般步骤

  • 1、新建场景(Controller)
  • 2、添加脚本
  • 3、设置Schedule(设置场景运行的策略,主要设置Globle Schedule 这一项)
  • 4、添加压力机(可以指定多台windows或者linux压力机产生压力)
    1)添加压力机方法:Scenario - Load Generators
    2)添加的压力机于Controller所在机器在同一网段,把防火墙关了

  • 5、设置run time setting
    1)以Controller中的选项为主

  • 6、运行观察

三、分析思路:

  • 1、分析原则:由外到内,由表到里,层层深入。拆分问题,隔离问题(好比学习一样,把时
    间段分成一片一片的,把零散时间灵活应用起来)。
  • 2、 对于一个应用系统,性能开始出现了下降,最直观最直接的表象就是系统的响应时间,
    如果响应时间变长,则系统响应时间就是分析性能的起点。
  • 3、 任何一个复杂的系统都可以分为网络和服务器两部分。
  • 4、 性能测试不是一蹴而就的,而是贯穿整个性能测试的流程。
  • 5、 性能分析调优是一个不断推理不断验证的过程,不断试错,不断改正,打开自己的思维。

四、重点指标:

  • 1、TPS(每秒通过事物数,直接反应服务器的处理能力,可理解为地铁进站口刷卡机)
  • 2、平均事物响应时间(最直观的指标,可作为突破口)
  • 3、每秒连接数(可初步判断是否需要调优连接数配置)
  • 4、点击数(直接反应请求数、客户端、网络,点击数出现问题一般为脚本或者网络出现了问题)

五、分析思路模型:

1 、重点关注Transaction Summary (事物概要)模块
(1)平均响应时间:当标准差比较小的时候,选择事物的平均响应时间。
(2)90%响应时间:当标准差比较大的时候,去掉最高最低,取90%响应时间更有
分析价值。
*(3)Std:标准差比较小,则相对比较平稳,标准差比较大时,则表明浮动比较大

分析Web Tour中的Transaction Summary (事物概要),回想前面的内容,最直观的指标就是“平均响应时间”,可把它作为突破口

由图可以看出,check的平均响应时间是最大的,要相对的比较,可以把check作为分析的突破口。

其他事物可以不用分析,根据木桶原理,补最大的缺口。

2、HTTP Responses Summary(HTTP返回状态概要)

(1)HTTP Responses Summary主要统计服务器的返回状态
(2)由图可看出返回都是200的状态码,而且总数8789与Statistics Summary(标准概要)
中的值基本一致,说明大部分请求都是成功的。

** 注意:**
说非200的状态码不一定是错的,需要根据具体业务来分析,比如302、304状
态码也是很正常的,不会影响性能测试结果。但是返回500的状态码的话就是错误的,
说明服务器内部错误。

六、分析过程 重点、重点、、、

接触LR的分析过程:

1、首先来分析running Vusers这项,双击打开

分析:
首先要看坐标图,X轴代表时间,Y轴一般代表指标,这里就是代表模拟用户数。由图可以看出,模拟用户数慢慢增长,然后平稳一段时间,最后再慢慢下降,这是一个合理的过程。假如出现红线那样的坐标图,用户数急速下降,那么很可能就是服务器down掉了。

2、 Error statistics(错误描述统计)

分析:
能进行到这一步说明脚本运行是没问题的了(比如检查点不对这些因素就可以排除掉了)。

最后两行有Faied to connect server 明显可以看出是连接服务器失败了;有两行是timeout提示,这个出现的次数不多,可以不管。

如果要去掉的话可以在Controller中Run-time-Setting设置,把perferences中的HTTP-request connect timeout(sec)、HTTP-request receive timeout(sec)和Step download timeout(sec)的值调大一点。

前面两行初步判断可能是关联出了问题,关联抓不到,可能是服务器返回失败。

得出初步结论:

  • (1)连接服务器失败,遭到服务器拒绝,可能是系统出现瓶颈无法及时处理请求
  • (2)关联抓不到,可能是服务器返回失败
  • (3)timeout提示一般可以不管,如果要去掉的话可以在Controller中Run-time-Setting设置

3 、Error per Second(每秒错误数)

  • 每秒错误数图是对每秒出现的错误进行统计,数值越小越好。
  • 2-7min过程中错误数明显增加,可以判断系统在这个时间段开始不稳定。

4、Average Transaction Response Time(平均事物响应时间)

每秒内事物执行所用的时间

由图可以看出,到3s后,事物的平均响应时间突然下降。在这里可以大胆地推测,是不是因为服务器非常好,处理事物的能力非常强,所以事物执行的时间很少。

但是联想到上面的每秒错误数的图,在一段时间内每秒错误数都是差不多平稳的,所以说服务器处理事物能力非常好这个结论经不起推敲。

也有可能是处理能力差或者出现大量的连接错误、服务器出现down机等,前面说到,任何一个复杂的系统都可以分为服务器和网络,所以说也有可能是网络的原因。

结论:
(1)服务器出现拒绝连接、出现大量错误或者是服务器down机了
(2)也有可能是网络连接的问题

5、 TPS(每秒通过事物数)

TPS是考查系统性能的一个重要指标,值越高,说明系统处理能力越强

可以看出来,整体的TPS不是很高,说明服务器处理能力有待提高,后续要把TPS提升

6 、Hits per Second(每秒点击数)

虚拟用户每秒向Web服务器提交的Http请求数

总体来看没有啥问题,还是可以。2-5min过程中出现了一些波动,每秒点击数是服务端侧的,

那就应该是脚本或者网络的问题,从前面的分析得知,脚本是没问题的,那就基本可以判断出现波动是因为网络问题导致的。

7、Connections per Second(每秒连接数)

每秒连接数就是每秒中打开的TCP/IP连接数,当连接数到达稳定的时候而事物响应时间增大时,
添加连接数可以使系统性能得到提高。好比一个池塘放水,多开几条沟水会放得越快。

每秒连接数统计新建的连接数和关闭的连接数,可以了解每秒对服务器产生连接的数量,

图中可以看出每秒连接数都是比较低的,可以适当增加连接数来提高系统性能。

七、性能测试流程

过程分析:
(1)性能需求点获取

  • 根据客户的需求由客户方提出
  • 根据历史数据分析
  • 参考历史项目或者其他同行业的项目
  • 业内通用规则
  • 确实没有数据,那就根据自己来,然后一边分析

(2)测试点的提取,常放在客户常用的、重点的模块和功能上

  • 用户常用功能,比如登录
  • 数据流转向复杂或频繁的地方
  • 发生频率高的地方,比如搜索,提交订单,下单结账。
  • 关键程度高的(比如产品经理认为绝对不能出现问题的地方,登录、下单等)
  • 资源占用非常严重的
  • 关键的接口

(3)测试环境

  • 最好能和线上保持一致
  • 如果不能那就等比的放大或缩小
  • 软件版本应该一致

(4)测试数据

  • 铺底数据的准备:是空库还是有数据量。数据量的选择参考线上的数据量进行
    等比的放大或缩小。
  • 最好的数据来源于线上的真实数据,因为分布合理
  • 如果涉及到保密的数据,注意数据的脱密处理

(5)测试过程

  • 性能测试时一个需要不断改进的过程,每一次尽量做得更好,多做一点点以前
    没想到的东西,然后不断积累总结,然后你会发现自己对性能测试有了更深的
    理解

(6)响应时间预估

  • 线上监控系统得知
  • 业界统一参考标准:2 - 5 - 8

(7)TPS预估

  • 系统的性能由TPS决定,跟并发用户数没有多大关系。系统最大的TPS是一定
    的,就好比池塘里装的水是有限的。但是并发用户数不一定,可以通过减小思
    考时间来增大并发用户数。

  • 新系统:没有历史数据参考,只能通过业务部门来评估
  • 旧系统:最好通过日志分析来得出
  • 对于上线的系统,可以选取高峰时刻,在五分钟或者十分钟内,某个交易的最
    大值,按照单位时间内完成的笔数计算书TPS,即业务笔数/单位时间

Loadrunner-场景设置以及监控结果分析的更多相关文章

  1. LoadRunner场景设置

    创建负载测试场景场景目标:模拟10家旅行社同时登陆.搜索航班.购买机票.查看航班路线并退出打开Controller并创建一个新场景1.打开HP LoadRunner2.打开Controller在Loa ...

  2. LoadRunner的场景设置

    loadrunner场景设置的方法: 1.逐步增加用户数,分多次去运行场景.比如:第一次运行50并发,第二次运行100并发…… 2.针对同一个脚本设置多个组,使用组策略(点击Edit Schedule ...

  3. loadrunner场景之集合点设置技巧

    在loadrunner的虚拟用户中,术语concurrent(并发)和simultaneous(同时)存在一些区别,concurrent 是指虚拟场景中参于运行的虚拟用户. 而simultaneous ...

  4. LR工具使用之场景设置

    LR工具使用之场景设置 一.操作步骤 1.运行loadrunner,进入运行负载测试控件:

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

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

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

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

  7. LR场景设置里的各参数解释

    1.Start Vuser ep1: Strat 100 Vusers :2 every 00:00:15(HH:MM:SS) 解释: 场景总共要跑100个虚拟用户,每15秒启动2个虚拟用户Vuser ...

  8. web性能监控与分析

    注:原文为:andyguo: <web性能监控与分析> 性能测试需要使用不同的工具,结合系统日志,监控服务器.应用等方面的多项指标.以下阐述监控指标.监控工具.瓶颈分析. 服务端监控指标 ...

  9. Jmeter场景设置与监听

    目录 Jmeter场景设置 场景运行 Jmeter测试监控 Samples:取样器运行次数(提交了多少笔业务). Jmeter场景设置 场景的概念: 场景是用来尽量真实模拟用户操作的工作单元,场景设计 ...

随机推荐

  1. cocos2dx打飞机项目笔记六:GameScene类和碰撞检测 boundingbox

    GameScene类虽然是占用游戏最多时间的类,但是里面的东西不是很多,最重要的就是碰撞检测了,碰撞检测代码如下: void GameScene::detectionCrash() { CCArray ...

  2. iis和apache共享80端口

    Windows server 2003服务器上安装有默认 IIS 6和Apache两个服务器,IIS运行的一个.net程序,apache运行php程序,现在想让它们同时都能通过80端口访问,设置起来还 ...

  3. Linux下解压分包文件zip(zip/z01/z02)

    分包压缩的zip文件不能被7z解压,且这种格式是Windows才能创建出来,在Linux下不会以这种方式去压包.下面是在Linux下处理这种文件的做法: 方法一: cat xx.z01 xx.zip ...

  4. java格式化输出 printf 例子

    import java.util.Date; public class Printf { public static void main(String[] args) { // %s表示输出字符串,也 ...

  5. 【P2564】生日礼物(单调队列)

    这个题看上去状态比较多,实际上由于题目的输出需要,又因为是一个线性的结构,所以我们可以有一些操作. 这么想,如果我们有了一个满足条件的区间,此时我们缩减左端点,然后判断此时是否还是满足,满足就继续缩减 ...

  6. Jboss remote getshell (JMXInvokerServlet) vc版

    #include "stdafx.h" #include <Windows.h> #include <stdio.h> #include <winht ...

  7. ios点击事件失效

    当使用委托给一个元素添加click事件时,如果事件是委托到 document 或 body 上,并且委托的元素是默认不可点击的(如 div, span 等),此时 click 事件会失效. 解决办法有 ...

  8. 使用Navicat进行数据库自动备份

    今天经历一次数据库丢库事件,顿时觉得定时备份数据库很重要. 但是每天自己手动备份实在是太麻烦了,于是乎,想到用计划任务进行每天定时自动备份. 发现Navicat自带就有备份  还可以直接计划任务,贼方 ...

  9. hibernate报错org.hibernate.HibernateException: No CurrentSessionContext configured!

    org.hibernate.HibernateException: No CurrentSessionContext configured! at org.hibernate.internal.Ses ...

  10. spring boot: 线程池ThreadPoolTaskExecutor, 多线程

    由于项目里需要用到线程池来提高处理速度,记录一下spring的taskExecutor执行器来实现线程池. ThreadPoolTaskExecutor的配置在网上找了很多解释没找到,看了下Threa ...