loadrunner总结

1.性能测试包含了哪些测试(至少举出3种)

负载测试,压力测试,疲劳强度测试,大数据量测试,并发测试。

2.负载测试和压力测试的区别

性能测试: 是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。

负载测试:是一种性能测试,指数据在超负荷环境中运行,程序是否能够承担。

压力测试:是在一定的负荷条件下,对系统的稳定性进行测试,更有效地发现系统稳定性的隐患和系统在负载峰值的条件下功能隐患等

3.简述性能测试的步骤

1.分析产品结构,明确性能测试的需求,包括并发、极限、配置和指标等方面的性能要求,必要时基于LOAD测试的相同测略需同时考虑稳定性测试的需求。

2.根据需求分析应用场景和用户数据,细分用户行为和相关的数据流,确定测试点或测试接口,列示系统接口的可能瓶颈,一般是先主干接口再支线接口,并完成初步的测试用例设计。

(3.依据性能测试需求和确定的测试点进行测试组网设计,并明确不同组网方案的重要程度或优先级作为取舍评估的依据,必要时在前期产品设计中提出支持性能测试的可测试性设计方案和对测试工具的需求。)

4.完成性能测试用例设计、分类选择和依据用户行为分析设计测试规程,并准备好测试用例将用到的测试数据

5.确定采用的测试工具

6.录制和调试脚本,进行初验测试,以主干接口的可用性为主,根据测试结果分析性能瓶颈,通过迭代保证基本的指标等测试的环境。

7.执行脚本,迭代进行全面的性能测试,完成计划中的性能测试用例的执行。

8.分析测试结果,完成性能测试评估报告。

4.负载测试的流程

制定性能测试计划—>开发测试脚本—>设计测试场景—>执行测试场景—>监控测试场景—>分析测试结果

5. 什么时候可以开始执行性能测试?

 功能测试通过;一般需要进行性能测试的系统,都是用户量比较大、业务使用比较频繁、比较重要的功能模块。

6. LoadRunner由哪三个部件组成?

Virtual User Generator录制测试脚本,Controller生成负载测试,Analysis测试结果分析

7. LoadRunner的哪个部件可以模拟多用户并发下回放脚本?

  LoadRunner的Controller组件。

8.什么是集合点?设置集合点有什么意义?Loadrunner中设置集合点的函数是哪个?

   在性能测试过程中,需要模拟大量用户在同一时刻,访问系统并同时操作某一任务,可以通过配置集合点来实现,多个用户同时进行某操作;

   可以在服务器上创建密集的用户负载,使LoadRunner能够测试服务器在负载状态下的性能.(程序所能承载的最大用户数,以及超负荷下的性能)

   设置集合点函数:lr_rendezvous("Meeting");  // Meeting是集合点名称

9. 什么是场景?场景有哪些?如何设置场景?

   场景:执行脚本的环境配置,用于模拟用户实际业务操作;

LoadRunner中场景有手工场景和面向目标的场景。

设置场景:选择场景类型、设置运行时设置、模拟用户数、加减压方式、持续时间,配置负载生成

1.选择场景中需要的脚本
     2.选择为目标场景,还是指定的手工场景
     3.设置用户数、设置产生负载的设备
     4.设置执行策略

10. 为什么要创建参数?如何创建参数?

参数:在环境变化时必须时脚本具有环境变化的能力,就需要参数化(客户端发送到服务器端)比如登录界面
  1.确定要参数话的数据
  2.设定规则形式来取值

11. 什么是关联?请解释一下自动关联和手动关联的不同。

关联:很多构架用sessionid等方法标识不同任务和数据,应用脚本在每次运行时方式发送数据不完全相同,需要利用的机制对

录制的脚本进行处理,这种机制叫做关联(服务端发送到客户端)

12.哪个函数是用来截取虚拟用户脚本中的动态值?(手工关联)

web_reg_save_param()函数主要根据需要做关联的动态数据前面和后面的固定字符串来识别、提取动态数据,所以在做关联时,

需要找出动态数据的左、右边界字符串。

13.你如何调试LoadRunner脚本?
VuGen有两个选项帮助调试Vuser脚本。Run Step by Step命令和断点(breakpoints)。Option对话框中的调试设置(Debug setting)项,

可以确定在场景执行过程中执行轨迹范围。调试信息写在output窗口。可以用 lr_set_debug_messag函数在脚本中手工设置信息类型。

14.什么是逐步递增?你如何来设置?
Ramp up这个选项用于逐渐增加服务器的虚拟用户数或负载量。设置一个初始值而且可以在两个迭代之间设置一个值等待。设置Ramp up,

请到‘Scenario Scheduling Options’。

15. 以线程方式运行的虚拟用户有哪些优点?

VuGen提供了用多线程的便利。这使得在每个生成器上可以跑更多的虚拟用户。如果是以进程的方式跑虚拟用户,为每个用户加载相同的驱动程序到

内存中会占用了大量的内存。就限制了在单个生成器上能跑的虚拟用户数。如果按线程运行给定的所有虚拟用户数只是加载一个驱动程序实例到内存里。

