目录:导读
- 前言
- 一、Python编程入门到精通
- 二、接口自动化项目实战
- 三、Web自动化项目实战
- 四、App自动化项目实战
- 五、一线大厂简历
- 六、测试开发DevOps体系
- 七、常用自动化测试工具
- 八、JMeter性能测试
- 九、总结(尾部小惊喜)
前言
1、性能测试包含了哪些软件测试(至少举出3种)?
参考答案:负载测试、压力测试、容量测试。
负载测试(Load Testing):负载测试是一种主要为了测试软件系统是否达到需求文档设计的目标,譬如软件在一定时期内,最大支持多少并发用户数,软件请求出错率等,测试的主要是软件系统的性能。
压力测试(Stress Testing):强度测试也就是压力测试,压力测试主要是为了测试硬件系统是否达到需求文档设计的性能目标,譬如在一定时期内,系统的cpu利用率,内存使用率,磁盘I/O吞吐率,网络吞吐量等,压力测试和负载测试最大的差别在于测试目的不同。
容量测试:确定系统最大承受量,譬如系统最大用户数,最大存储量,最多处理的数据流量等。
或者在下面选择几项:
①并发测试 - 测试多用户并发访问同一个应用、模块、数据时是否产生隐藏的并发问题
②基准测试 - 比较新的或未知测试对象与已知参照标准(如现有软件或评测标准)的性能。
③争用测试:- 核实测试对象对于多个主角对相同资源(数据记录、内存等)的请求的处理是否可以接受。
④性能配置 - 核实在操作条件保持不变的情况下,测试对象在使用不同配置时其性能行为的可接受性。
⑤负载测试- 核实在保持配置不变的情况下,测试对象在不同操作条件(如不同用户数、事务数等)下性能行为的可接受性。
⑥强度测试- 核实测试对象性能行为在异常或极端条件(如资源减少或用户数过多)之下的可接受性。
⑦容量测试- 核实测试用户同时使用软件程序的最大数量
2、什么测试是在给定的在给定的测试环境下进行,考虑被测系统的业务压力量和典型场景?
答:负载测试。
负载测试是用来测定系统饱和状态、确定阀值。其特点有:
这种方法的目的是找到系统处理能力的极限;通过“检测、加压、阀值”手段找到如“响应时间不超过10秒”,“平均CPU利用率低于65%”等指标。
这种性能测试方法需要在给定的测试环境下进行,通常也需要考虑被测系统的业务压力量和典型场景,另外HP Mercury LoadRuner在使用该方法进行“加压”的时候必须选择典型场景。
这种性能测试方法一般用来了解系统的性能容量,或者是配合性能调优的时候来使用。特别是该的Weblogic 和库的性能调优。
3、性能测试的步骤?
答:熟悉应用,了解应用的架构、功能逻辑。
测试需求:
需要将开发给定的需求转为吞吐量和响应时间。
根据测试目的,细化需求
测试准备:
测试准备包括测试客户端机器准备、测试数据准备、测试脚本准备。
测试执行:
测试的执行中,需要监控测试客户端和服务器性能,监控服务器端应用情况:
客户端的系统资源(cpu、io、memory)情况
服务端的系统资源(cpu、io、memory)情况
服务器的jvm运行情况
服务端的应用情况,看是否有异常
响应时间、吞吐量等指标
系统资源监控,linux下可以采用的工具有:vmstat、top、meminfo等。
JVM的监控,可以用jprofiler工具,linux下面的jmap、jhat等。
响应时间、吞吐量等,由grinder提供。
上述这些信息,一般在测试结束后,均需要归档整理,已备后续详细分析。
我们自己开发一套脚本,用于以固定的频率获取测试客户端和服务器的vmstat和top输出、grinder的log,并从中截取有用信息保存,用于事后分析。
每次测试运行完以后,肯定会增加很多数据,需要考虑本次执行对数据量的影响,如果数据量的变化对后续测试会有影响,则需要清理数据。
4、你如何识别性能瓶颈?
答:RBI方法:重点测试“吞吐量”指标,因为RBI认定80%的系统性能瓶颈由吞吐量造成。
按照网络、硬件、数据库、应用服务器、代码的顺序自上而下分析性能工具:IBM、HP、OpenSource工具都支持。需使用分析模块、根据Weblogic、Oracle区别有专门的工具实现RBI。
5、解释5个常用的性能指标的名称与具体含义
答:响应时间、并发用户数,吞吐量,性能计数器,TPS,HPS
响应时间:指的是“系统响应时间”定义为应用系统从发出请求开始到客户端接收到响应所消耗的时间。把它作为用户视角的软件性能的主要体现。
最大并发用户数:有两种理解方式。
一种是从业务的角度来模拟真实的用户访问,体现的是业务并发用户数,指在同一时间段内访问系统的用户数量。
另一种是从服务器端承受的压力来考虑,这里的“并发用户数”指的是同时向服务器端发出请求的客户数,该概念一般结合并发测试(Concurrency Testing)使用,体现的是服务端承受的最大并发访问数。
吞吐量:是指“单位时间内系统处理的客户请求的数量”,直接体现软件系统的性能承载能力。
性能计数器是描述服务器或操作系统性能的一些数据指标。例如,对Windows系统来说,使用内存数,进程时间等都是常见的计数器。
思考时间,也被称为“休眠时间”,从业务的角度来说,这个时间指的是用户在进行操作时,每个请求之间的间隔时间。
从自动化测试实现的角度来说,要真实地模拟用户操作,就必须在测试脚本中让各个操作之间等待一段时间,体现在脚本中,具体而言,就是在操作之间放置一个Think 的函数,使得脚本在执行两个操作之间等待一段时间。
TPS:Transaction per second,每秒钟系统能够处理的交易或者事务的数量。它是衡量系统处理能力的重要指标。
点击率:HPS,每秒钟用户向WEB服务器提交的HTTP请求数。
6、你如何设计负载?标准是什么?
答:负载测试计划多少用户数量、使用什么类型的机器、以及在什么环境下进行。
主要基于两个重要的文档,任务分布图和事务信息,任务分布图告诉我们在负载时间段内,某一个事务使用的用户数,高峰使用率及低峰使用率均来自该文档;事务信息告诉我们事务名及优先级,在设计场景时可以参考。
7、描述不同的角色(用户、产品开发人员、系统管理员)各自关注的软件性能要点
答:
用户:重点关注打开速度及响应时间。
开发:重点关注响应时间和数据库交互。
管理员:重点关注用户感受到的软件性能、如何利用管理功能进行性能调优、如何利用其他软硬件手段进行性能调优。
8、请分别针对性能测试、负载测试和压力测试试举一个简单的例子?
答:性能测试例子:公司开发了一个小型项目管理系统,上线前需要做负载、压力、大数据量、强度测试等。
负载测试:逐步加压,从而得到“响应时间不超过10秒”,“服务器平均CPU利用率低于85%”等指标阀值。
压力测试:逐步加压,从而使“响应时间超过10秒”,“服务器平均CPU利用率高于90%”等指标来确定系统能承受的最大负载量。
9、性能测试时,是不是必须进行参数化?为什么要创建参数?LoadRunner中如何创建参数?
答:是。模拟用户真实的业务操作。创建参数列表,用参数替换固定的文本。
下面是我整理的2023年最全的软件测试工程师学习知识架构体系图 |
一、Python编程入门到精通
二、接口自动化项目实战
三、Web自动化项目实战
四、App自动化项目实战
五、一线大厂简历
六、测试开发DevOps体系
七、常用自动化测试工具
八、JMeter性能测试
九、总结(尾部小惊喜)
每一次努力都是改变的种子,勇敢地播下,坚持浇灌。没有任何困难能够阻挡你追逐梦想的脚步,只要你心怀信念,勇往直前,成功的道路就在前方等待着你。相信自己,奋斗不息,成就无限!
只有不停地努力,才能追逐梦想的足迹。奋斗不止,未来即是希望的彼岸。坚持信念,超越自我,你所追求的辉煌将会抵达!无论困难多大,只要勇往直前,成功就在不远处等待着你。
生活从不亏待努力者。持之以恒,奋斗不止,阳光终将普照。脚踏实地,追求卓越,梦想必将成真。每一次努力都离成功更近一步,你的付出值得被认可。相信自己,坚定前行,未来属于奋斗者!