怎样正确做 Web 应用的压力测试?

这篇具有很好参考价值的文章主要介绍了怎样正确做 Web 应用的压力测试?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

怎样正确做 Web 应用的压力测试?
Web应用,通俗来讲就是一个网站,主要依托于浏览器来访问其功能。
那怎么正确做网站的压力测试呢?
提到压力测试,我们想到的是服务端压力测试,其实这是片面的,完整的压力测试包含服务端压力测试和前端压力测试。

一、Web应用(网站)压力测试范围,包含前后端

Web应用(网站)最开始是不分前后端的(所以,那段时间PHP这门专门用于建站的语言非常火),后来随着网站功能越来越丰富,前后端不分离的架构显得低效和落后,这时候前后端分离的架构应用而生(PHP从此衰弱了)。
在前后端分离的架构模式下,前后端工程师约定好数据交互接口,实现并行开发。所以,一个Web应用(网站)其实是包含前端和后端两个独立的部分。

怎样正确做 Web 应用的压力测试?

前后端分离
  
Google DoubleClick 研究表明:如果一个网页加载时长每增加 1 秒,用户就会流失 10%,加载时长超过 3 秒,用户就会离开。
因此,对于一个新的Web应用来说,除了常见的服务端压力测试,前端的压力测试也是不可或缺的。一个完整的web应用压力测试流程如下图所示:

怎样正确做 Web 应用的压力测试?

二、前后端压测流程

step1、确定压测范围和压测目标
压测范围:如果是全新的项目,原则上所有的功能和接口基本都要压测。如果是老项目新增需求,则需要评估影响范围,以便确定老的功能和接口是否需要压测。
压测目标:如果是全新的项目,要根据行业内的基本情况和经验定一个预估目标;如果是老项目,可以根据历史流量峰值作为参考目标。
step2、制定压测方案
根据上一步的预期目标,制定压测方案。具体包含:压测环境,压测时间,相关负责人,测试工具或平台,验收标准。
压测环境:为了还原真实的压力场景,一般选择预发环境或生产环境进行压测。
  
压测时间:压测一般在功能测试接口测试完成后介入。
  
压测工具或平台:前端压测可以使用PageSpeed等平台,后端压测一般会使用 jmeterloadrunner等工具。(详细内容见补充1,补充2)
  
验收标准:一般来说要达到压测目标的预估值。
  
3、压测准备
  
压测机:准备好压测机群(后端用),用于发送请求。
  
服务器:由于压测流量会较高,所以需要提前准备服务器集群,用于承接流量或扩容使用
  
数据准备:准备用于压测的数据,一般来说要和真实数据做区分。准备压测脚本,添加标识,以便于和真实流量区分。
  
4、实施压测
  
施压:在施压的过程中,从较小流量开始,逐步加压。
  
观察:在逐步加压的过程,需要观察rt、error(报错率)、服务器的cpu、内存使用率等数据,如发现异常要及时停止压测,待排查和解决问题后再进行压测。
  
5、压测观察&瓶颈分析
  
如何判断应用的承受能力?
  
在压测过程中观察报错率、响应时间等指标,如出现指标异常,则说明流量达到当前的瓶颈,需要停止压测分析并排查原因。
  
以下是几种常见异常的分析方法:
  
·成功率未达标:查看错误日志,排查错误根本原因,进行性能调优
  
· 响应时间未达标:对照错误日志、链路追踪结果、服务器性能指标、数据库/中间件监控指标,找到响应时间过长的具体原因
  
· 吞吐量未达标:如果成功率和响应时间均达标,建议不断增加模拟用户数,重新压测,查看测试结果
  
什么时候需要增加服务器?
  
在上一步出现瓶颈调优之后,继续加压,观察各项指标:
  
· 第一种情况:服务器cpu、内存等指标均未达瓶颈(通常以使用率达到70%-80%为瓶颈),qps、rt、报错率等指标出现异常,此时需要重复上一步,排查问题并优化
  
· 第二种情况:rt、报错率等指标未出现异常,服务器cpu、内存使用率即将达到瓶颈,且未达到预期的压测目标,此时无法通过调优来解决,需要增加服务器。

怎样正确做 Web 应用的压力测试?

服务器指标监控
  
6、验收
  
达到预期目标:达到预期目标,一般可以认为压测通过。
  
未达到预期目标:如因各方面原因(资源、预算等)未达预期目标,需要产品经理和研发经理对压测结果确认。
  
7、发送压测报告
  
8、项目上线
  
前面的步骤都完成之后,项目可以发布上线。
  

三、补充前端该如何压测

  
Google 开发者提出了一种 RAIL 模型来衡量应用的前端性能,即 response(响应)、animation(动画)、idle(空闲)与load(加载)。

怎样正确做 Web 应用的压力测试?

  
RAIL 模型的广泛使用关键指标如下:

怎样正确做 Web 应用的压力测试?

  
工具使用:PageSpeed
  
PageSpeed 是 google 一个开源的自动化工具,安装 PageSpeed 扩展程序运行即可
  
报告结果如图:

怎样正确做 Web 应用的压力测试?

  
该工具功能丰富,报告也非常详细,并给出了优化建议,根据测试报告做对应的优化即可。
  

四:补充后端该如何压测

  
后端即指服务端,后端压测就是服务端压测,也可以称为服务器压力测试。
  
