性能测试知识点「一性能测试基础知识」
软件性能是个很大的概念,覆盖面非常广泛,对一个软件系统而言,包括软件执行效率、资源占用率、稳定性、安全性、兼容性、可扩展性、可靠性等等用户视角:针对用户来说,软件性能就是软件对用户的响应时间管理员视角:系统的响应时间、系统运行时服务器的状态,如cpu内存等使用情况、系统是否能够实现拓展、系统支持多少用户访问、系统性能的可能的瓶颈在哪里、系统是否能够7*24小时业务的访问开发视角:用户关心的响应时间、管理员关心的系统是否可扩展、架构是否合理、数据库是否合理、代码中是否存在性能问
1.什么是软件性能
软件性能是个很大的概念,覆盖面非常广泛,对一个软件系统而言,包括软件执行效率、资源占用率、稳定性、安全性、兼容性、可扩展性、可靠性等等
用户视角:针对用户来说,软件性能就是软件对用户的响应时间管理员视角:系统的响应时间、系统运行时服务器的状态,如cpu内存等使用情况、系统是否能够实现拓展、系统支持多少用户访问、系统性能的可能的瓶颈在哪里、系统是否能够7*24小时业务的访问开发视角:用户关心的响应时间、管理员关心的系统是否可扩展、架构是否合理、数据库是否合理、代码中是否存在性能问题、系统中是否有不合理的内存使用方式2.什么是软件性能测试
性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。负载测试和压力测试都属于性能测试,两者可以结合进行。通过负载测试,确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统各项性能指标的变化情况。压力测试是通过确定一个系统的瓶颈或者不能接受的性能点,来获得系统能提供的最大服务级别的测试。(摘自百度百科)
3.什么系统需要做性能测试
web、app、单机应用程序(c/s)
4.性能测试的目的
评估系统的能力:测试中刚得到的压力水平和相应时间数据可以用于验证系统是否达到规的水平识别系统中的弱点:将系统的压力增加到一个极端水平,从而帮助发现系统薄弱环节并修复系统的瓶颈验证系统的稳定性和可靠性:长时间的测试可能导致程序发生内存泄漏等引起的隐藏问题,在一个生产负荷下执行测试一定的时间,评估系统的可靠性是否达到满足系统调优:重复执行性能测试,优化代码、配置等,以验证系统调优是否取得明显提升系统扩容依据:设计系统增量的变化,为系统扩容方案提供数据依据5.性能测试中有哪些常见的术语
并发数
①狭义上的并发:所有用户在同一时间点进行同样的操作,一般指同一类型的业务场景,比如1000个用户同时登陆系统;
②广义上的并发:多个用户与系统发生了交互,这些业务场景可以是相同的也可以是不同的,交叉请求和处理较多;
TPS/QPS
①TPS:Transactions Per Second,意思是每秒事务数,具体事务的定义,都是人为的,可以一个接口、多个接口、一个业务流程等等。一个事务是指事务内第一个请求发送到接收到最后一个请求的响应的过程,以此来计算使用的时间和完成的事务个数。
②QPS:Queries Per Second,意思是每秒查询率,是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。
思考时间
思考时间::操作时的时间间隔,它可以模拟真实的用户操作,减少服务器压力,满足实际的业务规则,一般情况下加思考时间,但针对于目的只关注于系统性能而不考虑用户场景的可以去掉思考时间
资源利用率
资源利用率:资源利用率分为应用服务器的资源利用率和数据库服务器的资源利用率,一般监测的指标:CPU、LoadAverage、Memory、队列、IO、网络等
PV/UV
①PV:Page View,即页面浏览量或点击量,用户每1次对网站中的每个网页访问均被记录1个PV。用户对同一页面的多次访问,访问量累计,用以衡量网站用户访问的网页数量。
② UV:Unique visitor,访问您网站的一台电脑客户端为一个访客。00:00-24:00内相同的客户端只被计算一次
RT
RT:Response Time响应时间,指应用执行一个操作所需的时间,包括从发出请求开始到最后收到响应所需要的时间
连接池
连接池:连接池是一个进程,多个连接在一个进程中存储、管理,它是共享、可复用的;
当客户端发起请求,先检查是否有闲置连接,如果有,则分配该连接给其使用;如果没有,则请求进入等待队列(等待空闲连接分配,这个取决于调度配置)或新建一个连接对象供其使用(取决于连接池有多少连接以及允许的最大连接数);
每次客户端发起请求,如果都新建连接,会消耗很多的资源,连接池的存在及其特性,减少了连接的建立所消耗的资源以及节省了很多连接创建时间,给系统提供了更好的伸缩性,也有助于服务器性能的提升。
负载
负载:对被测系统不断施加压力,直到性能指标超过预期或某项资源使用达到饱和,以验证系统的处理极限,为系统性能调优提供依据;
吞吐量
吞吐量:指在一次性能测试过程中网络上传输的数据量的总和,也可以这样说在单次业务中,客户端与服务器端进行的数据交互总量;
6.性能测试的分类
(1)基准测试:有基础的标准,通过对比发现系统的不同点与变化,如果没有线上的监控指标,那么我们在进行TPS、并发用户数可以用基准测试数据
(2)并发测试:很多用户(请求)按照预定场景并发(同一时间点)某个业务是否出现并发问题
(3)负载测试:确定所要测试的业务或系统的负载(能承受的处理能力)范围并进行测试
(4)压力测试:对系统不断加压,看什么时候能崩溃,找到系统的拐点
(5)稳定测试:长时间运行,观察系统的性能变化趋势
(6)失效恢复测试:系统崩溃后能否按照预先的策略恢复
(7)现网性能测试:在实际的网络,实际的环境下测试,完全和真实用户一样,需要注意以下几点:时间段的选择,垃圾数据的处理,网络限制。
欢迎大家订阅我的微信公众账号:Tester软件测试集中营,获取新鲜资讯,面试题,简历辅导等。
文章评论