LoadRunner学习记录-基础篇

  • Post author:
  • Post category:其他



LoadRunner学习记录-基础篇

由于几年时间未从事测试工作,这个工具好久没有使用了,最近因为工作关系要进行性能测试,又回过头来开始使用此工具。很欣喜的是这方面的资料越来越多,HP提供的社区版版本也很给力。所以勾起了自己想对LoadRunner有一个体系性的学习欲望。主要以官方的文档为蓝本和主线,记录自己的学习过程。绝大多数只是基本都是对帮助文档的翻译,只不过我不会直接复制粘贴,我会通过我的理解来进行说明或者解释。希望对有这方面兴趣的朋友有帮助,并能一起交流学习。


程序安装

1.在HP官网注册一个用户

2.下载版本:HP_LoadRunner_12.50_Community_Edition_HPLR_1250_Community_Edition(1G左右)

3.通过你个人的免费注册用户下载的版本为带有50个虚拟用户的永久使用授权,这个很好

4.安装包解压后运行setup.exe直接安装程序即可

a.LoadRunner最新版本下载地址:

https://saas.hpe.com/download/


b.安装软件前请退出杀毒软件、安全卫士等安全类系统工具,要不会导致安装过程中一些写注册表或者其他操作不能顺利进行。

c.支持win10企业版系统

d.在最新版本中,HP从下载站点,到安装包,安装界面及桌面的快捷方式(如图1),都进行了各大的改观,大大的增加了使用其新版本的渴望,当然由于和之前版本不一致性,开始使用时之前一些熟悉的功能一时半会找不到对应点地方了,其实最关键是还送一个50个用户的长期使用授权,像我们这些有强迫症的程序员们,再也不用搞破解了,不用觉的哪里不完美了,给HP一个由衷的赞。


组件构成

HP LoadRunner是一个统筹,实际进行性能测试时我们使用的是不同的组件来完成相关工作。主要由3个组件构成,各自的说明如下表1所述:


表1

LoadRunner组件说明表

组件 中文含义 功能说明
Virtual User Generator(VuGen) 虚拟用户脚本 用来录制或者编写所测试业务流程的脚本组件。如图2
Controller 控制器 用于管理和运行所测试的脚本、管理和运行虚拟用户、系统资源监控、实时显示测试结果的一个控制台性质的功能组件。如图3
Analysis 分析器 对测试结果进行综合分析的平台,包含各种报告,或者自定义生成报告。


名词解释

在使用LoadRunner之前我们需要知道一些性能相关的知识点,或者称为名词,官方文档上给出了一些这个工具本身相关的一些名词,我个人再加入了一些与性能测试工作相关的,具体如表2所述:


表2

性能测试名词释义表

