一、软件性能测试知识点总结 |
您所在的位置:网站首页 › 什么是性能分析与调优工具的传输方式 › 一、软件性能测试知识点总结 |
1.常见的性能测试策略有哪些 参考答案: 基准测试,并发(业务边界值)测试,综合场景测试,负载测试,疲劳测试,极限压力测试,大数据量测试 2.完成一个性能测试项目,请阐述你的实施流程: 参考答案: 测试设计阶段: 1)了解被测系统的性能需求,定义测试目标和范围; 2)了解系统的技术信息,如系统架构等; 3)确定测试方案、进度安排,并制定测试计划,场景设置方案,及需要收集的测试数 据; 4)同相关人员协商讨论测试方案; 5)准备数据收集模板;不同项目的性能测试,需要收集的数据不同;针对性的制定 一个模板,更符合需要; 测试环境准备: 1)技术准备;选择性能测试工具;测试方案中涉及到的技术问题;测试数据的收集 方案实现;如:如何监控系统资源等; 2)搭建测试环境; 3)创建初始数据;如虚拟用户使用的账号等; 测试执行阶段: 1)录制脚本; 2)调试脚本; 3)执行场景; 4)收集测试数据,并简单整理; 测试分析阶段: 1)分析测试数据,报告整理 3.性能指标解释: 1)并发:所有用户在同一时刻对系统执行操作,一般指做同一件事情或操作。 2)请求响应时间: 从 client 端发出请求到得到响应的整个时间; 包括:client 端响应时间+网络响应时间+Server 端响应时间。 3)TPS(Transaction Per Second) 每秒钟系统能够处理的交易或事务的数量。它是衡量系统处理能力的重要指标。TPS 是 LoadRunner 中重要的性能参数指标。 4)资源利用率 对不同资源的使用程度,如 CPU,I/O,内存,网络
4.性能测试中tps如果上不去原因有哪些? 1、网络带宽 在压力测试中,有时候要模拟大量的用户请求,如果单位时间内传递的数据包过大,超过了带宽的传输能力,那么就会造成网络资源竞争,间接导致服务端接收到的请求数达不到服务端的处理能力上限。 2、连接池 可用的连接数太少,造成请求等待。连接池一般分为服务器连接池(比如Tomcat)和数据库连接池(或者理解为最大允许连接数也行)。 (关于连接池的具体内容,可参考之前的博客:性能测试:连接池和线程) 3、应用问题,如垃圾回收机制 从常见的应用服务器来说,比如Tomcat,因为java的的堆栈内存是动态分配,具体的回收机制是基于算法,如果新生代的Eden和Survivor区频繁的进行Minor GC,老年代的full GC也回收较频繁,那么对TPS 也是有一定影响的,因为垃圾回收其本身就会占用一定的资源。 4、数据库配置 高并发情况下,如果请求数据需要写入数据库,且需要写入多个表的时候,如果数据库的最大连接数不够,或者写入数据的SQL没有索引没有绑定变量,抑或没有主从分离、读写分离等, 就会导致数据库事务处理过慢,影响到TPS。 5、通信连接机制 串行、并行、长连接、管道连接等,不同的连接情况,也间接的会对TPS造成影响。 (关于协议的连接,可参考之前的博客:HTTP协议进阶:连接管理) 6、硬件资源 包括CPU(配置、使用率等)、内存(占用率等)、磁盘(I/O、页交换等)。 7、压力机 比如jmeter,单机负载能力有限,如果需要模拟的用户请求数超过其负载极限,也会间接影响TPS(这个时候就需要进行分布式压测来解决其单机负载的问题)。 8、业务逻辑 业务解耦度较低,较为复杂,整个事务处理线被拉长导致的问题。 9、系统架构 比如是否有缓存服务,缓存服务器配置,缓存命中率、缓存穿透以及缓存过期等,都会影响到测试结果。
5.性能测试时,是不是必须进行参数化?为什么要创建参数?JMeter中如何创建参数? 是。模拟用户真实的业务操作。 创建参数列表,用参数替换固定的文本
6.请问您是如何得到性能测试需求?怎样针对需求设计、分析是否达到需求? 在查看需求文档,从中提取性能测试需求 ,制定性能测试范围; 结合业务信息设计操作历史访问记录场景总结出需测试的性能关键指标。 执行场景用例后根据提取关键性能指标来分析是否满足性能需求。
7.画出系统架构图? 示意图: 8.性能测试包含了哪些软件测试(至少举出3种)? 负载测试(Load Testing):负载测试是一种主要为了测试软件系统是否达到需求文档设计的目标,譬如软件在一定时期内,最大支持多少并发用户数,软件请求出错率等,测试的主要是软件系统的性能。 压力测试(Stress Testing):强度测试也就是压力测试,压力测试主要是为了测试硬件系统是否达到需求文档设计的性能目标,譬如在一定时期内,系统的cpu利用率,内存使用率,磁盘I/O吞吐率,网络吞吐量等,压力测试和负载测试最大的差别在于测试目的不同。 容量测试(Volume Testing):确定系统最大承受量,譬如系统最大用户数,最大存储量,最多处理的数据流量等。 或者在下面选择几项: 并发测试 - 测试多用户并发访问同一个应用、模块、数据时是否产生隐藏的并发问题 基准测试 - 比较新的或未知测试对象与已知参照标准(如现有软件或评测标准)的性能。 争用测试:- 核实测试对象对于多个主角对相同资源(数据记录、内存等)的请求的处理是否可以接受。 性能配置 - 核实在操作条件保持不变的情况下,测试对象在使用不同配置时其性能行为的可接受性。 负载测试- 核实在保持配置不变的情况下,测试对象在不同操作条件(如不同用户数、事务数等)下性能行为的可接受性。 强度测试- 核实测试对象性能行为在异常或极端条件(如资源减少或用户数过多)之下的可接受性。 容量测试- 核实测试用户同时使用软件程序的最大数量 9.请问什么是性能测试、负载测试、压力测试? 性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。 负载测试、压力测试参考答案如上题。 10、在给定的测试环境下进行,考虑被测系统的业务压力量和典型场景? 负载测试 负载测试是用来测定系统饱和状态、确定阀值。其特点有: 1) 这种方法的目的是找到系统处理能力的极限;通过“检测、加压、阀值”手段找到如“响应时间不超过10秒”,“平均cpu利用率低于65%”等指标。 2) 这种性能测试方法需要在给定的测试环境下进行,通常也需要考虑被测系统的业务压力量和典型场景、另外HP Mercury LoadRuner在使用该方法进行“加压”的时候必须选择典型场景。 3) 这种性能测试方法一般用来了解系统的性能容量,或者是配合性能调优的时候来使用。特别是该的Weblogic 和库的性能调优。 11、什么时候可以开始执行性能测试? 在产品相对比较稳定,功能测试结束后。灵活性比较强。 12、简述性能测试的步骤。 熟悉应用 了解应用的架构、功能逻辑 测试需求 1、需要将开发给定的需求转为吞吐量和响应时间。 2、根据测试目的,细化需求 测试准备 测试准备包括测试客户端机器准备、测试数据准备、测试脚本准备。 测试执行 测试的执行中,需要监控测试客户端和服务器性能,监控服务器端应用情况: 客户端的系统资源(cpu、io、memory)情况 服务端的系统资源(cpu、io、memory)情况 服务器的jvm运行情况 服务端的应用情况,看是否有异常 响应时间、吞吐量等指标 系统资源监控,linux下可以采用的工具有:vmstat、top、meminfo等。 JVM的监控,可以用jprofiler工具,linux下面的jmap、jhat等。 响应时间、吞吐量等,由grinder提供。 上述这些信息,一般在测试结束后,均需要归档整理,已备后续详细分析 我们自己开发一套脚本,用于以固定的频率获取测试客户端和服务器的vmstat和top输出、grinder的log,并从中截取有用信息保存,用于事后分析。 每次测试运行完以后,肯定会增加很多数据,需要考虑本次执行对数据量的影响,如果数据量的变化对后续测试会有影响,则需要清理数据。 测试分析 13、你如何识别性能瓶颈? RBI方法 重点测试“吞吐量”指标,因为RBI认定80%的系统性能瓶颈由吞吐量造成。RBI方法 按照网络、硬件、数据库、应用服务器、代码的顺序自上而下分析性能 工具:IBM、HP、OpenSource工具都支持。需使用分析模块、根据Weblogic、Oracle区别有专门的工具实现RBI。 14、性能测试时,是不是必须进行参数化?为什么要创建参数?LoadRunner中如何创建参数? 是。模拟用户真实的业务操作。 创建参数列表,用参数替换固定的文本。 15、你如何设计负载?标准是什么? 负载测试计划多少用户数量、使用什么类型的机器、以及在什么环境下进行。主要基于两个重要的文档,任务分布图和事务信息,任务分布图告诉我们在负载时间段内,某一个事务使用的用户数,高峰使用率及低峰使用率均来自该文档;事务信息告诉我们事务名及优先级,在设计场景时可以参考。 16、解释5个常用的性能指标的名称与具体含义。 响应时间、并发用户数,吞吐量,性能计数器,TPS,HPS 响应时间:指的是“系统响应时间”定义为应用系统从发出请求开始到客户端接收到响应所消耗的时间。把它作为用户视角的软件性能的主要体现。 最大并发用户数:有两种理解方式,一种是从业务的角度来模拟真实的用户访问,体现的是业务并发用户数,指在同一时间段内访问系统的用户数量。另一种是从服务器端承受的压力来考虑,这里的“并发用户数”指的是同时向服务器端发出请求的客户数,该概念一般结合并发测试(Concurrency Testing)使用,体现的是服务端承受的最大并发访问数。 吞吐量是指“单位时间内系统处理的客户请求的数量”,直接体现软件系统的性能承载能力。 性能计数器(Counter)是描述服务器或操作系统性能的一些数据指标。例如,对Windows 系统来说,使用内存数(Memory In Usage),进程时间(Total Process Time)等都是常见的计数器。 思考时间(Think Time),也被称为“休眠时间”,从业务的角度来说,这个时间指的是用户在进行操作时,每个请求之间的间隔时间。从自动化测试实现的角度来说,要真实地模拟用户操作,就必须在测试脚本中让各个操作之间等待一段时间,体现在脚本中,具体而言,就是在操作之间放置一个Think 的函数,使得脚本在执行两个操作之间等待一段时间。 TPS:Transaction per second,每秒钟系统能够处理的交易或者事务的数量。它是衡量系统处理能力的重要指标。 点击率:HPS,每秒钟用户向WEB服务器提交的HTTP请求数。 17、描述不同的角色(用户、产品开发人员、系统管理员)各自关注的软件性能要点。 用户:重点关注打开速度及响应时间 开发:重点关注响应时间和数据库交互 管理员:重点关注用户感受到的软件性能;如何利用管理功能进行性能调优;如何利用其他软硬件手段进行性能调优 18、请分别针对性能测试、负载测试和压力测试试举一个简单的例子? 性能测试例子:公司开发了一个小型项目管理系统,上线前需要做负载、压力、大数据量、强度测试等。 负载测试:逐步加压,从而得到“响应时间不超过10秒”,“服务器平均CPU利用率低于85%”等指标阀值。 压力测试:逐步加压,从而使“响应时间超过10秒”,“服务器平均CPU利用率高于90%”等指标来确定系统能承受的最大负载量。 19、请问您是如何得到性能测试需求?怎样针对需求设计、分析是否达到需求? 在查看需求文档,从中提取性能测试需求,与用户交流,了解实际使用情况。 结合业务信息设计操作场景总结出需测试的性能关键指标。 执行用例后根据提取关键性能指标来分析是否满足性能需求。
|
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |