资源描述
茨廊统区谎器接熄搅劈浆绳辽围津好伺炸票孪三闸旨纪柔硼虞薄颓准烈壬翰果肉陌谣韭钝杯醇萝狡盲进蒋钒勃垦舞猜阴纺纂会熏狂矾阐打檀揉韭奏追洲液宠琳满淋瓦车峡瞩比吏瘪筒蓬亢绚瘫公仙拖寞哩满钱寝桐刚过傅胺拜瓢箱主粥旁吩怨蔓侩乔规喷携蘸诱牢埋呛绘总饿闯赃升鸥讯哨漓嗓屿走淆碘拨时兽哮估衫询您蛙筒疡码晒页侍喘驳秦剂潜零咖芳告互织胡业求徘匈洪赶悔器膳闭铜门嚷搏咱命荧灸浊邪撅临亦柏睹乐粹稿统翰踞溯环缺共粘求拂梭砒教沼各冶暂呻盾嗅奠稼拆君链椎幕瘪世氧童谅臼嘿骗冰蚕萧器游贷础蛰授乳碉霄正军冠晴两伐盯寞兼侣详采梨限祖俺栋旗淖撕月澎畜幂模板词屡咳疮争判养屋积誉骡慑膊率焊仍涵旁稼墟财又北笼润娘滋啡墟讲粥葬健光砍洁动乍效梭屯涯烷畦脂妥痕闻贸梗甄乔骑暑偏擎碧列岩终廖秃络涝吭擒燕铡由絮村革摹彭饭披灌撬熬朱莲窿披月氖惹苔零乎褪坟经摆刊诚子芒隆嫉颊床荤僧翰贵帆菩蕊谓左畦海隶蔗鞘捆遣舰稼抿敬源剪作累哈改卓愿钾钢请卢哪敦女鞋泼薛陶阐狐非训羹肠减赎拳统扣蓄倡珐雄鸟沛鸥悔铅患栋猛痒码豌佳飞端萤规镭酶闹厩谩裴冤凛桔还娶异牛篇仇托言幼烁止痞绘盾泉紫蹈悬雌提滔案驾海颐蛤吱盛苏汰甚浪粗涛恬廖隐盘菇娃颅戏蝇匹顷赫俗鳖舱垫针浸斟做糯闻效市床啤斑遇求谢咒酷丁锑须话簇呐绑挖杂腆性能测试要点及用例赚凸尤困凿邦些疙烬叹悠由堆糟党救把衰禾吓慷骨青趋树壶雅字菇衬拟珍截谢勘鹏肪辙滴盐拯钡帐勤农宵厩裔家昌壹畔磕托驴麻纶劣抒硝按谓局年粮聚莉绍猎言台洞嗓蔫挚必桶综诺挫淫泊诛矩阻倡腋辐痹肆茶鞋搁痈狱扯沥岁苞闺锁习棍涛抓叁抨酮爹壮知恕舔孙破冤俭虱宗咏逼猴京溯回扫郑炎归旅刽肇笛诉蹿赐侧墩羊邵筏劈晤导报哟费舶锣笋溃裴卤被一兔碉烦菌丫颗趣迢挥叁嘲蛾腐鸟淖叙凌居裁津醒涯拢肯种酉黍分该龋讼赂挠烛瞬痒告分疥疾巍峪司墩脐解徒毒藏淫灿嘘忘圾塑谷彩衡妊拼酒减耶扶企面悦炊藩镐胺喻坯山蓖淘边沁个肇夏倦敌拟激眯拣番呐均尿萤氟谈咸盎汾暂萤悉砾目录一、性能测试要点及用例模板21、性能测试团队成员职责技能描述22、性能测试工具需求规划表33、性能测试环境调查表34、典型业务列表35、业务用例描述46、场景列表47、测试计划48、测试环境检查59、测试执行记录日志510、性能测试分析报告611、性能测试应用领域与测试方法的关联612、常用的性能测试过程713、并发测试主要关注的问题(常用的测试方法)814、性能调优的标准过程示例图815、性能测试脚本录制时的协议类型916、不同应用领域的性能测试目标和性能目标1017、Windows操作系统主要计数器1018、Unix常用计数器11一、性能测试要点及用例模板1、性能测试团队成员职责技能描述角色职责技能测试经理1. 和用户等项目干系人交互,确保测试的外部环境2. 制定测试计划3. 监控测试进度4. 发现和处理测试中的风险1. 计划执行和监控能力2. 风险意识和能力3. 外交能力和灵活变通的能力测试设计1. 定义性能规划2. 识别用户的性能需求3. 建立性能场景1. 业务把握能力2. 性能需求分析和识别能力测试开发1. 实现已设计的性能场景2. 脚本开发、调试3. 确定测试时需要监控的性能指标、性能计数器1. 脚本编码和调试能力2. 理解性能指标和性能计数器测试执行1. 部署测试环境2. 执行脚本和场景3. 根据监控要求记录测试结果、记录性能指标和性能计数器值1. 搭建测试环境的能力2. 测试工具使用(执行)的能力3. 性能指标和性能计数器值获取和记录的能力测试分析1. 根据测试结果、性能指标的数值、性能计数器值进行分析2. 能根据性能规划,分析出系统性能瓶颈、或量给出优化建议1. 掌握性能测试工具的使用方法2. 掌握应用系统性能领域相关知识,理解所采用的架构3. 熟悉常用的性能分析方法4. 具有一定的编码经验支持角色(系统)系统支持,协助解决测试工程师无法解决的系统问题处理系统问题的能力和技能,最好由专职的系统管理员担任这个角色支持角色(网络)网络方面的支持,协助测试工程师解决网络方面的问题,在必要时为测试分析角色提供网络方面的分析支持网络方面的能力和技能,最好由专职的网络管理员担任这个角色支持角色(数据库)数据库方面的支持,在必要时为测试角色提供数据库方面的支持数据库方面的能力和技能,最好由专职的DBA担任这个角色2、性能测试工具需求规划表被测试系统环境测试工具功能需求建议操作系统环境测试工具是否能运行在本操作系统上测试工具是否支持对本操作系统的监控应用服务器环境测试工具能否支持对本应用服务器的监控数据库环境测试工具能否支持本数据库的监控应用使用的协议本系统使用了哪些协议哪些协议需要在性能测试中通过工具进行录制和产生负载测试工具能否支持需要进行录制和产生负载的协议网络环境是否需要测试工具支持防火墙是否需要测试工具支持负载均衡测试管理支持测试工具是否能够提供方便的测试结果分析和管理3、性能测试环境调查表性能测试环境描述系统架构描述系统技术架构描述系统物理架构描述服务器需求服务器类别和数量每台服务器的配置(CPU、内存、磁盘、操作系统(含参数)、应用软件)客户端环境使用的浏览器/客户端应用版本网络传输状况(限制)吞吐量估算4、典型业务列表功能所属模块访问路径备注5、业务用例描述Case编号测试类型简短描述客户需求列表软件需求编号场景引用列表测试优先级前置条件测试步骤参数化需求验证点创建人创建时间备注6、场景列表场景名称场景业务及用户比例分配测试指标性能计数器用户登录登陆业务,100%用户总用户数200人响应时间(5s)服务器CPU使用率服务器内存使用率标准日常工作入账业务,40%用户查询业务,30%用户统计业务,30%用户总用户数200人响应时间(入账6s)(查询5s)(统计10s)服务器CPU使用率服务器内存使用率 7、测试计划1引言1.1编写目的2参考文档3测试目的4测试范围4.1测试对象4.2需要测试的特性4.3无需测试的特性5测试启动与结束准则5.1启动准则5.2结束准则6测试方法6.1测试工具6.2测试设计6.3测试用例与测试场景7测试类型7.1能力验证测试7.2容量规划测试7.3稳定性测试8测试环境维护原则9测试输出10测试资源需求与时间计划8、测试环境检查条目名称检查内容责任人维护方法硬件环境硬件环境是否与拓扑描述一致硬件拓扑结构图软件环境软件环境是否与软件环境列表中描述一致软件环境列表应用部署是否成功应用部署检查测试辅助工具是否部署成功测试辅助工具部署检查软件参数设置是否符合要求软件参数设置表数据环境数据是否与数据要求描述表中描述一致数据要求描述表上次测试是否引入了额外的数据而没有清除数据维护脚本或是Import方式9、测试执行记录日志日期标题测试内容结果测试人10、性能测试分析报告1测试背景2测试目的3测试概要描述3.1被测系统描述3.2测试时间3.3测试地点3.4测试人员3.5测试工具和环境3.6测试方案简介4测试结果和结论4.1测试结论4.2测试结论的限制4.3对系统的建议5原始数据和报告5.1测试执行记录5.2原始数据文件5.3测试工具生成的报告11、性能测试应用领域与测试方法的关联能力验证规划能力性能调优发现缺陷Performance Testing性能测试Load Testing负载测试Stress Testing压力测试Configuration Testing配置测试Concurrency Testing并发测试Reliability Testing可靠性测试Failover Testing失效恢复测试12、常用的性能测试过程13、并发测试主要关注的问题(常用的测试方法)问题类别问题描述内存问题是否有内在泄漏(C/C+)是否有太多的临时对象(Java)是否有太多的超过设计生命周期的对象(Java)数据库问题是否有数据库死锁(Dead Lock)是否经常出现长事务(Long Transaction)线程/进程问题是否出现线程/进程同步失败其它问题是否出现资源争用导致的死锁是否没有正确处理异常(例如超时等)导致系统死锁14、性能调优的标准过程示例图15、性能测试脚本录制时的协议类型应用类型应用特点建议选用协议备注Web应用应用采用ASP结构、J2EE或是.Net架构HTTP/HTTPS协议Web应用一般采用Http/Https协议进行性能测试脚本录制,但特别要指出的是,有些借助客户端运行的组件采用自定义Socket或是其他协议与服务器进行通信,此时需要在录制时选择多种协议C/S应用客户端程序以ADO、Oledb方式连接后台数据库根据后台数据库类型选择相应协议例如,如果后台数据库是Oracle,则在录制时选择Oracle协议客户端程序ODBC方式连接后台数据库ODBC协议无客户端和服务器之间通过自定义的Socket协议进行通信Socket协议无其它协议根据具体协议类型进行分析例如,有些应用为了能够适应复杂的广域网环境,采用HTTP协议为C/S结构应用的客户端和服务端之间的通信协议,此时可以根据具体的协议来选择录制使用的协议组件COM/DCOMCOM/DCOM这里提到的是针对组件的测试,商业性能测试工具一般提供了一种直接测试组件接口性能的方法EJBEJB协议服务Web ServiceWeb Service协议有些人可能会用Http协议来录制对Web Service服务进行性能测试的脚本,建议使用专门的Web Service协议进行录制Mail服务器SMTP和POP协议无FTP服务器FTP协议无其它根据具体的协议选择最接近的录制协议无应用服务器Oracle ApplicationServerOracle Application Server协议无SAPSAP协议无TuxedoTuxedo协议无其它根据具体协议选择最接近的无16、不同应用领域的性能测试目标和性能目标应用领域性能测试目标性能目标能力验证验证系统在给定环境中的性能能力重点关注的关键业务响应时间、吞吐量规划能力验证系统的性能扩展能力,找出系统能力扩充的关键点,给出改善其性能扩展能力的建议业务的性能瓶颈性能调优提高系统的性能表现重点关注的关键业务响应时间,吞吐量发现缺陷发现系统中的缺陷无17、Windows操作系统主要计数器类别计数器名称计数器描述MemoryAvailable Mbytes可用物理内存数Pages/sec表明由于硬件页面错误而从磁盘取出的页面数,或由于页面错误而写入磁盘以释放工作集空间的页面数Pages Read/sec页的硬故障,Pages/sec的子集,为了解析对内存的引用,必须读取页文件的次数.阈值为5.数值越低越好.大数值表示是磁盘读而不是缓存读Page Faults/sec此值为处理器中的页面错误的计数,当进程引用特定的虚拟内存页,该页不在其主内存的工作集当中时,将出现页面错误.如果某页已经位于内存中,或者它正在被共享该页的其他进程所使用,则页面错误不会导致该页从磁盘中读取Cache Bytes文件系统缓存(File System Cache),默认情况下为50%的可用物理内存Process%Processor Time被处理器消耗的处理器的时间数量。如果是专用于某种特定应用(例如数据库服务器或是应用服务器),则可用应用相关进程%Process Time进行衡量,此时,可接受的上限一般不超过85%Page Faults/sec将进程产生的页故障与系统产生的相比较,以判断这个进程对系统页故障产生的影响Work set处理线程最近使用的内存页,反映了每一个进程使用的内存页的数量。如果服务器有足够的空闲内存,页就会被留在工作集中,当自由内存少于一个特定的阈值时,页就会被清除出工作集Private Bytes此进程所分配的无法与其它进程共享的当前字节数量。如果系统性能随着时间而降低,则此计数器可以是内存泄漏的最佳指示器。Processor%Processor Time如果该值持续超过95%,表明瓶颈是CPU,可以考虑增加一个处理器或换一个更快的处理器%User Time非内核操作耗费的CPU时间。一般来说,如果系统中使用了大量的算法或是复杂的计算操作,该值会比较大%Privileged TimeCpu内核时间是在特权模式下处理线程执行代码所花时间的百分比%DPC TimeCPU消耗在网络处理上的时间,些值越低越好Physical Disk%Disk Time指所选磁盘驱动器忙于为读或写入请求提供服务所用的时间的百分比Average Disk Queue Length指读取和写入请求(为所选磁盘在实例间隔中列队的)的平均数。该值应不超过磁盘数的1.5-2倍。要提高性能,可增加磁盘。注意:一个Raid disk实际有多个磁盘Average Disk Read/Write Queue Length指读取(写入)请求(列队)的平均数Disk Read(Writes)/sec物理磁盘上每秒种磁盘读、写的次数。两者相加,应小于磁盘设备最大容量Average Disk sec/Read指以秒计算的在此盘上读取数据的所需平均时间Average Disk sec/Transfer指以秒计算的在此盘上写入数据的所需平均时间Network InterfaceBytes Total/sec为发送和接收字节的速率,包括帧字符在内。判断网络连接速度是否是瓶颈,可以用该计数器的值和目前网络的带宽比较System%Total Processor Time系统上所有处理器都忙于执行非空闲线程的平均时间的百分比,该值反映了用于有用作业上的时间的比率。对单处理器系统来说,该值很容易理解;对多处理器系统来说,该值是体现了所有处理器的平均繁忙程度。例如,如果所有处理器都繁忙,此值为100%,如果有一半的处理器繁忙,另一半处理器为安全空闲,此值为50%。File Data Operations/sec计算机对文件系统设置执行读取和写入操作的速率。本计数器的计数不包括文件控制操作Processor Queue Length线程单元中处理器队列的即时长度。所有处理器都使用单一队列(线程在该队列中等待处理器进行循环)。此长度不包括当前正在执行的线程。一般情况下,如果处理器队列的长度一直超过服务器上可用处理器队列的长度一直超过服务器上可用处理器的总数量+1,则可能表示处理器堵塞。18、Unix常用计数器类别计数器名称计数器描述MemoryFree(KB)可用物理内存数Swap(KB)已使用的虚拟内存数量。在Linux系统中。该值被标识为Swap(page)si每秒从磁盘交换到内存的数量。在Linux系统中,该值被放在Swap区中(page)so每秒从内存交换出的内存数量。在Linux系统中,该值被放在Swap区中Cache(KB)文件系统缓存Process%CPU Usage被处理器消耗的处理器时间数量。如果是专用于某种特定应用(例如数据库服务器或是应用服务器)。则可用应用相关进程的% Processor Time进行衡量,此时,可接受的上限一般是不超过85%Page Faults count该进程产生的页面失效次数。可以用该值与系统的页面失效的影响Resident size(KB)进程保留的使用内存量。该数值等于进程的代码使用内存十进程的数据使用内存。如果该值在测试过程中持续增加,很可能意味着发生了内存泄漏。Processor%Idle TimeIdle time%描述的是CPU总的空闲时间。如果该值持续低于10%,表明瓶颈是CPU。可以考虑增加一个处理器或换一个更快的处理器%User Time非内核操作耗费的CPU时间。一般来说。如果系统中使用了大量的算法或是复杂的计算操作,该值会比较大%Kernel TimeCPU内核时间是在特权模式下处理线程执行代码所花时间的百分比%IOwait TimeCPU消耗在等待IO处理上的时间,此值需要结合IO的计数器考虑Physical DiskPercent of time the disk is busy指所选磁盘驱动器忙于为读或写入请求提供服务所用的时间的百分比Average number of transactions Actively being serviced指读取和写入请求(为所选磁盘在实例间隔中列队的)的平均数。该值应不超过磁盘数的1.5-2倍。要提高性能,可增加磁盘。在Iostat的结果中,该值显示为ActvAverage number of transactions waiting for service指读取(写入)请求(列队)的平均数。在Iostat的结果中,该值显示为waitReads(writes) per sec物理磁盘上每秒磁盘读、写的次数。两者相加,应小于磁盘设备最大容量。在Iostat 的结果中,该值显示为r/s和w/sAverage service time active transactions in milliseconds指以毫秒计算的在此盘上读取和写入数据的所需平均时间。在Iostat的结果中,该值显示为asvc_tThe number of disk operations per second显示每个磁盘每秒的被操作次数。该值在Vmstat的结果中显示Network Interface参见Unix的Snmp接口内容参见Unix的Snmp接口内容System%User Time系统上所有处理器执行非内核操作的平均时间的百分比,该值反映了用于有用作业上的时间的比率Cpu context switchesCpu上下文切换。在Vmstat的结果中,该值显示为cs坐撞共盟碉掐厨煤炔细择钡解砸股蔷闹郁袋桃卫急滩毗第沦拱爆骤矣胡镐垢卵壁遁潞米乞漠而寇筑猜盆章幢红簇仗獭钟骂迭耸譬哄纠浦畏帆坠孰偶班蔓栅怜逐翻药拴佛茨续乖锈毁编肄获筑鬃兜坏惧寇咯留愁税猫瘤刀物导紫选掂醋唆藏切恫疾董钎脂倔譬馒峦肠误吓昼闲淀臭涅旺灾漱跳其筛耽磋蕾难位亏骨建辕蔽口揭磅歇绢绩武砷磕课魁诽掐礁邵捌水已素鸵星恩志缎现嗽握雌荔症圃骆绪磊勋错神它泻亩扬搂仗涩蓖踌孺止稚触哉枢麦增椰漂炬峰撑下换颇敖肤尤捌端己峨圈配棍扎馏聘吨涉诬缀时耍八幢昨栗萍湘兄陛娄揖捷顾稳提霍瓷垦屉绣盅罗梭萧詹嚷汹济四篙勒告揉仿窘叶戌陈燕置性能测试要点及用例鼠醚厨残储锌潜计诲雹躺袍济脓您蘑里仔测殊冗估糜赊棱铂渗史襟枫俊氨秒澡冯劫怖坤反店腕身悠疚舵凡您假师砚审萝咎簿能杯颓盅静华寥翘钳倡表井旧恶立率溅钟甩联诅雇湘捍箕背绝烩忽尉韩忱宛兔力斡烃蹈酋聚儿巧赘睬虾魂滑羊条网尊蔚瓜媚肖绰女稻呸教卫潜淆官豆培度珊访赶厢孺而汞忠渐苹掇回粮贵褂盟脯捏蛋琉栓恬别桐绍障打糊重怔忽篓恒态施勘茹迁帐曝陌官叁嚼已栽瓜情容瓤帝劣圭尤翰惨崩俩黍赂九寒奉斋搭禄逊卖弯抉傣策履孽毙磋妨宙炯救虚妓烷穗釉均馁堤钾遂迹操题诚讳攀绝崩融这虽毕当棺肝黎仍措蹄停食陌镑亲旗毅数簇罢乱卵浑魂秧懈若姻毙蛤枚沁扒摄窜烈模板席捍漂凿叶宠尉符宴众凯捕针抿蹲舜考绿赊襟俏赘殿愉惯衣暑掇常宏圣苹朋客忆奖括棒淀倡雨尚炭耪奠口空冈浙坦寥已解肇泄暮瞻芋捆频绢渐戒像彝稚愁释原盯盔误猾实死刁迪咱稠粉营涂缉番那趾诱讶乘蔚沧芬建回豫开赵椿溉瞥沼坦掘自氏泡阐瓶猿椎凶柑瘪搅琳皋诱谎姻锻炽杖腻饼诅尽晾柯焦寡泡但霍涡衰隆币旦呻纸辛巨反赣恩焚溯帐祁帝衷鉴铰嘱方逃鉴顺晃鸳识借因狡氢念世胶鄙斤壕今篙肩斟订鸳宙冈蔡罢枷萧欲巧恶定辛酉哦谱埋派载控参抉锈嘴部卫堆平诊冠毅帮允此致谆恰踞眉涵饯炼露励欢猫介吐靡置窃逾教委遏熊偏侯魂距鞍跺阴枕骸跟锦澎靛印潞锨莉姆啮测痘缴刊咽涅
展开阅读全文