




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、0性能测试培训:测试工具张开翼 2011-05-091性能测试培训:测试工具张开翼 2011-05-092u 讲座大纲3在之前的讲座,已经介绍了什么是性能测试、如何设计性能测试。本次培训介绍测试工具即用什么来实现性能测试。 广义来说,性能测试工具是指性能测试过程中使用到的所有工具。可以分为:监视工具和驱动工具。监视工具是指在执行测试过程中,获得被测对象性能参数的工具。驱动工具是指能够录制和生成脚本、设置和部署场景、产生并发用户和向系统施加持续压力的工具。性能性能监视器监视器 Windows 性能监视器是一个 Microsoft 管理控制台 (MMC) 管理单元,它结合了性能日志和警报、服务器性
2、能审查程序和系统监视器的功能。 性能监视器提供的图形界面用于自定义数据收集器集和事件跟踪会话。监视每个单独应用程序和进程,以评估其占用的可用资源量。实现原理:操作系统底层驱动实现组成:监视部分(系统监视器)监视部分(系统监视器)和和数据收集部分(计数器日志)数据收集部分(计数器日志)启动:运行启动:运行perfmon5监视部分:(系统监视器)配置方法:监视对象/显示方式/显示类别图表中的红色竖线在不断向右移动,它表示图表的更新过程。监视的缺点是:监视周期只有1分40秒时长,并且数据不能连续输出到文件中。不能做后续分析。数据收集部分:(计数器日志)配置方法:添加目标/添加路径/日志文件/运行方式
3、优点:可以设定采样频率,指定时长或者手工控制采样时长不间断地采集性能数据,并且可以多种格式存储数据,满足不同的需求,便于事后分析。6可以通过编写程序来访问所有的可以通过编写程序来访问所有的Windows性能计数器。性能计数器。方法方法1:直接访问注册表性能计数器信息。通过注册表函数,如RegOpenKeyEx、RegQueryvalueEx、RegCloseKey等。值得注意的是,这里虽然使用的是注册表函数,但性能数据并不存储在注册表数据库中。方法方法2:利用性能数据帮助器(PDH, Performance Data Helper) API (Pdh.dll)来访问性能计数器信息。详细研究参考
4、:http:/ PerfMonitor,可以方便快捷地收集性能数据。工具参数:工具参数:Non-hatled clock Cycles无暂停时钟周期无暂停时钟周期Retried Instructions重试指令重试指令Cycles per Instructions(CPI)表示每条计算机指令执行所需的时钟周期Instructions per Cycles (IPC)CPU每一时钟周期内所执行的指令多少Bus Clock Cycles总线时钟周期总线时钟周期UOPS Per Cycles表示每个时钟周期的表示每个时钟周期的UOPS数以上共以上共18个参数个参数8工具原理:Windows 事件跟踪
5、 (ETW) 是操作系统提供的一个高速通用的跟踪工具,收集系统范围的数据并分析所有资源(CPU、磁盘、网络和内存,使用内核中实现的缓冲和日志记录机制,提供对用户模式应用程序和内核模式设备驱动程序引发的事件的跟踪机制。日志记录机制使用处理器的缓冲区,由异步写线程将这些缓冲区写入磁盘。9驱动程序与应用程序间的信息交互。驱动程序用以访问底层硬件,应用程序实现人机交互,驱动程序和应用程序之间需要实现相应的信息交互,实现信息读取和控制。IRP: I/O 请求包(I/O Request Packets)。上层应用程序与底层驱动程序通信时,应用程序会发出I/O请求,操作系统将相应的I/O请求转换成相应的IR
6、P,不同的IRP会根据类型被分派到不同的派遣例程中进行处理。函数包括以下API函数; 相应的API函数能够激发驱动程序的消息。接口接口API函数函数 驱动程序的中驱动程序的中IRP对应功能对应功能CreateFileIRP_MJ_CREATE用于打开驱动程序CloseHandleIRP_MJ_CLOSE关闭驱动程序ReadFileIRP_MJ_READ用于从驱动程序中读取数据WriteFileIRP_MJ_WRITE用以往驱动程序中写入数据DeviceIoControlIRP_MJ_DEVICE_CONTROL通过定义各种 ITL_CODE来实现应用程序与驱动程序间的通讯函数,并可以传递各种参
7、数和数据10Process ExplorerProcess Explorer 是一款免费的增强型任务管理器。它能让使用者了是一款免费的增强型任务管理器。它能让使用者了解看不到的在后台执行的处理程序解看不到的在后台执行的处理程序,可以使用它方便地管理你的程序进程可以使用它方便地管理你的程序进程。 Process Explorer能监视,挂起,重启,强行终止任何程序,包括系统级别的不允许随便终止的关键进程和十分隐蔽的顽固木马。 除此之外,它还详尽地显示计算机信息: CPU使用,虚拟内存,物理内存,I/O使用,网络使用,磁盘使用情况,可以显示一个程序调用了哪些动态链接库DLL,句柄,模块,系统进程。
8、以目录树的方式查看进程之间的归属关系,可以对进程进行调试。可以查看进程的路径,以及公司,版本等详细信息。11Process Explorer 的显示有两个子窗口所组成,窗口上方会显示出当前活跃的程序进程,包括它们的详细描述,窗口下方则会显示出通过资源管理器模式运行的应用程序的相关信息,以及它们所调用的DLL和打开的句柄。工具优点:1、不仅可以检查被测程序本身,还可以通过线程查看程序调用的DLL和有数据交互的其他程序。有助于故障定位和资源消耗分析。2、CPU使用率历史的波形图,绿色部分的纵坐标是当时的内核线程用户线程CPU占用总和,下面的红色部分则专门用来警示内核线程的CPU占用。若有系统进程占
9、用CPU就显示红色或红多绿少,需要警惕硬件或驱动有问题了。例如:Realtek某网卡驱动有问题,Interrupts和DPCs两进程(外设中断请求相关)持续占用CPU,系统进程占用CPU就显示红色;如果上下翻页或快速移动鼠标时CPU飙升,红色部分占了大半,推测显卡或芯片组的驱动有问题了。12NetLimiter工具介绍:网络流量控制软件。通过它,您可以直接来控制每个程序对Internet的访问以及流量分配情况。1、可以精确统计每个进程的带宽资源占用,包括实时和历史统计。2、通过限速功能,模拟某些带宽要求的测试场景。工具原理:Netlimiter安装的时候是从最底层的硬件驱动安装。意味着Netl
10、imiter计流量的时候是以从驱动层抓取的数据包为依据。 提示:历史统计部分,从工具安装并启动后生效。13LoadRunner,是一种预测系统行为和性能的负载测试工具。通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题。测试对象:目前主要是应用在B/S架构的性能测试。通过LoadRunner执行压力测试,当有500个虚拟用户在并发执行业务时,对服务端施加的压力和500个实际客户施加的压力是相同的。Loadrunner14性能测试工具LoadRunner包含以下部件:u虚拟用户脚本生成器(Virtual User Generator)捕获最终用户业务流程和创建自动性能测试脚本,
11、即我们在以后说的产生测试脚本u压力产生器(Player)压力产生器用于根据压力调度系统的命令,产生实际的负载u用户代理(Agent)协调不同负载机上虚拟用户,产生步调一致的虚拟用户u压力调度和监控系统(Conductor)压力调度工具可以根据用户的场景要求,设置不同的Vu数量等 监控系统主要是用于对数据库、服务器的性能计数器等的监控u压力结果分析工具(Analysis)压力结果分析工具 主要是将获取的性能计数器的信息,生成相应的分析图LR-组成15LR-结构图16LR-工具特性-概念在LoadRunner的脚本编写中,有两个重要的概念:事务、思考时间事务是LoadRunner度量度量系统性能指
12、标性能指标的唯一手段。通常事务时间所反映的是一个操作过程的响应时间。Vuser 思考时间模拟实际用户在不同操作之间等待的时间。测量与计算测量与计算每秒运行事务数=并发用户/(响应时间+思考时间)服务器吞吐量 =并发用户* 单个事务吞吐量* 响应时间/(响应时间+思考时间) 举例来说,模拟1,000个真正用户使用2秒响应时间和20秒思考时间情况,服务器吞吐量:单个事务吞吐量x 1000 x 2 / ( 2 + 20 ) = 91 x 单个事务吞吐量17X轴:并发用户数Y轴:思考响应时间Z轴:每秒运行事务数以三维图显示 “每秒运行事务数”与“并发用户数 ” 和“每个事务的思考响应时间“的关系。请分
13、析在什么情况下, “每秒运行事务”为?18模块工作原理:u虚拟用户脚本生成器 代理(Proxy)是客户端和服务器端之间的中介人,LoadRunner就是通过代理方式截获客户端和服务器之间交互的数据流。虚拟用户通过脚本控制,发出无图形界面的应用程序接口调用。LR-虚拟用户脚本生成器 客户端服务端业务客户端服务端代理解析业务脚本19LR-工具特性-参数化 对Vuser脚本进行参数化的好处:1、减小脚本的大小2、提供了使用不同的脚本的值执行脚本的能力参数化涉及两个任务:1、用参数替换Vuser脚本的常量值2、为参数设置属性和数据源在Loadrunner录制脚本及执行的过程中,经常会用到变量参数化来进
14、行一些不同组合及唯一性值的设定。例如论坛会员登录,100个用户同时登录,登录的用户名应该都是唯一的。基于脚本视图中创建参数。选择要参数化的字符,右键菜单“替换新参数”或“使用已经存在的参数替换”。配置参数名称、参数类型、参数初始值。方法1.通过参数属性向导完成参数配置。方法2.Loadrunner允许利用参数化从已经存在的数据库中导入数据。20LR-压力产生器 虚拟用户,通过执行脚本完成事务。LoadRunner 提供了多种 Vuser 技术,通过这些技术可以在使用不同类型的客户端/ 服务器体系结构时生成服务器负载。Loadrunner controller使用驱动程序mdrv (多线程驱动进
15、程(Multi-threaded Driver Process)运行Vuser。用户可以在controller的run-time setting中选择Vuser的运行方式, 是多进程方式or多线程方式。以线程方式来运行虚拟用户: “单行/多行脚本” 决定系统启动的进程数的多少。假设并发用户设置为30,如果是单行30个用户,系统只需启动一个进程;假设并发用户设置为30,如果是多行(40行),每行一个用户,系统就需要启动40个进程;以进程方式来运行虚拟用户:进程数是一定的,就是并发用户的总数。21进程方式和线程方式的优缺点:按照进程方式运行:每个用户都将启动一个mdrv进程,多个mdrv进程会占用
16、大量内存及其他系统资源,这就限制了可以在任一负载生成器上运行的并发用户数的数量,因为负载机的资源(内存及其他系统资源)是有限的。按照线程方式运行:在默认情况下,controller为每50个用户仅启动一个mdrv进程,而每个用户都按线程方式来运行,这些线程用户将共享父进程的内存段,这就节省了大量内存空间,从而可以在一个负载生成器上运行更多的用户。同一个测试场景,用线程并发就会出现超时失败或报错,而用进程并发就没错。原因:线程的资源是从进程资源中分配出来的,因此同一个进程中的多个线程会有共享的内存空间,假设a线程要用资源就必须等待b线程释放,而b线程也在等待其他资源释放才能继续,这样就会出现这个
17、问题。22LR-用户代理 用户代理是运行在负载机上的进程,该进程与产生负载压力的进程或是线程协作,接受调度系统的命令,调度产生负载压力的进程或线程。前置条件:首先能Ping通那些测试机,其次那些测试机必须安装远程代理调度程序(进程)和LoadRunner 代理。场景计划:加压/持续时间/减压。23LR-工具特性-集合点集合点的用处对于LoadRunner来说意义非常大,它可以设置多个虚拟用户等待到一个点,同时触发一个事务,以达到模拟真实环境下同时多个用户操作,同时模拟负载,实现性能测试的最终目的。 注:只能向 Action 部分(而不是 init 或 end 部分)添加集合点。24LR-压力调
18、度和监控系统压力调度:根据用户的场景要求,设置不同的Vu数量 定义运行虚拟用户的主机。 定义运行测试所需的虚拟用户数量。 向各个群组分配脚本。执行管理计划,手动或定时执行自动化流程,可以在用户离开时运行脚本。监控系统:统计压力产生器和服务器的资源占用。统计响应时间在各个阶段的分解占用。监控方式:1、进入被监视windows系统,开启以下2个服务Remote Procedure Call(RPC) 和Remote Registry Service。2、得到服务器的管理员权限,在安装LR的机器上,可以去连接。3、在controller 中,Windows Resources窗口中右击鼠标选择Add
19、 Measurements,添加被监控windows的IP地址,选择所属系统,然后选择需要监控的指标就可以开始监控了。25LR-工具特性-IP欺骗功能背景:1、当某个IP的访问过于频繁,或者访问量过大时,服务器会拒绝访问请求。2、某些服务器配置了负载均衡,使用同一个IP不能测出系统的实际性能。3、有一些网站会限制同一个用户同一个IP 的登陆。目的:使每个主机“欺骗”服务器,以为这是使用许多不同的IP地址。实现方式:IP向导程序(ipwizard.exe在LR bin中)是用来在每个负载生成器主机上,定义多个IP地址。IP向导程序会创建一个批处理文件,该文件更新IP表。IP的分配和用户正在运行的
20、方式一致。如果用户作为一个进程在运行,那么IP分配作为一个进程来做,如果用户作为一个线程在运行, 那么IP分配作为一个线程来做。步骤:1、创建/读取IP列表。2、在配置中启动IP欺骗。3、释放已设置的IP。loadrunner在做IP欺骗时,真实的虚拟了IP地址,该IP地址均真实存在,可以ping通,可以建立网络链接,在不使用时必须进行释放,否则这些IP地址将一直存在。26LR-压力结果分析工具 一旦测试完毕后,LoadRunner收集汇总所有的测试数据,提供高级的分析和报告工具,以便迅速查找到性能问题并追溯原由。 使用LoadRunner的Web 交易细节监测器,可以对事务响应时间进行细分。
21、A.GUI客户端客户端APIB.外部外部InternetWANC.前向前端的前向前端的Web服务器服务器D.Internet 防火墙防火墙路由器路由器E.负载平衡器负载平衡器F.中间件中间件(应用服务器)(应用服务器)G.数据库数据库服务器服务器27对压力测试响应时间分析:测试场景:针对某个网站,测试中分别使用10/25/50/75/100 几个不同级别的并发用户数量执行访问,统计事务的响应时间。针对每个数量级别的测试用户,并发用户全部启动。通过监控系统可以获得针对响应时间、并发用户的统计数据。通过压力结果分析器生成分析图,或将参数通过EXCEL统计,以不同视角显示,供测试工程师分析。90用户
22、响应时间:把响应时间从小到大顺序排序,那么90的请求的响应时间在这个范围之内。为什么要有为什么要有90用户响应时间?仅仅有平均事务响应时间是不够的。用户响应时间?仅仅有平均事务响应时间是不够的。假如有一次测试,总共有假如有一次测试,总共有100个请求被响应,其中最小响应时间为个请求被响应,其中最小响应时间为0.02秒,最大秒,最大响应时间为响应时间为110秒,平均事务响应时间为秒,平均事务响应时间为4.7秒,你会不会想到最小和最大响应秒,你会不会想到最小和最大响应时间如此大的偏差是否会导致平均值本身并不可信?时间如此大的偏差是否会导致平均值本身并不可信?28压力测试响应时间分析:颜色代表并发用
23、户数,纵轴单位毫秒,代表业务响应时间。横轴代表指定比例用户(例如90%的用户)从上面的图表中可以看到,当并发用户数量为10时:最小响应时间最小响应时间最大响应时间最大响应时间平均响应时间平均响应时间90%用户响应时间用户响应时间31080212406.29488729假如有两组测试结果,响应时间分别是假如有两组测试结果,响应时间分别是 1,3,5,10,16 和和 5,6,7,8,9,它们的平均值都是,它们的平均值都是7,你认为哪次测试的结果更理想?,你认为哪次测试的结果更理想?NUM MEANSTD DEVMINMAX90TH响应成功的请求数量响应时间的平均值标准差最小值最大值90用户响应时
24、间576.0411613.6571.58598.630压力测试响应时间分析:表格中颜色代表响应时间,横轴代表并发用户数,纵轴代表响应时间不同事务数量占事务总数的百分比。当并发用户数量为10时,超过95的用户都可以在5秒内得到响应;请对并发用户数量为25的情况,进行分析。31判断应用程序的问题:判断应用程序的问题:如果系统由于应用程序代码效率低下或者系统结构设计有缺陷而导致大量的上下文切换(context switches/sec显示的上下文切换次数太高)那么就会占用大量的系统资源,如果系统的吞吐量降低并且CPU的使用率很高,并且此现象发生时切换水平在15000以上,那么意味着上下文切换次数过高
25、.请对上图分析,是否程序设计存在缺陷?32判断判断CPU瓶颈:瓶颈:如果processor queue length(处理器作业列队长度)显示的队列长度保持不变(=2个) 并且处理器的利用率%Processortime超过90%,那么很可能存在处理器瓶颈。如果发现processor queue length显示的队列长度超过2,而处理器的利用率却一直很低,或许更应该去解决处理器阻塞问题。请对上图分析, CPU能否满足程序需要?33判断内存泄露问题:判断内存泄露问题:Windows资源监控中,如果ProcessPrivate Bytes计数器和ProcessWorking Set计数器的值在长时间内持续升高,同时MemoryAvailable bytes计数器的值持续降低,则很可能存在内存泄漏。请对上图分析,被测对象是否有内存泄露?提示:内存泄露问题经常出现在服务长时间运转的时候,由于部分程序对内存没有释放,而将内存慢慢耗尽.也是提醒大家对系统稳定性测试的关注。34误区误区1 1:认为性能测试就是用性能测试工具执行测试:认为性能测试
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 实施预防医学的重要性及其疑难试题及答案
- 护理管理学基础知识试题及答案
- 护理工作中的人际关系与2025年试题及答案
- 执业护士考试模拟试卷试题及答案
- 大学语文考试的试题与答案新视角
- 行政管理多方协作试题及答案2025年
- 2025年执业医师考试睡眠医学知识试题及答案
- 护理团队合作技能考核试题及答案
- 统编教材一年级上册语文全册课时练习含答案
- 新人教版二年级上册数学1-8单元测试题(含答案)
- 职工食堂外包项目服务方案
- 医院死亡证明培训课件
- 2024山东能源集团中级人才库选拔高频考题难、易错点模拟试题(共500题)附带答案详解
- 旅游服务行业的自我品牌推广与营销
- 面部抗衰培训课件
- 医院输血反应应急预案演练脚本
- 基于PLC的网球自动发射机课程设计说明书
- 介绍哈萨克族的课件
- 高速公路事故应急处理
- 家庭分家协议书15篇
- 固体废物的可持续发展和循环经济
评论
0/150
提交评论