版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2021/7/241 性能测试技术交流2021/7/242主要内容一、性能测试的基本概念二、性能测试流程三、LoadRunner操作介绍四、测试结果分析2021/7/243一、 性能测试的基本概念 2021/7/244什么是软件性能n用户视觉的软件性能: 软件性能就是软件对用户操作的响应时间。n管理员视角的软件性能: 软件性能首先表现在系统的响应时间,其次还会关心系统状态的相关信息。n开发视角的软件性能: 最关注的是使性能表现不佳的因素和由于大量用户访问引起的软件故障,也就是我们所说的性能瓶颈。 2021/7/245性能测试的常用方法n1 性能测试n2 负载测试n3 压力测试2021/7/24
2、6测试方法基本概念n性能测试 通过模拟生产运行的业务压力量和使用场景组合,测试系统的性能是否满足生产性能要求。 特点: 这种方法的主要目的是验证系统是否具有系统宣称具有的能力。2021/7/247测试方法基本概念n负载测试 通过在被测系统上不断增加压力,直到性能指标。如通过量,响应时间,资源利用率等。 特点: 这种方法的主要目的是找到系统处理能力的极限, 用这种方法可以比较系统调优前后的性能差异。2021/7/248测试方法基本概念n压力测试 压力测试是指系统在一定饱和状态下(CPU:75%,内存:70%),例如CPU,内存等在饱和使用情况下,系统能够处理的会话能力,以及系统是否出现错误。 其
3、中,JVM的可用内存,数据库的连接数,数据库服务器的CPU利用率等都可以做为压力的依据。 特点: 这种方法的主要目的是检查系统处于压力情况下,应用的表现,一般用于测试系统的稳定性。2021/7/249软件性能测试的几个主要术语n响应时间:应用系统从请求发出开始到客户端收到最后一个字节数据所消耗的时间n并发用户数:登录到系统中进行业务操作的总用户数。服务器实际承受的压力不只取决于业务并发用户数,还取决于用户的业务场景。n吞吐量: 指单位时间内系统处理的客户请求的数量,直接体现了软件系统的性能承受能力。n性能计数器:描述服务器或操作系统性能的一些数据指标。n思考时间:指的是用户在进行操作时,每个请
4、求之间的间隔时间,因为用户在使用系统时,不大可能持续不断地发出请求。 2021/7/2410 二、性能测试流程2021/7/2411设计测试计划n在性能测试正式开展之前,需要针对本次性能测试设计测试方案。n测试方案的内容主要包括:n项目背景n性能测试需求n测试环境信息n性能测试场景n测试实施计划n参与人员以及职责2021/7/2412测试环境、工具、数据准备n测试环境准备 我们的测试环境与客户的实际环境是有较大的不同,测试环境的网络、计算机硬件软件都无法做到和客户完全相一致。软件在客户那功能不正常,也许就是因为客户安装了某个不知名的其他软件造成的。因此压力测试需要遵循一些基本的原则:2021/
5、7/2413搭建测试环境的基本原则n要满足软件运行的最低要求。n选用与被测软件相一致的操作系统和软件平台。n营造相对独立的测试环境。n无病毒的环境。2021/7/2414测试环境建议 因为在测试过程中比较重视测试环境的“真实性”,所以在客户的实际环境执行测试,需注意以下几点: 1)尽可能地降低对客户现有业务地影响,挑选在夜间 或者在客户业务不繁忙的时段进行性能。 2)测试过程中会产生大量数据或因为系统故障导致数 据被破坏,要有很好地备份和恢复过程。 3)若是在公司内部进行性能测试,尽量避免一台服务 器上装多个应用,尽量少的人使用被测试服务器, 这样可以减少其它因素给系统性能带来的影响。2021
6、/7/2415数据的准备 在做性能测试时比较容易忽略数据的重要性,实际上后台数据库中数据量的多少会影响压力测试的结果。比如我们测试一个查询操作,数据库表里就几行记录,这样的测试是失效的。因为即使该数据表没有建任何索引话,一个全表扫描也花不了什么时间,如果有大量数据的话,索引覆盖的问题都能暴露出来。 因此在做压力测试时要清楚数据库中数据量的大小,具体需要多少数据量可以根据客户数据库中的数据数量进行模拟,否则测试结果会与客户实际情况有一定的差距。2021/7/2416测试脚本的录制、编写与调试制作脚本如下步骤:n脚本录制,录制过程中插入事务,插入集合点;n查找动态数据(关联);n参数替换;n添加检
7、查点;n单脚本回放;1)脚本加压回放;2021/7/2417 三、LoadRunner操作介绍2021/7/2418LoadRunner常用组件nVirtual User Generator(虚拟用户脚本生成器):用于捕获最终用户业务流程和创建自动性能测试脚本(也称为虚拟用户脚本)。 nController: 用于组织、驱动、管理和监控负载测试 n负载生成器:用于通过运行虚拟用户生成负载nAnalysis: 有助于您查看、分析和比较性能结果2021/7/2419LoadRunner相关术语n1)场景场景 场景是一种文件,用于根据性能要求定义在每一个测试会话运行期间发生的事件。n2)VuserV
8、user 在场景中,LoadRunner用虚拟用户或Vuser代替实际用户,Vuser 模拟实际用户的操作来使用应用程序。一个场景可以包含几十、几百甚至几千个Vuser。n3)Vuser3)Vuser脚本脚本 Vuser脚本用于描述Vuser在场景中执行的操作。n4)事务事务 要度量服务器的性能,需要定义事务。事务表示要度量的最终用户业务流程,建议录制的时候插入事务而不要等录制完后再插入事务。n5)5)集合点集合点 为了能够模拟所有虚拟用户同时并发,需要在业务操作前添加集合点,当全部用户到达该集合点时,释放所有用户,注意,只能向脚本Action部分添加集合点。2021/7/2420利用vuge
9、n制作脚本nLR用Vuser(虚拟用户)来代替实际的用户。Vuser执行的操作是用Vuser脚本来描述的。nVuser脚本生成器(也称Vugen)是LR用于开发Vuser脚本的主要工具。Vugen通过录制客户端与服务器之间的活动来录制脚本。例如:在数据库应用程序中,测试工具的脚本生成器(Vugen)会监控数据库的客户端,并跟踪发送到数据库服务器和从数据库服务器接收的所有请求。n当Vuser与服务器直接通信时,不需要在用户界面中耗费系统资源,这样就可以在一个工作站中同时运行大量Vuser,进而可以使用很少的测试计算机来模拟非常大的服务器负载。2021/7/2421选择协议nC/S(Client/
10、Server)结构的win32应用程序一般可以选用winsocket协议。nB/S(Browser/Server)结构的通过浏览器浏览数据的一般选用Web(Http/Html)协议。n1基于浏览器的应用程序推荐使用HTML-based Scriptn2 不是基于浏览器的应用程序推荐使用 URL-based Script。n3 如果基于浏览器的应用程序中包含了 JavaScript 并且该脚本向服务器产生n了请求,比如DataGrid 的分页按钮等,也要使用URL-based 方式录制n4 基于浏览器的应用程序中使用了 HTTPS 安全协议,使用URL-based2021/7/2422 2021
11、/7/2423Winsocket协议2021/7/2424Http协议2021/7/2425Vuser脚本的三个部分n这里我们简单讲讲Vuser脚本的三个部分: 创建的每个Vuser脚本都至少包含三部分:vuser_init、一个或多个 Actions及vuser_end。录制期间,可以选择脚本中VuGen要插入已录制函数的部分。通常情况下,可以将登录到服务器的活动录制到 vuser_init部分中、将客户端活动录制到 Actions 部分中,并将注销过程录制到vuser_end部分中。n运行多次迭代脚本,只有脚本的Actions部分被重复,而Vuser_init和Vuser_end部分只运行
12、一次。n如果我们测试的只是登录操作,需要登录操作循环被执行。那么我们也可以将登录操作录制在action中。2021/7/2426工具条录制脚本的时候会产生如下图所示的工具条:2021/7/2427录制脚本建议 录制脚本的时候,会使用LR的默认设置,把脚本录制到Vuser_init中,此时我们会等录制完成后,再将脚本剪切粘贴到actions和Vuser_end部分中去。这是个不可取的做法,比较好的做法是在录制的过程中,就应该通过上图所示的工具条选择我们录制的操作需要录制到脚本的哪个部分。2021/7/2428脚本设计常用技巧-参数化n参数化参数化:录制完脚本后点击工具栏上的2021/7/2429
13、参数化n此时参数列表中没有任何参数,点击New新建一个参数,假如我要参数化用户名,参数取名为UserName2021/7/2430参数化设置2021/7/2431参数化设置nSelect next row有以下几种选择:nSequential:按顺序一行一行的读取数据。nRandom: 随机取值nUnique: 取唯一的值,这样需要保证数据表中有足够的数据。nUpdate value one有以下几种选择:nEach Iteration 每一次迭代nEach Occurrence 每一次出现nOnce 每次取一样的值2021/7/2432参数化 在参数列表中建立好需要的参数后,在脚本中,框选
14、要参数的字符,右击鼠标,选择Replace With a Parameter,找到所需要的参数,点击OK,参数化就完 成了。2021/7/2433脚本设计常用技巧-关联 关联关联: 我们的系统经常会有些动态的数据,比如新增记录之前系统会给一个流水号,我们的脚本在录制的时候捕获了这个号码,但是每次新增流水号肯定不同,拿脚本中的原始流水号去新增记录,肯定违反数据表的主键约束 。如果我们在receive的包中找到那个流水号,并把它作为参数给send包,那么问题就迎刃而解了,这就是关联(其实也是一种参数化) 关联是脚本设计中相对麻烦的工作,关联成功与否直接影响脚本执行成功,若实在找不出关联的地方,则可
15、与开发人员咨询哪个地方返回了需要关联的数据。2021/7/2434脚本设计常用技巧-关联nLoadRunner有自动关联功能,能自动捕捉脚本中需要关联的数 据,但得把ToolsRecording OptionsCorrelationEnable correlation during Recording选上,或者脚本录制完成后,运 行一遍,然后点击 则会找了脚本中需要关联的数据,可以点击Correlate完成关 联,但自动关联操作往往不能完全按照用户的意图来完成,而且 自动关联公对web和数据库应用等有限的协议有效,如果要对其 他的类型的应用的脚本进行关联操作,就须使用手工关联操作方 式。 20
16、21/7/2435脚本设计常用技巧-关联n关联步骤:1) 准备一个固定的操作步骤(包括输入数据等都要求相同)2) 在LoadRunner的VU Generator中使用该步骤录制形成脚本, 并保存脚本。3) 重复上一步动作,使用相同的步骤录制一个新的脚本并保存。4) 执行期间命令ToolsCompare with vusers,在弹出来的对话 框中选择步骤(2)所保存的脚本。5) 在WinDiff的比较窗口中查看两个脚本的不同之处,并对每个 脚本的不同之处进行分析,使用关联函数对需要关联的数据 进行关联。n关联常用函数:Web_reg_save,从web服务器返回的信息找到批定的内容并将其保存
17、到参数中。2021/7/2436Vuser脚本的两种查看方式Vuser脚本的两种查看方式:Script View和Tree View。我们通过View菜单条Script View和Tree View 来切换。基于图标的Tree View和基于文本的script View有各自的作用。注意:n在Tree View模式下点击Start Record 是会出错的。只能在Script View下来录制脚本。n如果你在查看data.ws文件,那么Vugen将不允许你切换到Tree View模式下。2021/7/2437Tree View模式查看返回数据2021/7/2438Tree View模式查看返回
18、数据n从图中可以看出,Tree View模式下可以看到每个语句相关的Request和Reponse 数据,Reponse数据按照Object的结构关系用树型表达,击击每个Object可以看到Object的HTML码。2021/7/2439如何调试脚本n录制好脚本,进行参数化以及关联后,我们还得确定脚本是能正常运行的,是可以模拟用户操作的,我们脚本很少能录制好后,参数化好脚本后回放时就没有错误的,出错时我们需要调试,LR的编译器提供调试脚本的功能。我们可以调试和优化我们的脚本。2021/7/2440如何调试脚本n脚本调试先后在单脚本回放下和加压回放下两种情况下进行。也就是在vugen中和在con
19、troller中进行。在controller中主要看在加压状态下参数是否能正确地传递与赋值,动态数据是否能正确地获得。2021/7/2441如何设计场景场景场景:场景可以理解为单个脚本在某种条件或某种环境 运行时的环境特点,即脚本的运行环境。 比如可以在场景中设置需要监控的服务器及相关计数器,多少并发用户,虚拟用户产生方式,集合点策略,以及Run-time setting(运行时设置),场景的执行时间,这些如何设置需要根据实际情况进行,场景的设置过程可以简单理解为模拟真实环境的过程。 场景实则是一种.lrs文件,当场景设计完成后,可以将该场景保存下来,供以后使用,这样就不用重复设计场景了。 2
20、021/7/2442如何新建场景打开Controller方法:在VU-Gen(脚本生成器)中,ToolsCreate ControllerScenario2021/7/2443添加Load Generator Machinesn点击“Generators”按钮,出现Load Generators窗口n点击Connect,如果状态变成ready,则表示连接正常,如果状态为Failed该机器不能连接,检查原因。2021/7/2444添加虚拟用户数2021/7/2445如何确定并发用户数n估算并发用户数公式nC=nL/Tn估算峰值并发用户数nC C+3C (根号)其中:C是平均的并发用户数;C是并发
21、用户峰值;n是 login session的数量;L是login session的平均长度;T是考察的时间段长度。2021/7/2446估算并发用户数n假如有一个OA系统,系统有3000个用户,平均每天有400个用户要访问该系统,对一个典型用户来说,一天之内从登录到退出系统的平均时间为4小时,而在一天的时间内,用户只在8小时内使用该系统,求峰值并发数为多少?n由上述两个公式可以得到:nC=400*4/8=200nC=200+3200=2422021/7/2447设置Schedule产生虚拟用户nSchedule里面主要用来设置任务计划。n点击 按钮进入Schedule设置窗口2021/7/24
22、48设置Schedule运行虚拟用户2021/7/2449设置Schedule退出虚拟用户2021/7/2450设置场景运行时间n点击2021/7/2451设置集合点策略2021/7/2452设置集合点策略n点击Policy按钮,进入策略设置窗口2021/7/2453添加性能计数器-windowsn在添加性能计数器之前需要具有服务器的系统管理员权限,以便获取机器资源。nWindows:假设服务器为windows,IP为:4,n具有管理员权限的用户名和密码为administrator/abcn命令如下:n1)运行cmdn2) net use 4 /
23、user:administratorn3)按下enter,会提示输入密码n4)输入密码abcn5)按下enter,提示命令操作成功,则完成连接。2021/7/2454添加性能计数器n点击Add按钮,输入服务器IP2021/7/2455执行测试n运行场景前需要注意的事项:每个组的虚拟用户数、迭代次数、think time、参数化时的取值间隔、确认虚拟机的LoadRunner Agent Service打开n运行前使Generator机器处理Ready状态n确认被监测的机器已经连接上去,并且添加自己所需要的计数器n运行之前一定要确认系统中压力点的数据量是多少n确认以上都设置正确时再点击 运行测试场
24、景2021/7/2456 四、 测试结果分析 2021/7/2457内存分析方法n内存分析方法用于判断系统有无遇到内存瓶颈,是否需要通过增加内存手段来提高系统性能表现。n1)首先查看Memory/Available Mbytes指标 该计数值是描述系统可用内存的直接指标,如果该指标的数据比较小,系统可能出现了内存方面的问题。n2)操作系统经常会用磁盘交换的方式提高系统可用的内存量或提高内存的使用率,我们可以关注page/sec,Page/read/sec和page fault/sec的值,这三个值直接反映了操作系统进行了磁盘交换的频度。 Page/sec:表明由于硬件页面错误而从磁盘取出的页面
25、数,或由于页面错误而写入磁盘以释放工作集空间的页面数。 Page Read/sec:页的硬故障,Page/sec的子集,该值比较大测表示是磁盘读而不是缓存读。阈值为5。 Page Faults/sec:每秒由处理器处理的失效页的全部数量。当一个进程需要的代码或数据不在它的工作区(它的空间在物理内存中)中时,发生失效页。 2021/7/2458内存分析方法n如果Page/sec的计数持续高于几百,很可能会有内存方面的问题产生,但Page/sec的值很大不一定表明内存有问题,而可能是使用内存映射文件程序所致。Page Faults/sec说明了每秒发生页面失效的次数,页面失效得越多,则说明操作系统向内存中读取的次数越多。n3)根据磁盘相关计数器综合分析,如果Page Read/sec很低,同时%Disk Time和Average Disk Queue Length的值很高,则可能有磁盘瓶颈,但是,如果队列长度增加的同时Page Read/sec并未降低,则是由于内存不足。2021/7/2459处理器分析方法1)%Processor Time:如果该值持续超过85%,表明瓶颈是CPU。可以考虑增加一个处理器或换一个更
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度年福建省高校教师资格证之高等教育法规押题练习试卷B卷附答案
- 2023年航空辅助动力系统资金申请报告
- 三年级数学计算题专项练习汇编及答案集锦
- FOB条件下国际货物买卖协议模板
- 2025年人教版高考历史试题及答案指导
- 2024年度模具采购协议精简样本
- 2024年度矿权出让及转让专项协议
- 2024年矿泉水采购正式协议样本
- 2024年服务协议增补协议样本
- 2024年医疗机构医生劳动协议模板
- 部编版2024-2025学年语文五年级上册第4单元-单元测试卷(含答案)
- 2024年教务管理岗位劳动协议范本版
- 缤纷舞曲-《青年友谊圆舞曲》教学课件-2024-2025学年人音版(简谱)(2024)七年级音乐上册
- 2024年危重患者护理管理制度范本(五篇)
- 2024-2025学年陕西省西安交大附中高二(上)第一次月考数学试卷(含答案)
- 期中 (试题) -2024-2025学年人教PEP版英语六年级上册
- 大学与文化传承智慧树知到期末考试答案章节答案2024年浙江大学
- 2024春形势与政策课件当前国际形势与中国原则立场
- 2024年舟山继续教育公需课考试题库
- 一年级拼音默写表
- 2024届高考英语阅读理解命题说题课件
评论
0/150
提交评论