16. 当你需要在出错时停止执行脚本,你怎么做?
lr_abort函数放弃虚拟用户脚本的执行。说明虚拟用户停止Action的执行,直接执行vuser_end然后结束执行。在出现错误情况下想手工放弃脚本的执行,

这个函数是有用的。用这个函数停止脚本时,Vuser被指定为“Stopped”状态。为了这个函数起作用,开始时候就不能选择Run-Time Settings中的

Continue on error选项。

17. 响应时间和吞吐量之间的关系是什么?(两者相辅相成)
吞吐量:每秒钟从服务器接收到的字节数。吞吐量的峰值和最大响应时间差不多在同时出现。

吞吐率:单位时间内传送数据的平均速率

18.说明一下如何在LR中配置系统计数器?
通过Web资源监视器,利用这些监控器可以分析web服务器的吞吐量、点击率、每秒http响应数以及每秒下载的页面数。

19.标准日志和扩展日志的区别是什么?
Standard Log Option:选择标准日志时,就会在脚本执行过程中,生成函数的标准日志并且输出信息,供调试用。大型负载测试场景不用启用这个选项。
扩展日志包括警告和其他信息。大型负载测试不要启用该选项。用扩展日志选项,可以指定哪些附加信息需要加到扩展日志中

20.解释以下函数及他们的不同之处。

lr_debug_message 函数在指定的消息级别

// 处于活动状态时发送一条调试消息。如果指定的

// 消息级别未处于活动状态,则不发出消息。

Lr_output_message 要发送不是特定错误消息的特殊通知,

Lr_error_message  函数将错误消息发送到// 输出窗口和 Vuser日志文件

Lrd_stmt lrd_exec 函数执行 lrd_stmt设置的 SQL 语句。
Lrd_fetch  函数从结果集中提取后续若干行
result set. 
函数准备用于
// 通过光标输出字符串(通常为 SQL语句)
// 的下一结果集。对于 CtLib,它发出 ct_result
// 命令,并且在 ODBC中它运行用于当前数据库

21.action和init、end除了迭代的区别还有其他吗?

在init、end中不能使用集合点、事务等, init、end只执行一次。

22.生成WEB性能图有什么意义?大概描述即可。

可以很直观的看到,在负载下系统的运行情况以及各种资源的使用情况,可以对系统的性能瓶颈定位、性能调优等起到想要的辅助作用。

23.性能瓶颈分析方法?

分析的方法:
整个系统架构分析,系统响应时间消耗,利用图表分析
查看事务响应时间,通过事务摘要图分析事务响应时间,那个消耗最大(通过小用户量和大用户量的响应时间分析,查看那个事务响应时间最高),确定哪部分功能是性能的瓶颈,分析window resource图表,查看cpu
使用下列计数器标识cpu瓶颈
Processor\ Interrupts/sec
Processor\ % Processor Time
Process(process)\ % Processor Time
System\ Processor Queue Length

• 查找瓶颈时按以下顺序,由易到难。
服务器硬件瓶颈-〉网络瓶颈(对局域网,可以不考虑)-〉服务器操作系统瓶颈(参数配置)-〉中间件瓶颈(参数配置,数据库,web服务器等)-〉应用瓶颈(SQL语句、数据库设计、业务逻辑、算法等)

对一些要求低的,我们分析到应用系统在将来大的负载压力(并发用户数、数据量)下,系统的硬件瓶颈在哪儿就够了。

24. 如何理解TPS?
答:TPS主要还是体现服务器对当前录制的事务的处理速度快慢。TPS高并不代表性能好。
TPS 是Transactions Per Second 的 缩 写,也就是事务数/ 秒。

2. 1.并发数

与服务器进行交互的在线用户数量

跟服务器有交互,提交,点击等,并且是在线

有数据传向服务器才行

2.点击率:

每秒发送的HTTP请求的数量

点击率越大对server的压力也就越大

3.请求响应时间

从client端发出请求到得到响应的整个时间

一般包括网络响应时间+server的响应时间。

C----->S

<------

network

4.事物请求响应时间

        完成这个事务所用的时间

        这个是性能测试中重点关注的指标

5.吞吐率

       单位时间在网络上传输的数据量

        这个是衡量网络性能的主要指标

6.吞吐量

在网络上传输的数据总量

C<------S

7.TPS

每秒钟系统能够处理事务的数量、

8.资源利用率

对不同资源的使用程度,比如服务器的CPU,内存等都需要在性能测试时监视

25..面向目标类型

1.如果你知道可运行的各种业务流程的 Vuser总数,则可以使用虚拟用户目标类型、

2.如果你知道服务器的稳定性,可以使用每秒点击次数,每分钟页面数或每秒事务数的目标类型、

3.如果你知道锁需要完成事务的响应事件,则可以使用事务响应目标类型。例如你希望你的客户在5秒

内登录到电子商务站点,请将可接受的最长事务响应事件指定为5秒,并查看实际可以处理的Vuser数

复习:

1.QTP:实例flight,四则运算。

2.loadrunner:实例webtours

3.QC安装环境:oracle

