一、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. Python自然语言处理-系列一

    一:python基础,自然语言概念 from nltk.book import * 1,text1.concordance("monstrous")      用语索引 2,tex ...

  2. P3825 [NOI2017]游戏

    题目 P3825 [NOI2017]游戏 做法 \(x\)地图外的地图好做,模型:\((x,y)\)必须同时选\(x \rightarrow y,y^\prime \rightarrow x^\pri ...

  3. @MarkFan 口语练习录音 20140423 [风雨哈佛路.Homeless To Harvard口语录音]

    世界在转动,你只是一粒尘埃 没有你,世界照样在转 现实不会按照你的意识去改变的 一些人的需求 一些人的意志要比你更强 严酷的生活会让人不知所措 所以他们久久地困在挫败中 我们生气地抱怨,而对整体的形势 ...

  4. linux下查找文件或目录(which,whereis,locate,find)

    命令 查找对象 查找速度 备注   which 可执行文件  根据PATH变量的内容去寻找可执行文件  不同的PATH配置会有不一样的结果   whereis 程序名的搜索  根据数据库来寻找,速度快 ...

  5. 三、golang时间、流程控、函数

    一.本篇内容 1.string和strconv使用 2.go中的时间和日期类型 3.流程控制 4.函数讲解 二.string和strconv使用 1.  string.HasPrefix(s trin ...

  6. Go Mysql驱动

    Golang中MYSQL驱动 Mysql库https://github.com/go-sql-driver/mysql Go本身不提供具体数据库驱动,只提供驱动接口和管理. 各个数据库驱动需要第三方实 ...

  7. RedisDesktopManager连接不上redis的解决方法

    RedisDesktopManager是一款连接redis数据库的客户端. 背景:我是在自己机器上装的redis,使用的是虚拟机,系统是linux 版本是centeros-6.7 在使用这个连接red ...

  8. Exception in thread "main" java.util.concurrent.ExecutionException: org.apache.kafka.common.errors.TimeoutException: Expiring 1 record(s) for topic_test_1219-2: 30010 ms has passed since batch creatio

    代码如下 public static void producer1() throws ExecutionException, InterruptedException { Properties pro ...

  9. java中@Qualifier("string")是什么用法

    @Qualifier("XXX") Spring的Bean注入配置注解,该注解指定注入的Bean的名称,Spring框架使用byName方式寻找合格的bean,这样就消除了byTy ...

  10. AOP理解,待细看

    http://jinnianshilongnian.iteye.com/blog/1474325