名词 中文含义 说明
Scenario 场景 对应我们测试时需要准备的某个具体测试案例。比如用户登录场景、用户注册场景等,并且这个场景中我们定义了什么样的压力下系统要达到什么样的性能指标。性能工作计划时候,我们就需要确定好具体的性能测试场景。
Virtual Users(Vusers) 虚拟用户 Loadrunner通过单个线程或者进程方式来模拟一个用户,这样我们就可以告别在进行并发测试时,实际多个人同时喊“123”点登录的悲剧时代。很显然,由程序模拟首先数量上可以成百上千,而且能得到我们管控。但这也存在问题,就是在一台机器上模拟100个用户,到底和100个不同电脑上真正的人行为产生的效果是否一致。这个还很难比较。如果从纯技术角度说。没关系,因为我们测试的过程最终都是模拟的网络请求到服务器。至于这个请求是什么鬼发起的,关系不大。loadrunner也提供了一个ip地址欺骗功能,就是在一台机器上可以虚拟一个VLAN,提供一组不同的IP地址,这样可能会让测试结果更真实点。这里又让我想起有次做项目,甲方是政府,帮我们找了一个学校机房。搞了200多台机器。然后每个上面安装上loadrunner,一个机器上模拟3000个用户。不知道现在大神们更高级玩法是什么呢?
Vuser Script 虚拟用户脚本 其实叫性能测试脚本可能更通俗易懂点。就是利用脚本生成器录制的测试脚本,或者自己编写的性能测试脚本。也可以理解成性能测试代码。
Protocol 协议 这个太大了。不懂网络的,很难一两句说的通。性能测试我们一般模拟客户端向服务端发起请求。所以在测试前,我们需要了解清楚我们所测试系统的技术架构是什么样子的。假设我们测试的是一个web站点,那我们模拟的是浏览器端,则与后台服务器交互的就是http协议。所以我们录制时就需要选择http协议;假设我们测试的系统是一个C/S架构,则客户端和后台服务一般可能通过Socket方式通讯,则我们录制的时候就要选择WinSocket协议。所以录制时选择什么协议取决于我们所测试系统的通讯原理。
Transaction 事务 和数据库中的事务概念一样。我们将1个或者多个不同的事情划分成一个事务,这样就可以把这个事务作为一个原子对象,来进行统计或者分析。比如在测试一个web站点过程中,我们把打开首页作为一个事务,把用户注册作为事务,这样我们就可以统计每个事务的运行耗时、响应时间。假设我们需要统计打开首页且用户注册作为一个整体统计,那我们就可以把这两个事情放到一个事务。事务在loadrunner中的函数都是一个开始函数,和一个结束函数。
Script footprint Defined by the quantities of the various resources that are required on a load generator in order to execute the Vuser script. Typical resources include memory, CPU power, and disk space.(没掌握,保持本意)
性能测试 性能测试工作是建立在软件产业的一个广发使用而诞生出来的系统性测试工作。不管是互联网系统还是信息管理系统,在随着计算机技术的飞速的发展,人们不能对基本的功能要求满足,还要求系统要快,要稳定。而这个



又是一个相对而言的概念,抛开其他因素,可能用户少的时候快,用户多了系统就慢了。同时系统慢可能还受程序员的水平、系统架构、服务器及网络等硬件设施影响。所以需要在系统投入生产前,模拟并搭建测试环境进行性能测试工作。来评估出系统在不同用户层次的表现能力,以及发现系统在压力运行过程中是否存在编码上诸如内存泄漏,线程死锁等问题。
性能测试关键指标 衡量系统性能的常见指标有:响应时间(服务器端、网络端、客户端等)、吞吐量、资源利用率(cpu、内存、磁盘IO等)、点击数(web服务)、并发用户数。更详细的解释我就略过了。
性能测试方法 性能测试是一个统称,有的人也叫压力测试、负载测试、冒烟测试等等。人云亦云就好。我个人理解性能测试是一个统称概念,我们做性能测试工作涉及到如下几方面的工作:负载测试、压力测试、并发测试、稳定性测试等。其实这几个概念的边界也不是太明确。负载测试一般是我们知道这个系统使用用户情况的一个预期,然后我们再给这个实际使用人数扩大20%,通过测试观察系统的性能指标到底满足不满足预期。告诉不明真相的客户说:你们未来多招50%的人,我们的系统也不慢。而压力测试就是指不断增加负载看系统在那个点报错,挂掉。是为了发现问题,一般是为了折磨程序员。当然自己开发,自己这样测的人,就是自虐,但这样的开发注定是牛逼的开发。并发测试和稳定性测试相对比较简单,同时这几种方法又是相互交错的,比如测试并发时,其实就是对系统的一个施压过程。这个大家做下简单理解就可以。
计数器 性能测试过程中,小白的做法是打开任务管理器或者使用linux的top命令观察系统的CUP,内存,网络情况。但如果让你提供测试阶段的平均值、峰值、详细数据呢?所以对这块内容需要深入。对每个硬件而言,操作系统都提供了更详细的性能分析指标,我们成为性能计数器,windows下可命令提示符下运行:perfmon来查看。这样,我们对内存的跟踪就可以有多个维度,比如可用内存变化数、内存页读写情况、缓存清空等等。具体每个指标可参考我很早的另外一篇文章。


几张附图

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述



版权声明:本文为cafardhaibin原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。