网站设计公司苏州,可以玩的网页游戏,浙江网站建设有哪些,河北高端网站设计公司身为后端程序员怎么也要会一点压力测试相关的技术吧, 不然无脑上线项目万一项目火了进来大量请求时出现程序执行缓慢, 宕机等情况你肯定稳稳背锅, 而且这个时候短时间内还没办法解决, 只能使用物理扩容CPU, 内存, 更换网络等几种方式来解决问题, 妥妥的为公司增加支出好吧, 下一…身为后端程序员怎么也要会一点压力测试相关的技术吧, 不然无脑上线项目万一项目火了进来大量请求时出现程序执行缓慢, 宕机等情况你肯定稳稳背锅, 而且这个时候短时间内还没办法解决, 只能使用物理扩容CPU, 内存, 更换网络等几种方式来解决问题, 妥妥的为公司增加支出好吧, 下一个被开的就是你都是想跑路拿高薪的打工仔, 身上怎么可以背负污点, 赶紧学一手压力测试进行保命, 我先学为敬。本篇文章主打一个学完就会, 奥利给性能调优对各个开发岗位的区别各个岗位对性能调优的关键节点首屏时间: 初次访问项目等待加载时间白屏时间: 刷新页面到数据全部展示时间可交互时间完全加载时间RT: 响应时间TRS: 每秒事务数并发数: 这应该不会解释了吧端到端相应时间Crash率内存使用率FPS前端工程师:后端工程师移动端工程师影响性能的关键要素产品逻辑功能交互动态效果页面元素架构不合理研发功底和经验不足没有性能意识: 只实现功能不注重代码性能, 当业务上量后系统出现连锁反应, 导致性能问题增加数据库: 慢查询, 过多查询, 索引使用不当, 数据库服务器瓶颈设备类型性能系统版本网络(WiFi, 2G, 3G, 4G, 5G)硬件及云服务(服务器硬件, CPU, 内存..)产品设计基础网络代码质量架构用户移动端环境01 初步了解压力测试 1.1压力测试是什么1.2压力测试的目的1.3压力测试的指标指标含义相应时间(RT)是指系统对请求作出响应的平均时间, 对于单用户的系统, 响应时间可以很好地度量系统的性能吞吐量(Throughput)是指系统在单位时间内处理的数量, 每秒事务数TPS 也算是吞吐量的一种资源利用率CPU占用率, 内存使用率, 系统负载, 网络IO并发用户数是指系统可以同时承载的正常使用系统功能的用户的数量, 用户不同的使用模式会导致不同用户在单位时间发出不同数量的请求错误率失败请求占比, 在测试时添加响应断言, 验证不通过即标记为错误, 若不添加, 响应码非200则为错误上图充分的展示了响应时间, 吞吐量, 利用率和并发用户数之间的关系。随着并发用户的增加经过轻负载区, 达到最优并发数, 此时利用率高,吞吐量高, 响应时间短。但是如果用户数继续增加, 就会到达重负载区, 此时性能最大化, 但是当超过某一临界值(最大并发数)之后, 响应时间会急剧增加, 利用率平缓, 吞吐量急速下降。我们进行压测的目的主要就是测试出这个临界值的大小, 或者说, 我们系统当前能承受住的最大并发数。02 压力测试工具JMeter老规矩, 先来一波软件介绍 JMeter是 Apache组织开发的基于 Java的开源压力测试工具, 具有体积小, 功能全, 使用方便等特点. 最初被设计用于 Web应用测试, 后来被扩展到其他测试领域.Apache JMeter可视化的测试工具LoadRunner 预测系统行为和性能的负载测试工具Apache的 ab压力测试nGrinder韩国研发的一款性能测试工具PAS阿里测试工具负载上升各项指标是否正常发现性能短板高并发下系统是否稳定预估系统最大负载常用压测工具:压测目标: 2.1安装 JMeter官网地址:jmeter.apache.org/熟悉的download, 点他开始下载(是真的慢)解压之后进入 bin目录下, 双击 jmeter.bat, 就可以启动 JMeter了上图可以看出, 在我们第一次打开界面时是英文的, 多少有点不友好, 接下来讲解一下怎么将语言更改为中文 2.2设置 JMeter界面为中文还是我们的 bin目录下, 有一个 jmeter.properties文件双击打开, 搜索language去除#号, 值更改为zh_CN, 保存文件然后重启软件(双击jmeter.bat)可以看到, 我们的 jmeter成功更改为了中文界面, 这对于我这种英语白痴来说是很舒服的 2.3初步使用 JMeter我们先随便创建一个测试用例, 就是简单测试, 同时讲解一下常用的参数本次测试采用 20线程, 1秒启动时间, 循环100次, Get请求2.3.1 创建线程组持续时间: 该任务执行的时间启动延迟: 等待多少秒开始执行线程数: 虚拟的用户数, 一个用户占一个线程Ramp-Up: 等待时间, 设置的虚拟用户(线程数)需要多长时间全部启动循环次数: 单个线程发送请求的次数调度器:2.3.2 创建 http请求右键线程组-添加HTTP请求这个中文讲解的很明白, 应该都看得懂的, 有疑问的评论区留言2.3.3 结果树线程组右键-添加-监听器-查看结果树执行结果分析(启动之后显示界面)列表列出了每一次的HTTP请求, 绿色的是成功, 红色的话就是失败Thread Name线程组名称Sample Start: 启动开始时间Load time加载时长Latency等待时长Size in bytes发送的数据总大小Headers size in bytes发送数据的其余部分大小Sample Count发送统计Error Count交互错误统计Response code返回码Response message返回信息Response headers返回的头部信息取样器结果参数详解基本数据入参请求头响应码响应头请求相应数据2.3.4 聚合报告线程组右键-添加-监听器-聚合报告执行结果分析(启动之后界面)参数解释样本: 并发量平均值: 接口请求用时(单位毫秒)中位数: 请求用时中位数(单位毫秒), 例如2000请求以请求时间排序, 排名1000的用时时长90%百分位, 95%百分位, 99%百分位和中位数同理最小, 最大值: 请求用时最小和最大异常% : 请求中异常的百分比吞吐量: 单位时间内请求次数2.3.5 图形结果线程组右键-添加-监听器-图形结果执行结果分析(启动之后显示界面)样本数目总共发送到服务器的请求数。最新样本代表时间的数字是服务器响应最后一个请求的时间。吞吐量服务器每分钟处理的请求数。平均值总运行时间除以发送到服务器的请求数。中间值有一半的服务器响应时间低于该值而另一半高于该值。偏离表示服务器响应时间变化、离散程度测量值的大小。2.3.6 断言断言主要用来判断结果返回是否符合预期线程组右键-添加-断言-响应断言假设我们接口的返回状态码字段为code, 200为成功, 那么就可以在断言这里进行配置, 来判断请求是否成功03 JMeter插件3.1 插件安装首先说明 JMeter是不支持插件的, 所以我们先要 JMeter的插件允许插件下载, 这句话多少有点拗口网址:Install :: JMeter-Plugins.org点击上图红框即可下载插件, 前面说过了 JMeter是 Java8开发的, 插件对应的也是一个 jar包下好之后就可以放在 JMeter安装目录下的 lib/ext/ 下了, 具体下载页面也有说明上述操作结束之后, 在选项里面就可以看到插件中心Plugins Manager弹出以下界面, 点击 Available Plugins搜索我们需要的插件Basic Graphs和Additional Graphs, 勾选上, 然后安装Basic Graphs主要显示显示平均响应时间活动线程数成功/失败交易数等Additional Graphs主要显示吞吐量连接时间每秒的点击数等在安装成功之后, 在监听器会相应的多出很多的 jc开头的, 这就代表安装成功了04Linux硬件监控在压测过程中, 我们需要实时了解服务器的CPU, 内存, 网络, 服务器负载等情况的变化, 这个时候我们就需要对我们的 Linux系统进行监控, 通常来讲, 我们查询 Linux系统的资源占用情况可以使用以下几种方法使用命令: top, iostat, iotop等使用 Linux远程连接工具 FinalShell等宝塔JMeter压测工具 PerfMon在 JMeter中, 如果需要监控服务器硬件, 那么我们还需要安装 PerfMon插件PerfMon监控服务器硬件如CPU内存硬盘读写速度等进入下述地址开始下载监控包:github.com/undera/perf…下载好之后我们可以直接解压放到服务器上, 会看到有两个startAgent文件, 分别是Windows系统和Linux系统的启动脚本我们直接启动就可以了, 如果脚本启动连接不上的话可以考虑更改脚本内容例: Linux系统脚本更改为以下内容启动成功之后, 脚本同级路径下会多出log.log的日志文件然后我们就可以配置 JMeter了, 线程组-监听器-jpgc - PerfMon Metrics Collector我是在本地启动了ServerAgent.bat进行测试, 执行结果如下所示:具体的配置指标信息建议看官方文档, 太多了....github.com/undera/perf…ServerAgent闪退问题Windows系统配置好ServerAgent启动之后窗口闪退可能是 jre版本问题, 可以从下面的链接下载老版的 jrewww.aliyundrive.com/s/Yzw3DZ74w…下载好之后, 建议安装目录设置在ServerAgent/jre下并更改startAgent.bat脚本, cd 到老版本 jre路径最后作为一位过来人也是希望大家少走一些弯路在这里我给大家分享一些软件测试的学习资料和我花了3个月整理的软件测试自学全栈这些资料希望能给你前进的路上带来帮助。视频文档获取方式这份文档和视频资料对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库这个仓库也陪伴我走过了最艰难的路程希望也能帮助到你以上均可以分享点下方小卡片即可自行领取。