loadrunner总结的更多相关文章

  1. 【云知道】LoadRunner 录制问题集锦

    关键词:各路录制小白汇集于此 虽然知道君对录制不感冒,但总是看到扎堆的人说这些问题,忍不住要站出来了. 百度虽好,帮助了很多小白,但关键是百度并没有排除错误内容,经过历史的几年传播,错的都快变对的了, ...

  2. 【云知道】究极秒杀Loadrunner乱码

    Loadrunner乱码一击必杀 之前有介绍一些简单的针对Loadrunner脚本或者调试输出内容中乱码的一些设置,但是并没能完全解决一些小伙伴的问题,因为那些设置实在能力有限,还是有很多做不到的事情 ...

  3. LoadRunner函数百科叒叒叒更新了!

    首先要沉痛通知每周四固定栏目[学霸君]由于小编外派公干,本周暂停. 那么这周就由云层君来顶替了,当然要要说下自己做的内容啦,DuangDuang! <LoadRunner函数百科>更新通知 ...

  4. Loadrunner Http Json接口压力测试

    前天接到了一个测试任务,要求测试一下ES(elsticsearch)在不同并发下的查询效率.如图: 业务场景是在客户端根据具体车牌查询相关车辆信息,结果返回前10条记录. 从图中可以看到,接口的请求参 ...

  5. LoadRunner免费公开课,惠普金牌讲师亲授

    [开课时间]:9月13日 下午2:00—4:00(暂定)[活动费用]:免费[主办单位]:慧都学院[课程形式]:网络在线公开课 LoadRunner简介惠普软件测试解决方案LoadRunner测试实例答 ...

  6. loadrunner性能测试---添加windows多台压力机

    添加多台压力机 1.前置条件 1)保证压力机上都安装了loadrunner Agent,并启动,状态栏中会有小卫星.       2)添加的压力机与controller所在机器是否在同一个网段,建议关 ...

  7. LoadRunner安装+汉化+破解

    因为工作需要要用到LoadRunner,找个好几个版本,换了两台电脑(公司的win7折腾了好久装不上去),耗时两天终于搞定了,分享给需要的小伙伴们,避免大家踩更多的坑~ 一.安装前的准备 Win10系 ...

  8. Loadrunner时间函数、用时间生成订单编号例子

    Loadrunner中取时间函数.用时间函数生成订单编号例子: <如要转载,请注明网络来源及作者:Cheers_Lee> 问题的提出: (1)有时候在Loadrunner中用C语言设计脚本 ...

  9. 通过LoadRunner - Analyze详细分析页面元素请求

    众所周知LoadRunner录制某个链接,包括动态请求与js.css.jpg等静态请求. web_custom_request("动态请求", "URL=http://w ...

  10. [LoadRunner]LR11安装或破解时报错的解决方法

    背景:在性能测试项目上,需要安装到LR11进行性能测试,而在安装时会出现安装运行环境失败,安装文件缺失等问题.现总结了上述问题,并给出以下解决方法: 问题1:安装LoadRunner时出现“计算机缺少 ...

随机推荐

  1. 12-numpy笔记-莫烦基本操作2

    代码 import numpy as np A = np.arange(3,15) print('-1-') print(A) print('-2-') print(A[3]) A = np.aran ...

  2. 莫烦TensorFlow_11 MNIST优化使用CNN

    import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_data #number 1 to 10 d ...

  3. 【Spring 整合篇】整合SpringMVC+Mybatis(一)

    首先,创建Maven Project,packaging为war,修改pom.xml. <properties> <!-- JDK版本 --> <java.version ...

  4. window.open()与window.showModuleDialog()

    一.window.showModalDialog()     模态对话框. (只支持IE浏览器)window.showModelessDialog()   非模态对话框. 基本语法:vReturnVa ...

  5. 迪杰斯特拉算法完整代码(Java)

    package com.rao.graph; import java.util.*; /** * @author Srao * @className Dijkstra * @date 2019/12/ ...

  6. [LeetCode] 674. Longest Continuous Increasing Subsequence 最长连续递增序列

    Given an unsorted array of integers, find the length of longest continuous increasing subsequence. E ...

  7. [LeetCode] 321. Create Maximum Number 创建最大数

    Given two arrays of length m and n with digits 0-9 representing two numbers. Create the maximum numb ...

  8. Java程序进行调优及监控

    Java 应用性能的瓶颈点非常多,比如磁盘.内存.网络 I/O 等系统因素,Java 应用代码,JVM GC,数据库,缓存等.笔者根据个人经验,将 Java 性能优化分为 4 个层级:应用层.数据库层 ...

  9. linux查看每秒的网络流量

    import os import time cmd = 'ifconfig | grep "RX bytes" | tail -1 | awk -F":" \' ...

  10. springmvc全局异常处理ControllerAdvice区分返回响应类型是页面还是JSON

    思路: 加一个拦截器,在preHandler中取得HandlerMethod,判断其方法的返回类型,以及方法的注解和类的注解. 如果返回是json,收到异常则返回默认的异常包装类型. 如果返回是页面, ...