## 1.黑白盒测试的方法及其特点 ### 黑盒测试 #### 1.等价类划分法 #### 2.边界值分析法 #### 3.因果图设计法 #### 4.正交实验设计法 ### 白盒测试 #### 1.逻辑覆盖法 语句覆盖 判定覆盖 条件覆盖 判定-条件覆盖 条件组合覆盖 #### 2.插桩法 目标代码插桩法 源代码插桩法 ## 2.简述性能测试指标 ### 2.响应时间 响应时间Response Time指系统对用户请求作出响应所需要的时间。 这个时间是指用户从软件客户端发出请求到用户接收到返回数据的整个过程所需要的时间,包括各种中间件如服务器数据库等的处理时间。 ### 2.吞吐量 吞吐量Throughput是指单位时间内系统能够完成的工作量,它衡量的是软件系统服务器的处理能力。 吞吐量的度量单位可以是请求数/秒页面数/秒访问人数/天处理业务数/小时等。 ### 3.并发用户数 并发用户数是指同一时间请求和访问的用户数量。 ### 4.TPS TPS是指系统每秒钟能够处理的事务和交易的数量,它是衡量系统处理能力的重要指标。 ### 5.点击率 点击率是指用户每秒向Web服务器提交的HTTP请求数,这个指标是Web应用特有的一个性能指标,通过点击率可以评估用户产生的负载量,并且可以判断系统是否稳定。点击率只是一个参考指标,帮助衡量Web服务器的性能。 ### 6.资源利用率 资源利用率是指软件对系统资源的使用情况,包括CPU利用率内存利用率磁盘利用率等,资源利用率是分析软件性能瓶颈的重要参数。 ## 3.简述性能测试种类 ### 1.负载测试 负载测试是指逐步增加系统负载,测试系统性能的变化,并最终确定在满足系统性能指标的情况下,系统所能够承受的最大负载量。 ### 2.压力测试 压力测试也叫强度测试,它是指逐步给系统增加压力,测试系统的性能变化,使系统某些资源达到饱和或系统崩溃的边缘,从而确定系统所能承受的最大压力。 压力测试可以揭露那些只有在高负载条件下才会出现的Bug,如同步问题内存泄露等。 > 压力测试与负载测试: > 负载测试是在保持性能指标要求的前提下系统能够承受的最大负载,而压力测试则是使系统性能达到极限的状态。 ### 3.并发测试 并发测试是指通过模拟用户并发访问,测试多用户并发访问同一个应用同一个模块或者数据记录时是否存在死锁或其他性能问题。 并发测试一般没有标准,只是测试并发时会不会出现意外情况,几乎所有的性能测试都会涉及到一些并发测试,例如多个用户同时访问某一条件数据,多个用户同时在更新数据,那么数据库可能就会出现访问错误写入错误等异常情况。 ### 4.配置测试 配置测试是指调整软件系统的软硬件环境,测试各种环境对系统性能的影响,从而找到系统各项资源的最优分配原则。 配置测试不改变代码,只改变软硬件配置,例如安装版本更高的数据库配置性能更好的CPU内存等,通过更改外部配置来提高软件的性能。 ### 5.可靠性测试 可靠性测试是指给系统加载一定的业务压力,使其持续运行一段时间如7*24h,测试系统在这种条件下是否能够稳定运行。 ### 6.容量测试 容量测试是指在一定的软硬件及网络环境下,测试系统所能支持的最大用户数最大存储量等。 容量测试通常与数据库系统资源如CPU内存磁盘等有关,用于规划将来需求增长如用户增长业务量增加等时,对数据库和系统资源的优化。 ## 4.性能测试流程 ![image-20230405113002317](https://yovinchen-1308133012.cos.ap-beijing.myqcloud.com/image-20230405113002317.png) ### 1.分析性能测试需求 在性能测试需求分析阶段,测试人员需要收集有关项目的各种资料,并与开发人员进行沟通,对整个项目有一定的了解,针对需要进行性能测试的部分进行分析,确定测试目标。 ### 2.制定性能测试计划 ● 确定测试环境:包括物理环境生产环境测试团队可利用的工具和资源等。 ● 确定性能验收标准:确定响应时间吞吐量和系统资源CPU内存等利用总目标和限制。 ● 设计测试场景:对产品业务用户使用场景进行分析,设计符合用户使用习惯的场景,整理出一个业务场景表,为编写测试脚本提供依据。 ● 准备测试数据:性能测试是模拟现实的使用场景,例如模拟用户高并发,则需要准备用户数量工作时间测试时长等数据。 ### 3.设计测试用例 性能测试用例是根据测试场景为测试准备数据,例如模拟用户高并发,可以分别设计100用户并发数量1000用户并发数量等,此外还要考虑用户活跃时间访问频率场景交互等各种情况。测试人员可以根据测试计划中的业务场景表设计出足够的测试用例以达到最大的测试覆盖。 ### 4.编写性能测试脚本 ● 正确选择协议。 ● 根据工具的支持情况和测试人员熟悉程度选取脚本语言。 ● 编写测试脚本时,要遵循代码编写规范,保证代码的质量。 ● 做好脚本的维护管理工作。 ### 5.测试执行及监控 ● 性能指标:本次性能测试要测试的性能指标的变化。 ● 资源占用与释放情况:CPU内存磁盘网络等使用情况。性能测试停止后,各项资源是否能正常释放以供后续业务使用。 ● 警告信息:一般软件系统在出现问题时会发出警告信息,当有警告信息时,测试人员要及时查看。 ● 日志检查:经常分析系统日志,包括操作系统数据库等日志。 ### 6.运行结果分析 性能测试完成之后,测试人员需要收集整理测试数据并对数据进行分析,将测试数据与客户要求的性能指标进行对比,若不满足客户的性能要求,需要进行性能调优然后重新测试,直到产品性能满足客户需求。 ### 7.性能测试总结 性能测试完成之后需要编写性能测试报告,阐述性能测试的目标性能测试环境性能测试用例与脚本使用情况性能测试结果及性能测试过程中遇到的问题和解决办法等。软件产品不会只进行一次性能测试,因此性能测试报告需要备案保存,作为下次性能测试的参考。 ## 5.LoadRunner 三部分各部分的 ### 1.VuGenVirtual (User Generator) LoadRunner是通过多个虚拟用户在系统中同时工作或访问系统的环境来进行性能测试的,虚拟用户进行的操作通常被记录在虚拟用户脚本中,而VuGen就是用于创建虚拟用户脚本的工具,因此它也称为虚拟用户脚本生成器。 在创建脚本时,VuGen会生成多个函数用于记录虚拟用户所执行的操作,并将这些函数插入到VuGen编辑器生成基本的虚拟用户脚本,这个创建脚本的过程也叫做录制脚本。 ### 2.Controller Controller用于创建和控制LoadRunner场景,场景负责定义每次测试中发生的事件,包括模拟的用户数用户执行的操作以及测试要监控的性能指标等。 ### 3.Analysis Analysis是LoadRunner的数据分析工具,它可以收集性能测试中的各种数据,对其进行分析并生成图表和报告供测试人员查看。