Loadrunner学习笔记(一)
用户眼里的软件性能:又快又好,通常,衡量的指标有:1.响应时间2.吞吐量3.资源利用率4.点击数5.并发用户数。
软件人员眼里的软件性能:1.消除软件对空间和时间不必要的浪费,防止内存漏泄。2.时间空间换时间(比如Cache缓存、数据库的index等)3.时间换空间(比较少)
内存漏泄:属于软件设计的一种缺陷,该缺陷直接导致了程序在运行过程中无法释放不再需要的内存空间,从而造成内存资源浪费,严重的会造成无可用内存,系统崩溃。
性能测试属于系统测试,常用的性能测试方法有:1.负载测试2.压力测试3.并发测试4.基准测试(增加新模块时)5.稳定性测试6.可恢复测试。
1.性能测试到loadrunner的映射
(1)测试人员被loadrunner的Vuser代替,测试人员执行的操作以Vuser Script的方式固化下来。在loadrunner中,虚拟用户的实现原理是VU脚本+runner time setting。每个Vuser Script记录了用户的动作,并且包含一系列度量并记录服务器性能的函数。
(2)测试指挥官被Controller替代。Controller负责生成性能测试场景,管理和协调多个虚拟用户,同时联机监听系统各个节点的性能,收集数据提供给Analysis。
(3)Analysis会对数据进行整合,分析它们之间的关系,并以图表形式展现出来。
2.loadrunner的工作原理
性能测试人员操作运行Controller,启动性能测试。大量的虚拟用户被激活,和真实用户所做的一样,向被测系统发送请求,Controller通过monitor能够实时捕获系统所有层面,包括服务器、网路资源的性能数据,执行结果存放在数据库里,用户通过Analysis生成报告并进行测试结果分析。
3.loadrunner三大模块中的细节概念
(1)VU 虚拟用户产生器Vugen实际上是一套开发调试脚本的环境,它的任务是生成编译/解释成功的脚本。Loadrunner是基于协议的,提供了多种Vuser技术,每个Vuser类型对应一种网络协议结果模型,只有正确地选择loadrunner协议之后,才可以录制基于此协议的操作,并成功生成脚本,否则录制一无所获。另外关联是Vugen脚本开发中一个很重要的功能。所谓关联就是把脚本中某些写死的数据,转变成是撷取自服务器所送的、动态的、每次都不一样的数据。
(2)Controller 是整个性能测试的核心。“定义”(选择面向目标的场景和手工场景)——“执行”(多进程/多线程)——“评估” Controller将使用驱动程序mdrv运行Vuser。如果按进程方式运行每个Vuser,则对于Vuser实例,都将启动一个mdrv进程。多个mdrv进程会占用很大的内存空间及其他系统资源,这就限制了可以在任何一负载生成器上运行的Vuser的数量。如果选择线程方式,在默认情况下,Controller为每50个Vuser启动一个mdrv进程,每个Vuser都按线程进行,这些线程Vuser将共享一个父进程的内存段。这样节省了大量内存空间。但是线程方式会带来安全问题。多个线程共享内存空间会引起多个线程的同步问题。
(3)Analysis