在压测过程中,一般关注下面几个指标:qps(处理的请求量)、rt(响应时间)、error(报错率)、cup(cpu使用率)、mem(内存占用情况)、load(负载)、traffic(网络速率)。
 
 
通过观察qps、rt、error等关键指标,找到服务器的性能瓶颈,如果低于预期,则需要调优。

怎样正确做 Web 应用的压力测试?

  
通过压力测试,提前发现服务器瓶颈,及时优化,避免网站一上线就奔溃。
  
工具:压测常用的工具有LoadRunner和Jmeter。
  
Jmeter 是一款使用Java开发的,开源免费的测试工具, 主要用来做性能测试,JMeter 可以用于对服务器、网络或对象模拟巨大的负载,有丰富的图形界面+脚本配置,方便易用。
  
LoadRunner 是一种预测系统行为和性能的负载测试工具。通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题。

最后:下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取【保证100%免费】

怎样正确做 Web 应用的压力测试?

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

怎样正确做 Web 应用的压力测试?

怎样正确做 Web 应用的压力测试?文章来源地址https://www.toymoban.com/news/detail-450177.html

到了这里,关于怎样正确做 Web 应用的压力测试?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 十个免费的 Web 压力测试工具

    2024软件测试面试刷题,这个小程序(永久刷题),靠它快速找到工作了!(刷题APP的天花板)-CSDN博客 文章浏览阅读1.3k次,点赞60次,收藏8次。你知不知道有这么一个软件测试面试的刷题小程序。里面包含了面试常问的软件测试基础题,web自动化测试、app自动化测试、接口

    2024年02月22日
    浏览(41)
  • 区块链安全应用-------压力测试

    第一步:搭链 1. 安装依赖 在ubuntu操作系统中,操作步骤如下: 2. 创建操作目录, 下载安装脚本 3. 启动链 第二步:配置网络配置文件 在networks/fisco-bcos/test/创建fisco-bcos2.json配置网络适配文件: 第三步,对本地四节点链进行测试 测试和进程资源状态都可以监测,但在本地监测

    2024年04月24日
    浏览(22)
  • 区块链安全应用----压力测试

    1.环境配置 第一步. 配置基本环境 部署Caliper的计算机需要有外网权限; 操作系统版本需要满足以下要求:Ubuntu = 16.04、CentOS = 7或MacOS = 10.14; 部署Caliper的计算机需要安装有以下软件:python 2.7、make、g++、gcc及git。 第二步. 安装NodeJS 版本要求: NodeJS 8 (LTS), 9, 或 10 (LTS),Calip

    2024年04月23日
    浏览(35)
  • 17.应用负载压力测试

    早些点,下午题考,最近几年出现的少; 备考较为简单;历年真题相似度高; 主要议题: 注意这些测试细微的差别; 负载测试和压力测试的方法比较相似,但是目的不同; 1、负载测试:逐步增加系统的负载,以便 获取系统最大的负载情况 ;如服务器最大允许多少用户查

    2024年04月14日
    浏览(34)
  • 软件测试-功能测试-测试流程-如何进行需求评审?对于测试人员来讲,如何从测试的角度评审需求文档?

    产品人员编写的需求文档,无疑是一个项目或者一项新功能的开端。需求文档的优劣,直接影响开发人员的代码质量,更会影响到后续的测试工作。所以,我认为,需求评审对于开发质量以及测试质量至关重要,那么,如何做好一次优秀的评审,或者说,如何去评审一份需求

    2024年02月19日
    浏览(66)
  • 对Mysql和应用微服务做TPS压力测试

    使用工具:mysqlslap工具 使用命令: 对命令行的诠释: 连接MySQL的用户名为root 生成自动SQL语句 使用混合类型的负载进行测试 设定并发数为100到200 每次执行1000个查询 迭代10次 整数列的数量为7 字符列的数量为13 使用自增字段 执行结果如下: 对结果的诠释: 所有查询平均运

    2024年02月03日
    浏览(31)
  • Nginx到底能干嘛?!Nginx是做什么用的?通俗易懂,前端必看!

            Nginx是一个 轻量级/高性能的反向代理Web服务器,它是由C语言写的,所以速度非常快、性能非常优秀。它的主要功能就是反向代理、负载均衡、配置SSL证书、防盗链、解决跨域问题、缓存、限流、动静资源分离等等。         上面介绍了Nginx是一台Web服务器,实际

    2023年04月11日
    浏览(42)
  • 在Android Studio上使用Monkey工具对安卓应用进行压力测试

    2–pct-trackball 调整轨迹事件的百分比(轨迹事件由一个或几个随机的移动组成,有时还伴随有点击)–(轨迹球) 3–pct-nav 调整“基本”导航事件的百分比(导航事件由来自方向输入设备的up/down/left/right组成) 4–pct-majornav 调整“主要”导航事件的百分比(这些导航事件通常引发图

    2024年04月15日
    浏览(49)
  • 最好用的AI创作工具Midjourney怎样使用,AI绘画注册使用教程

    Midjourney 是一个人工智能绘图平台,可以从自然语言描述中生成图像。基于 Transformer 模型和 GAN(生成对抗网络)技术。由一支小型自筹资金团队创立,专注于设计、人类基础设施和人工智能。它由 11 名全职员工和一批优秀的技术顾问组成。 它于 2022 年 3 月 14 日正式以架设在

    2024年02月13日
    浏览(67)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包