| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> 性能测试从零开始(视频笔记 20210504) -> 正文阅读 |
|
[大数据]性能测试从零开始(视频笔记 20210504) |
作者:recommend-item-box type_download clearfix |
目录 第一课? 为什么要做性能测试?0 前言 0.1 受众分析 很多学生多数都没有做过性能测试,或者很多人做的性能测试不规范,所以性能侧记着门课面临如下问题: (1)一些性能测试术语理解起来困难 (2)作为其他课程的基础中的基础,没有太多可以动手的,有人是希望多动手的 (3)这门课程放在最开始,没有太多铺垫,和学生之间的交流存在一定的磨合 0.2 教学策略 1 为什么要做性能测试 1.1 我们身边的那些事儿 1.1.1 回家的路好长? 1.1.2 赵丽颖结婚了,我的女神有主了? —需求分析不对,粉丝多 !!!首选。方向不对,努力白费 —关键时刻并发大,系统负载高 —系统架构不具备扩大性,造成了崩溃宕机 !!!其次。 强调要了解需求分析,了解业务,了解架构。 互联网应用和传统应用的差异? 互联网的应用是一个访问不受时间和地域限制。 传统应用则相反,更可控。 1.1.3 追某女生3年了,我们终于在一起了,嗨… —这也是性能测试,追求过程中,女生有很多废物测试,不断测试男生的可靠性,整个追求时间跨度不断,可以类比性能测试中的稳定性测试,疲劳强度测试 1.1.4 安卓的手机越用越卡,我们还是买个苹果的吧… —手机卡本质就是一个性能问题,存在内存碎片,这个状况是由安卓采用了的架构决定 1.2 五个理由 (1)选型 系统中采用了新技术或者新的架构,但新架构能满足业务需要吗? 如果等到系统开发完成后,再来验证成本就非常大,于是功能还没开发完成,就半路突击做性能测试。 (2)验收 (3)备份 举例:服务器部署在阿里云上,为了避免风险,在华为云上也部署一套。怎么做? 阿里云和华为云的功能性能上是否有差异?此时,不能直接切。 测试团队就会对华为云做测试评估:行和不行? 行,则可以切换。说明两者是可以相互备份的。 这里强调的不是备份这个动作,而是为了备份这件事,我们需要先做性能测试。 不是说备份就备份,不先做性能测试,不先了解清楚,怎么做备份呢? 冷备份和热备份: 冷备份需要重启,用户有感知 热备份,切换时,用户无感知 (4)省钱(指导运维成本) (5)更好 即评估,优化,预测所对应的专业场景。 把上面5个理由理解成5个场景: (1)选择 (2)验证属实 (3)异常处理 (4)容量规划 (5)优化 第二课? 性能测试实战案例(1)1 两个问题 问题1: 负载和并发的区别? 所谓负载:不断加压力,观察在加压力的过程中,系统的表现。 所谓并发:做性能测试,根据先前的需求分析出来的结果做性能测试。 后面再说详细区别。 问题2: 先预习再上 2 性能测试发展过程 2.1 我是谁 早期:不会性能测试,先上产品,先抢用户,气候再紧急补债 现在:两级分化严重,专业的人做专的专业,不专业的人还在裸奔 裸奔的人什么样子呢? 没有明确的性能测试指标,没有测试需求,没有测试策略。 但这却又偏偏是性能测试,所以称之为尴尬的性能测试。 性能测试就是扔给你一个Loadrunner, 给你的url链接,然后再给你个性能测试报告的模版,最后告诉你,给你一个星期,或者说再xx号前把报告交给我。 很多性能测试工程师一拿到Loadrunner和url就开始性能测试的旅程。 但是没有明确的测试目标,没有测试策略,既然任务已经下来,就不管其他的,用这个万能的Loaderrunner. 脚本篇—懂一点儿Loadrunner的测试流程,于是就用它强大的录制功能,录制了基本急哦脚本。然后在脚本中参数化参数,插入事物,插入集合点等等增强脚本。在迭代几次回放后,没有报错,就算完成了。 场景片—脚本完成后,开始准备设置场景的参数。没有做任何的基准测试和铜梁测试,测试报告上要求多少用户,持续多长时间,就填上相应的参数。作为性能测试,总归要监控服务器的性能,一开始性能工程师是用头儿推荐的方法:用操作系统自带的性能工具来监控服务器的性能。理由是Loadrunner是装在测试机的,用测试机来监控服务器的数据,会存在网络上的延时而不准确。用了Loadrunner, 为什么不相信它?如果用系统自带的性能测试工具来监控,为什么不请100个民工一起点,或者这样的效果更好。。。这个想法,有点儿。。。 专业的人做什么事? —需求分析:了解产品规格说明,用户计划,用户行为,用户分布,运维日志,市场计划,架构 —准备工作:写的脚本不管何时何地何人,不管多少人在跑,都能跑 —监控:表面看(TPS,响应时间…),深层看(CPU,内存),长期看 —分析:从整体到局部,从表到里,做好分析,调优 课程要求:学完后,需求分析,脚本编写都要专业! 2.2 我要去哪里/发展方向 —功能测试是业务型的。性能测试是技术型的。技术无止境(编程,数据库,操作系统,中间件) —自动化3个月能入门。性能测试的入门要比较久,掌握的内容,除了自动化内容之外,还有其他。 —性能测试的发展方向: 平民化(大众化) 开源化 专业化 3 什么是软件性能测试 3.1 性能测试概念 性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。 通过负载测试,确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统各项性能指标的变化情况。 压力测试是通过确定一个系统的瓶颈或者不能接受的性能点,来获得系统能提供的最大服务级别的测试。 3.2 什么时候(阶段)做性能测试 —先前给予占领市场的公司产品线上,有一定用户后再考虑系统性能 —一些正规公司,功能测试稳定后再做性能测试 —但并不绝对,有的公司,架构复杂,人员能力强的,会在技术架构选型之前开始做性能测试。 有的公司,在功能测试之前,先做规划(需求分析),准备完成后,等功能测试完成后,做性能测试。 第三课? 性能测试实战案例(2)4 软件性能测试分类(重点) (1)基准测试: 先测一轮作为后面测试或者后面版本的基准 (2)性能测试:基于用户行为情况和用户分布等信息,对系统能否达到预期服务能力进行验证 (3)负载测试:日本不断挑战我们的底线,占领xx, 。。。我们一直在忍耐,直到77事变前(一个循序渐进的过程) (4)压力测试:1937年77事变,忍无可忍,抗日战争全面爆发 (压倒骆驼的最后一根稻草)(极端情况) (5)容量测试:我们能忍多少事,比如全面抗战前夕,我们对日本的挑衅行为的容量久就是,77事变没有发生前的所有事的总和。 系统会有很多配置参数,所有配置参数都放到最大的时候,是不是生效?系统是不是扛得住?它们之间是不是存在冲突? (6)疲劳强度测试:结婚7年,牵着老婆的手就像左右牵着右手,牵着小姨的手。。。 (7)现网性能测试:在真实环境上做性能测试(为了得出真实的数据,这种类型测试要注意对网络性能的影响,比如占用过多的带宽,影响其他业务,垃圾数据的清理等) 在内网测试,我们关注的是服务器,系统软件,系统相关的各种配置等是否有问题。缺点是:我们没有评估系统所在的这个环境的带宽网络层面的限制,真实使用时会有问题。 所以我们先在内网测,然后要评估真实的带宽。于是我们会做一些现网性能测试。 (8)失效恢复测试:(这个比喻可能不太恰当:某明星出轨,女主进入局子,男主角带着原配住进了美国豪宅,这里原配扮演了故障转移的角色) 不过失效恢复测试一般是对具有负载均衡的系统进行的,主要是为了测试当系统局部发生故障时,是否会对全局产生大的影响,产生的影响是否在可以接受的范围内,以及用户能否继续使用系统。 在实际应用过程中,可以模拟一台或者几台负载均衡及其出现故障来进行失效恢复测试。但需要注意的是,不仅要关心失效后,用户是否可以正常访问或者恢复后系统是否可以正常工作,也要关注失效后,系统还能支持多少并发用户,已经采用哪些备选方案来快速响应。(储库功能要大于主库) 问题:性能测试是不是包含负载测试和压力测试? 性能测试是一个通俗概念,下面有几个概念: 性能测试 负载测试 压力测试 第四课? 性能测试流程1?性能测试包含哪些?(配图略) (1)性能测试(重要):期望点。a点,持续测试,验证系统资源是否在可接受范围内(自己定义的),是不是符合预期。 (2)负载测试(重要):高于期望。a-b点,持续测试,验证压力增大后,系统的表现如何?(b点不固定,只要高于a点,任何一点都可以称为b点?)a点只有一个,b点有很多个。如果a点有很多个,那产品不明确。 (3)压力测试:临界点,系统资源吃紧。b-d 点,持续测试,验证系统超出自身能力后的表现。重点是要找到系统在不断加压的过程中,在什么时间点(并发量时)崩溃。 (4)稳定性测试(重要):系统崩溃,超时等。 a-b点,验证系统n*24小时持续运行后的稳定性。强调时间维度,重点是验证系统持续提供服务的时间,稳定情况。 有时候会把稳定性测试和负载测试合二为一,为了省时间。业界比较少人只做负载测试。 对性能测试而已,最关注的是tps和相应时间。虚拟用户数没那么关注。 2?作业讲解 1)上述已讲 2)怎么考虑性能测试的典型场景? —产品规格:产品经理提供 —用户模型:用户喜欢用什么功能,什么时间段用,大概有多少用户 (产品经理不太会说,需要我们自己分析) —系统数据:基础数据(用户名密码地址信息等)和业务数据(买了什么东西花了多少钱等) 为什么需要考虑这些数据? 我们要访问的数据大多放在数据里了。性能测试过程中需要制造大量的数据,是要解决数据库当中数据量比较大时性能低的问题,数据太少的话,和数据库相关的性能问题根本就测不准确。 原则:准备数据时,宁多勿少 —系统架构:一个是逻辑结构,一个是 ?(即有哪些模块构成,在部署的时候分别部署在哪些系统上) 举例:比较粗的逻辑架构:Browser—Tomcat(nginx)—Redis—Mysql 不同硬件不同结构,会对性能有影响。要把架构做好,不然会在很多阶段有很多遗漏,或者影响性能。 —运维日志 —市场计划: —项目管理计划: Btw:-》测试需求-》设计出模型 第五课? 性能答疑1. 负载测试时,有时服务器过大,测试过程没有测试出它的极限,上市后出现瘫痪,怎么解决? 测试环境搭建: 1)尽可能在线上测(全链路压测) 2)自己搭建环境测试 (1)线上服务器很多,不可能搭建完全真实的环境,此时采用等比缩放,测试出扩散系统 (2)能搭建出真实的环境测试,那就测试吧 2. 现网性能测试时在公网进行吧? 看应用,具体情况具体分析。要看服务器是给谁用,如果开发的应用程序只是给公司内部使用,则只需内网。如果给外部使用,则公网。 3. 基准测试,是不是每一轮版本都会作为下一轮的基础,还是稳定版本呢? 一般情况下只会把第一版本第一轮测的数据作为基准。 PS. 更多的是同一个大版本下的第一轮测试。 不同版本之间需要评估,版本跨度不能过大,不然没有意义。 4. 基准测试时有基准标准,不一定非要自己做一遍,也可以用行业标准作为基准。 这是对的。 如果你做的系统是业界已经有的系统,那就用业界标准; 如果你做的系统是业界最新,标准就是你们自己定的,这里的标准来源于几个方向: 1)产品说明——大家期望的结果 2)基准测试的结果——实际上的标准(当然大家要同意) 5. 例如行业usb2.0, usb3.0传输标准,5g传输标准这些都可以认为是基准。 有行业标准用行业标准,没有的话自己定。 具体情况具体分析。 6. 难道大多数公司做性能不一定都有会行业标准,可能还是探索阶段的吧。。。 具体情况具体分析。 更多的是同一个版本(的第一轮)作为基准,跨基准的话也可以,但是不能跨太远。比如版本2,版本3可以用版本1来做基准,但是版本10再用版本1来做基准,就不合适了。 很多系统已经有所谓的标准了,但实际情况,中小型公司很多执行不到位,有标准不一定用,所以需要我们推进这件事。 7. 疲劳度测试和稳定性测试区分一下。 疲劳测试:测试系统出现疲劳时候的点(可以是跑了多少时间,也可以是并发量等) 稳定测试:系统是否稳定,长时间运行时是否有内存泄漏 两者并没有太本质的区别,只是关注的点不一样。 8. 即便抛去现网测试因素,在内网下如何判断出接近真实的数据量(用户量,真实配置量等) 性能需求分析重要解决的问题: 需要记住:在互联网应用中,一个服务降级,另一个自动扩容。(!!!非常重要) 100人 ——— 1台服务器 200人 ——— 监控检查到有更大的压力过来了 ———又启动2台服务器 1000人 ——— 监控检查到有更大的压力过来了 ———又启动10台服务器 性能需求分析非常重要。方向不对,努力白费。 性能需求分析即使做了之后,还是会出现问题,说明在服务降级或者自动扩容这些方面存在一些问题。 服务降级是什么? 系统比较繁忙时,停掉一些不常用的服务。 80%的用户,支持20%的功能。 9. 内网下的性能测试数据量,标准时如何来的呢? 性能需求分析重要解决的问题: 如果你做的系统是业界已经有的系统,那就用业界标准; 如果你做的系统是业界最新,标准就是你们自己定的,这里的标准来源于几个方向: 1)产品说明——大家期望的结果 2)基准测试的结果——实际上的标准(当然大家要同意) 10. 这些每一种类型的测试后面都有实战吗? 不完全有。 11. 其实我在想淘宝的那种现网性能测试他们是怎么测的? 全链路压测: 存在几个问题:担心线上用户,担心数据污染线上数据库,应用比较复杂时协调各部门比较复杂。 淘宝之类的,能解决上述问题,所以他们能进行线上压测。 12. 我想知道基准测试,什么时候做,做几次? 第一个版本第一轮。测第一轮的时候可能测好几次。 比如,产品要求TPS100, 相应时间在1秒内: 实际测试结果TPS90, 相应时间1秒。测多次后,定一个基准。 一般是在大面积做性能测试之前,先做一下基准测试。 13. 全链路压测是什么意思? 14. 什么是失效恢复测试? 15. 当一个接口,根据数据不同,会走不同的分支,逻辑不同,然后性能跑出来的基线都不一样,怎么测性能? 答:关键(起点)—> 性能需区分分析 —> 各种准备(数据准备) —> 这个问题不存在了 16. 项目中介入第三方支付,需要用户绑卡和授权支付,这种场景下的性能如何测试?支付过程中需要使用的数据都是正实的,第三方支付对支付笔数和金额是有限制的,这种场景的测试数据如何设计? 答:1) mock。 2)模拟数据 。3)导入真实数据,脱敏等等 17. 如何学习软件性能测试 17.1 L0需要掌握的知识技能 1)需求分析只是:用户分析性能测试需求 2)测试分析设计能力:(不具备该能力,功能测试都做不好),用于设计压测方案 3)一定的代码能力(Java,python):用户编写性能测试脚本 4)Linux知识:环境搭建,监控工具部署等 5)数据库知识:oracle或者 mysql 6)网络知识:如http协议 7)工具使用:loadrunner等 8)中间件知识:tomcat, nginx等 9)文档编写能力:测试报告编写 17.2 如何学习性能测试 17.3 我们要达到的目标 1)熟练分析项目性能测试需求 2)能独立编写性能测试脚本 3)能独立执行性能测试 4)能熟练收集相关性能数据,并做简单分析(知道一些套路) 5)目标决定方向,同时表明了重点 17.4 性能测试理论在性能测试中的位置 1)作为后续课程的基础 2)可理解为葵花宝典总纲“要练此功,必先自宫”,用于指导实际性能测试工作 练习题提问汇总: 1~12点 (截图) 性能测试是需要参数化 数据和业务分离很重要 8核16G电脑足够用 第六课? 如何做专业的性能测试(接着上述第四课讲,讲解作业)
—产品规格:产品经理提供 —用户模型:用户喜欢用什么功能,什么时间段用,大概有多少用户 (产品经理不太会说,需要我们自己分析) —系统数据:基础数据(用户名密码地址信息等)和业务数据(买了什么东西花了多少钱等) 为什么需要考虑这些数据? 我们要访问的数据大多放在数据里了。性能测试过程中需要制造大量的数据,是要解决数据库当中数据量比较大时性能低的问题,数据太少的话,和数据库相关的性能问题根本就测不准确。 原则:准备数据时,宁多勿少 —系统架构:一个是逻辑结构,一个是 ?(即有哪些模块构成,在部署的时候分别部署在哪些系统上) 举例:比较粗的逻辑架构:Browser—Tomcat(nginx)—Redis—Mysql 不同硬件不同结构,会对性能有影响。要把架构做好,不然会在很多阶段有很多遗漏,或者影响性能。 —运维日志: 了解运维日志,进一步确定真实用户的数据和行为。 —市场计划:跟市场部要,为来帮助我们考虑性能的扩展性。 —项目管理计划:用来帮助我们明确测试的优先级(重点)。 以上,就能得出我们的性能测试需求,根据性能测试需求,进而设计出压测模型。 —测试需求-》设计出压测模型 2. 在给定的测试环境下,考虑北侧系统的业务压力量和典型场景? 考虑业务量,即进行性能分析。 3. 什么时候可以开始执行性能测试? 一般是在功能稳定后开展的比较多,不然录制脚本后,往往因为开发修改代码,功能出现问题而导致性能测试用例脚本无法运行,测试阻塞。 但目前有些公司的项目可能因为项目要上线赶进度,往往没有做性能才认识的,功能没问题就直接安排上线,等用户多了,出现问题了,才开始性能调优。 6 软件性能测试流程(重点) 1)流程是什么? 需求分析 —> 测试计划 —> 用例编写 —> 测试执行 —> 输出报告 细化: ? ? 前夕准备 中期准备 ? ? ? 测试执行 —————————————— ————————————————— ——————— 需求分析 —> 方案设计—> 计划 —> 脚本编写(环境搭建,预热,数据准备) —> 执行 ,监控 ?? ? ? ? 完成 —— ? ———— 调优 —> 输出报告 (1)需求分析:需求分析和调优是性能测试的难点。? (做什么事情?) 输入: 产品规格 用户模型 系统数据(基础数据和业务数据) 系统架构 运维日志 市场计划 项目管理计划 输出: 性能测试需求分析 (2)方案设计:主要是讲流程思路(比较粗略的),测试用例讲的是具体的一个功能点。(我怎么做这件事,宏观) 测试需求是:什么场景(功能),多少人,在多长时间完成多少事 压测模型是:将上面测试需求,用对应方案,工具,技术来实现 (3)计划编写: 什么时间,什么人,做什么事,什么时间完成 不同的企业,测试计划的编写形式不尽相同,有完成版和精简版 完整版,有项目背景,风险说明,风险应对等等,通常用Word来编写 精简版,事情—时间—谁做, 通常用project来编写 (4)脚本编写: 性能测试脚本 要先了解系统,对接口,功能(模块),彼此间的依赖关系,再开始编写。 常见的问题: —脚本全都放在一个Action里面,耦合性太强 —没有注释 —写完后没在场景中(编译器中)跑,结果压测一开始,脚本就各种报错 (通常先在场景 中跑15分钟) 。。。。。。 第七课? 性能测试执行(5)环境搭建: 性能测试环境 搭建环境需要多少资源,这个环境要满足什么样的需求(比如 4核8g,带宽多少,需要 多少台)? 主要问题:线下环境如何模拟线上环境? 答:能在线上做就在线上做,两个方面: 没上线的,可以在线上做(没上线,没用户); 全链路的方式(已上线,有用户)。——很多小公司做不到 如果不能在线上做,搭建模拟环境,测试机器的扩展系数+自动扩容(或服务降级)构成 一个方案。 如果线上和实际的数据差异过大,缩放后也没有参考意义,大家都不认可,那就不要 做。(主要指数据的差异,配置上的差异没那么大) 性能测试的差异和功能测试的差异分析,差不多。 PS: 搭建环境完成后,要预热。 (6)数据准备: 包括基础数据和业务数据 主要是性能分析的结果:准备多少数据? 测试方案:怎么准备?(业务生成,SQL存储过程,工具生成,导入线上数据(敏感数据 要脱敏)) 具体准备:测试准备 自动扩容,扩容系数。。。!!!需要进一步理解 性能测试忌讳记住死数据,要记住的是思想思路。流程是怎么玩的,为什么要这么做,不 这么做的问题是什么。 (7)执行压测 设置好场景,跑数据跑出来 (8)监控搜集数据 监控:为了搜集数据,为后面分析和调优做准备 (9)分析调优 调优往往是一个团队的事 调优:为了软件更好,更能服务预期 过程:是一个迭代反复的。 (10)编写报告 什么人,看什么数据,是有讲究的 比如: 给领导看的报告,如何写?(过程中的问题和成长) 给客户看的报告,如何写?(结果) 2)为什么需要流程? 保证项目顺利进行 第八课? 性能测试中的理论模型7 性能测试指标(重点) 7.1 性能指标详解 1)并发用户数/在线用户数/注册用户数 并发用户数 <= 在线用户数 <= 注册用户数 12306同时在线买票的用户,12306登上去的所有用户,12306的注册用户数 Ps: 并发用户数是用来压测的。注册用户数会根据这个值来造数据。 2)响应时间: 响应时间是和一定的用户行为联系在一起的,对外说的时候:TPS多少的时候,响应时间是多少? 响应时间一般是越短越好,需要看具体测试对象的标准。 响应时间组成(web): —打开浏览器,在百度中输入:新浪 —浏览器自身的处理 —DNS的解析时间:host — 本地DNS —国内DNS — 国际DNS —TCP建连时间:三次握手所需要花费的时间 —请求在网络上传输的时间 —服务端接收时间 —服务端解析时间:OSI网络模型接缝状到找到具体的业务程序解析所花费的时间 —数据库处理时间 —数据发送给客户端的时间 —数据在网络上传输的时间 —客户端收到数据并呈现出来所需要的时间 —整个业务处理中经过的模块话费的都要考虑进来 3)TPS:每秒事物数 用来衡量系统处理业务的能力,根据实际需要增加。 注意: 这是看在客户端的角度来说的,并不是服务端自己定义的。 单位是:xx个/秒 举例:测试登录的性能,一个事务里面可能有很多的请求。 4)吞吐量: 用于反应客户端和服务器之间网络状况的一个指标,其能间接反应服务器承受的系统压力。 衡量网络性能的实际指标(带宽是理论指标) 实际单位是:比特/秒 (bit/s) 5)思考时间: 模拟真实用户操作而停顿的时间间隔。 思考时间会影响系统TPS。 编写脚本的时候,要考虑思考时间 6)资源利用率 — 之 cpu, 内存,网络, IO(磁盘的,网络的)? (在资源监听器窗口可以看) —CPU: 物理cpu, 逻辑cpu,cpu核心数。(百度,这几个概念要搞清楚) 关注具体指标: 会看整体是否够用。 会看具体要测试的程序用掉多少CPU。 (性能测试里,定性不定量) —内存 Windows 系统显示用了多少就是多少 Linux 所有的内存都会被系统拿来用。 关注具体指标: 会看整体是否够用。 会看具体要测试的程序用掉多少内存。 有没有交换分区 ———如果使用交换分区,也表明了系统的内存紧张。(win和linux都有,一般当内存使用了80-90%的时候,基本都在使用交换分区了) —网络(连接客户端和服务端) 关注:带宽,实际吞吐量是多少,丢包率是多少,一般有丢包率的时候还有延迟 —IO (典型:硬盘读写) 关注:当前使用了多少,是谁在读在写,他们各自占用了多少 7.2 不同视角下的性能指标 —用户视觉:TPS, 响应时间 —开发视觉:代码能跑多快 —运维视觉:CPU, 内存,网络,IO —测试视觉:上述全部 8 性能测试中的理论模型(重点) 8.1 性能测试拐点模型 (图) TPS和吞吐量是有本质区别的。 TPS是:用来衡量服务端处理业务的个数,是一个网络指标,是实际的值,带宽是一个理论值。 吞吐量是:客户端和服务端之间的网络性能,间接的反应服务端的处理能力。(这里是吞吐量还是响应时间?) 第九课? 性能测试的拐点模型分析8 性能测试中的理论模型(重点) 8.1 性能测试拐点模型 (图) 1)随着压力增大,响应时间逐渐变大 2)随着压力增大,吞吐量显示逐渐增大,维持一个较高水平,之后吞吐量会下降 3)随着压力增大,资源利用率显示逐渐增大,维持一个较高水平 该模型用于统筹一些指标之间的关系。 这些关系在后面实战及实际工作中可用于排查定位性能问题。 出现拐点的地方,是我们要重点关注的点。 理论情况下,系统在压力大到不可接受后,如果出现崩溃,tps会断崖式下跌。 8.2 理发师模型 该模型用于理解资源调度和业务排队等待之间的关系。 最大的好处是,让我们理解到压力增大之后,吞吐量为什么会降低,资源利用率为什么会 逐渐增高。。。(自己搜相关概念来理解)(模型图跟拐点模型基本一样) 9 前端性能测试 9.1 前端性能测试概述(图) 前端性能测试是一个用户的行为,而服务端性能测试是很多用户并发起来的行为。 9.2 前端性能测试工具介绍 —httpwatch —Fiddler —浏览器自带开发工具 —在线前端性能测试工具 : https://gtmetrix.com (这是谷歌的一个工具,在谷歌浏览器打开,然后输入你要测试的网址。 默认用国外的服务器,如果要用国内的,注册,选择一个国内服务器?) (运行完了之后看结果,重点看标红的项) (这个工具能出来很多具体的问题分析,很方便,建议使用) 前端性能测试工具:浏览器的开发者工具(F12), httpwatch, 在线免费工具等。 9.3 前端性能优化工具介绍(略) 1)smush.it 图片优化 2)PunyPNG图片优化 3)SiteReportCard图片优化 4)js优化 5)css优化 9.4 前端性能测试实战 1)注册一个https://gtmetrix.com 账号,并登录 2)输入 www.sina.com.cn 并开始测试 3)搜集测试数据,并分析测试结果是否符合预期 10 App 性能测试 某个角度来说,APP装在移动设备中,可以看作是嵌入式设备。 所以APP的性能测试既受嵌入式设备的限制,也要考虑APP自身的特点。 这里的性能测试,重点是服务器端,APP性能测试略。 作业解答:
TPS —— 响应时间 分析:初步性能数据是否满足预期? 满足呢,则看四大件有没有潜在风险,有潜在风险的话,分析。 不满足呢,分析,看看瓶颈点在哪里,看谁占用过多的资源,再进一步确认它占用这么多资源和不合理,如果合理,ok。如果不合理,开发介入优化。 2. 你如何设计负载?标准是什么? 测试出满足产品需求的数据(假设是50) 开始设计负载测试,以大于50的压力开始跑,比如60,70, 80…….开始跑负载测试,直到系统挂掉(压力测试压挂掉系统时的压力) 实际上 更关注性能测试,更关注系统的稳定性 要知道系统能不能满足应用 要知道系统什么时间点开始不满足应用 什么情况下会挂掉 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 16:46:53- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |