【白嫖8k买的机构vip教程】Jmeter_性能测试(2):性能测试的流程和术语

性能测试的流程

 一、准备工作

1、系统基础功能验证
一般情况下,只有在系统基础功能测试验证完成、系统趋于稳定的情况下,才会进行性能测试,否则性能测试是无意义的。
2、测试团队组建
根据该项目的具体情况,组建一个几人的性能测试team,其中DBA是必不可少的,然后需要一至几名系统开发人员(对应前端、后台等),还有性能测试设计和分析人员、脚本开发和执行人员;在正式开始工作之前,应该对脚本开发和执行人员进行一些培训,或者应该由具有相关经验的人员担任。
3、工具的选择
综合系统设计、工具成本、测试团队的技能来考虑,选择合适的测试工具,最起码应该满足一下几点:
①支持对web(这里以web系统为例)系统的性能测试,支持http和https协议;
②工具的运行平台必须是公司常用的平台;
③支持对webserver、前端、数据库的性能计数器进行监控;
4、预先的业务场景分析
对系统较重要和常用的业务场景模块进行分析,针对性的进行分析,以对接下来的测试计划设计进行准备

二、性能测试计划

1、性能测试领域分析
根据对项目背景,业务的了解,确定本次性能测试要解决的问题点;是测试系统能否满足实际运行时的需要,还是目前的系统在哪些方面制约系统性能的表现,或者,哪些系统因素导致
系统无法跟上业务发展?确定测试领域,然后具体问题具体分析。
2、用户场景剖析和业务建模
根据对系统业务、用户活跃时间、访问频率、场景交互等各方面的分析,整理一个业务场景表,当然其中最好对用户操作场景、步骤进行详细的描述,为测试脚本开发提供依据

3、确定性能目标
前面已经确定了本次性能测试的应用领域,接下来就是针对具体的领域关注点,确定性能目标(指标);其中需要和其他业务部门进行沟通协商,以及结合当前系统的响应时间等数据来进行确定
最终我们需要达到的响应时间和系统资源使用率等目标;比如:
①登录请求到登录成功的页面响应时间不能超过2秒;
②报表审核提交的页面响应时间不能超过5秒;
③文件的上传、下载页面响应时间不超过8秒;
④服务器的CPU平均使用率小于70%,内存使用率小于75%;
⑤各个业务系统的响应时间和服务器资源使用情况在不同测试环境下,各指标随负载变化的情况等;
4、制定测试计划的实施时间
预设本次性能测试各子模块的起止时间,产出,参与人员等等

三、性能测试方案设计

1、测试环境设计

本次性能测试的目标是需要验证系统在实际运行环境中的性能外,还需要考 虑到不同的硬件配置是否会是制约系统性能的重要因素。因此在测试环境中,需 要部署多个不同的测试环境,在不同的硬件配置上检查应用系统的性能,并对不同配置下系统的测试结果进行 分析,得出最优结果(最适合当前系统的配置)。

这里所说的配置大概是如下几类:

①数据库服务器

②应用服务器

③负载模拟器

④软件运行环境,平台

测试环境测试数据,可以根据系统的运行预期来确定,比如需要测试的业务场景, 数据多久执行一次备份转移,该业务场景涉及哪些表,每次操作数据怎样写入, 写入几条,需要多少的 测试数据来使得测试环境的数据保持一致性等等;

可以在首次测试数据生成时,将其导出到本地保存,在每次测试开始前导入数据, 保持一致性。

2、测试场景设计

通过和业务部门沟通以及以往用户操作习惯,确定用户操作习惯模式,以及不同 的场景用户数量,操作次数,确定测试指标,以及性能监控等。

3、测试用例设计

确认测试场景后,在系统已有的操作描述上,进一步完善为可映射为脚本的测试用例描述。

用例大概内容如下:

用例编号:查询表单_xxx_x1(命名以业务操作场景为主,简洁易懂即可)

用例条件:用户已登录、具有对应权限等。。。

操作步骤:

①进入对应页面。。。。。。
②查询相关数据。。。。。。
③勾选导出数据。。。。。。
④修改上传数据。。。。。。

四、测试脚本开发

1、根据性能测试用例的描述,根据公司的实际情况完成测试脚本的开发:
     ① 公司有接口设计文档
   直接把测试用例中需要用到的接口通过接口文档提供的信息录入到性能测试工具。
     ② 公司无接口设计文档
     可利用录制工具进行录制或者结合抓包工具进行手工编写脚本。
2、在工具中完成测试脚本后,进行对性能测试脚本的调试与调优操作(如:关联、参数化、检查点设置、脚本逻辑设置等)

五、测试执行和管理

1、建立测试环境
按照之前已经设计好的测试环境,部署对应的环境,由运维或开发人员进行部署,检查,并仔细调整,同时保持测试环境的干净和稳定,不受外来因素影响。
2、测试数据准备
可以利用测试脚本自动生成业务测试数据、利用工具生成数据或者导入生产环境的业务数据等方式
3、执行测试脚本
这一点比较简单,在已部署好的测试环境中,按照业务场景和编号,按顺序执行我们已经设计好的测试脚本
4、测试结果记录
根据测试采用的工具不同,结果的记录也有不同的形式;现在大多的性能测试工具都提供比较完整的界面图形化的测试结果,当然,对于服务器的资源使用等情况,可以利用一些计数器或第三方监控工具来对其进行记录,执行完测试后,对结果进行整理分析。

六、测试分析

1、测试环境的系统性能分析
根据我们之前记录得到的测试结果(图表、曲线等),经过计算,与预定的性能指标进行对比,确定是否达到了我们需要的结果;如未达到,查看具体的瓶颈点,然后根据瓶颈点的具体数据,进行具体情况具体分析(影响性能的因素很多,这一点,可以根据经验和数据表现来判断分析)
2、硬件设备对系统性能表现的影响分析
由于之前设计了几个不同的测试环境,故可以根据不同测试环境的硬件资源使用状况图进行分析,确定瓶颈是再数据库服务器、应用服务器抑或其他方面,然后针对性的进行优化等操作
3、其他影响因素分析

影响系统性能的因素很多,可以从用户能感受到的场景分析,哪里比较慢,哪里速度尚可,这里可以根据2\5\8原则对其进行分析

七、测试调优和解决

1、确定问题
应用程序代码:在通常情况下,很多程序的性能问题都是写出来的,因此对于发现瓶颈的模块,应该首先检查一下代码。
数据库配置:经常引起整个系统运行缓慢,一些诸如oracle 的大型数据库都是需要DBA进行正确的参数调整才能投产的
操作系统配置:不合理就可能引起系统瓶颈。
硬件设置:硬盘速度、内存大小等都是容易引起瓶颈的原因,因此这些都是分析的重点
网络:网络负载过重导致网络冲突和网络延迟。
2、确定问题产生的原因
当确定了问题之后,我们要明确这个问题影响的是响应时间吞吐量,还是其他问题?是多数用户还是少数用户遇到了问题?如果是少数用户,这几个用户与其它用户的操作有什么不用?系统资源监控的结果是否正常?CPU的使用是否到达极限?I/O 情况如何?问题是否集中在某一类模块中? 是客户端还是服务器出现问题? 系统硬件配置是否够用?实际负载是否超过了系统的负载能力? 是否未对系统进行优化?
通过这些分析及一些与系统相关的问题,可以对系统瓶颈有更深入的了解,进而分析出真正的原因
3、确定调整目标和解决方案
一般由性能测试团队中的DBA、核心开发、运维根据测试的实际情况进行确定并出详细的解决方案进行评审,比如添加服务器方式、调整代码架构等
4、测试解决方案
对通过解决方案调优后的系统进行基准测试。(基准测试是指通过设计科学的测试方法、测试工具和测试系统,实现对一类测试对象的某项性能指标进行定量的和可对比的测试)
5、分析调优结果
系统调优是否达到或者超出了预定目标,系统是整体性能得到了改善,还是以系统某部分性能来解决其他问题。调优是否可以结束了


性能测试术语

负载:

对被测系统不断施加压力,直到性能指标超过预期或某项资源使用达到饱和, 以验证系统的处理极限,为系统性能调优提供依据,如模拟100个用户进行发帖 操作

并发:

①狭义上的并发:所有用户在同一时间点进行同样的操作,一般指同一类型的业 务场景,比如1000个用户同时登录系统;

②广义上的并发:多个用户与系统发生了交互,这些业务场景可以是相同的也可以是不同的,交叉请求和处理较多,比如1000个用户登录系统后,部分在查询、 部分在下单等

事务:

性能测试中,事务指的是从端到端,一个完整的操作过程,比如一次登录、一次 筛选条件查询,一次支付等;技术上讲:事务就是由1个或多个请求组成的

负载测试
  在一定的软件、硬件及网络环境下,通过运行一种或多种业务在不同虚拟用户数量情况下,测试服务器的性能指标是否在用户的要求范围内,用于确定系统所能承载的最大用户数、以及不同用户数下的系统响应时间及服务器的资源利用率。强调系统的稳定性。
  是通过逐步增加系统负载,测试系统性能的变化,并在满足最终确定性能指标的情况下,系统所能承受的最大负载量的测试。
压力测试
在一定的软件、硬件及网络环境下,通过模拟大量的虚拟用户向服务器产生负载,使服务器的资源处于极限状态下长时间连续运行,以测试服务器在高负载情况下是否能够稳定工作。
压力测试与负载测试两者比较:
相同点:都是性能测试的一种类型
不同点:负载测试强调系统正常工作情况下的性能指标;压力测试的目的是发现在什么条件下系统的性能变得不可接受,发现应用程序性能下降的拐点

  总结

如果你对此文有任何疑问,如果你也需要接口项目实战,如果你对软件测试、接口测试、自动化测试、面试经验交流感兴趣欢迎加入我们,加入方式在文章的最后面

  自动化测试相关教程推荐:

2023最新自动化测试自学教程新手小白26天入门最详细教程,目前已有300多人通过学习这套教程入职大厂!!_哔哩哔哩_bilibili

2023最新合集Python自动化测试开发框架【全栈/实战/教程】合集精华,学完年薪40W+_哔哩哔哩_bilibili

测试开发相关教程推荐

2023全网最牛,字节测试开发大佬现场教学,从零开始教你成为年薪百万的测试开发工程师_哔哩哔哩_bilibili

postman/jmeter/fiddler测试工具类教程推荐

讲的最详细JMeter接口测试/接口自动化测试项目实战合集教程,学jmeter接口测试一套教程就够了!!_哔哩哔哩_bilibili

2023自学fiddler抓包,请一定要看完【如何1天学会fiddler抓包】的全网最详细视频教程!!_哔哩哔哩_bilibili

2023全网封神,B站讲的最详细的Postman接口测试实战教学,小白都能学会_哔哩哔哩_bilibili

  总结:

 光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

​​​

​​​

如果对你有帮助的话,点个赞收个藏,给作者一个鼓励。也方便你下次能够快速查找。

如有不懂还要咨询下方小卡片,博主也希望和志同道合的测试人员一起学习进步

在适当的年龄,选择适当的岗位,尽量去发挥好自己的优势。

我的自动化测试开发之路,一路走来都离不每个阶段的计划,因为自己喜欢规划和总结,

测试开发视频教程、学习笔记领取传送门!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/395487.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【软考问题】-- 10 - 知识精讲 - 项目风险管理

一、基本问题 1:按照可预测性,风险分哪三类? (1)已知风险:如项目目标不明确, 过分乐观的进度计划, 设计或施工变更和材料价格波动等。(2)可预测风险&#xff…

unity学习(20)——客户端与服务器合力完成注册功能(2)调试注册逻辑

接着上一节的问题,想办法升级成具备数据库功能的服务器,这个是必须的。 至少在初始化要学会把文件转换为session,新知识,有挑战的。 现在是从LoginHandler.cs跳到了AccountBiz.cs的create,跳度还是很大的。 create函…

ChromeDriver | 谷歌浏览器驱动下载地址 及 浏览器版本禁止更新

在使用selenoum时,需要chrome浏览器的版本和chrome浏览器驱动的版本一致匹配,才能进行自动化测试 一、ChromeDriver驱动镜像网址 国内可以搜到的谷歌浏览器下载地址里面最新的驱动器只有114版本的CNPM Binaries Mirror 在其他博主那找到了最新版本12X的…

K8s进阶之路-核心概念/架构:

架构:Master/Node Master组件--主控节点{ 负责集群管理(接收用户事件转化成任务分散到node节点上)} Apiserver: 资源操作的唯一入口,提供认证、授权、API注册和发现等机制 Scheduler : 负责集群资源调度&am…

Springboot AOP开发

Springboot AOP开发 一 AOP概述 AOP,即面向切面编程,简言之,面向方法编程。 针对方法,在方法的执行前或执行后使用,用于增强方法,或拓展。 二 AOP开发 1.引入 spring-boot-starter-aop 在SpringBoot项…

嵌入式学习-C++Day7QT Day1

思维导图 作业:窗口的一些操作的实现 #include "mywidget.h"Mywidget::Mywidget(QWidget *parent): QWidget(parent) {this->setWindowTitle("QQ");this->setWindowIcon(QIcon("C:\\Users\\xuyan\\Desktop\\others\\1.jpg"));…

Linux 内存top命令详解

通过top命令可以监控当前机器的内存实时使用情况,该命令的参数解释如下: 第一行 15:30:14 —— 当前系统时间 up 1167 days, 5:02 —— 系统已经运行的时长,格式为时:分 1 users ——当前有1个用户登录系统 load average: 0.00, 0.01, 0.05…

微信小程序swiper 视频中间大,两边小,轮播滑到中间视频自动播放组件教程

静态效果&#xff1a; 进入下面小程序可以体验效果&#xff0c;点击底部 看剧 栏目 一、创建小程序组件 二、代码 1、WXML <view class"swiper-wrapper" style"background-image:url(/asset/image/hot-banner.jpg);background-size: 100% 100%;">…

JS逆向---RSA登录模拟实例()

文章目录 前言一. 实战分析 前言 该文章是结合前一篇&#xff0c;测试例子是匀加速商城&#xff0c;登录状态下对其密码加密的逆向&#xff0c;比较简单容易上手&#xff0c;作为练习项目 声明 本文章中所有内容仅供学习交流使用&#xff0c;不用于其他任何目的&#xff0c;不…

C++Qt——信号与槽

Qt信号与槽——建立信号与槽 平常我们所见到的界面&#xff0c;鼠标点击一下指定的按钮&#xff0c;就会产生一定的效果。C Qt框架中的信号与槽机制是Qt进行对象间通信的一种方法&#xff0c;非常核心且有别于传统的回调函数或者消息传递机制。通过信号与槽&#xff0c;Qt能够…

迈向AI时代:掌握Python编程与ChatGPT的强强联手

文章目录 一、ChatGPT与Python编程的结合二、利用ChatGPT学习Python编程的优势三、如何使用ChatGPT学习Python编程四、学习技巧与建议《码上行动&#xff1a;用ChatGPT学会Python编程》特色内容简介作者简介目录获取方式 随着人工智能技术的飞速发展&#xff0c;编程已经成为了…

MySQL学习记录——십일 索引

文章目录 1、了解索引2、聚簇、非聚簇索引3、操作1、主键索引2、唯一键索引3、普通索引4、注意事项 4、全文索引 1、了解索引 MySQL服务器是在内存中的&#xff0c;所有数据库的CURD操作都是在内存中进行&#xff0c;索引也是如此。索引是用来提高性能的&#xff0c;它通过组织…

[ai笔记10] 关于sora火爆的反思

欢迎来到文思源想的ai空间&#xff0c;这是技术老兵重学ai以及成长思考的第10篇分享&#xff01; 最近sora还持续在技术圈、博客、抖音发酵&#xff0c;许多人都在纷纷发表对它的看法&#xff0c;这是一个既让人惊喜也感到焦虑的事件。openai从2023年开始&#xff0c;每隔几个…

【软考问题】-- 14 - 知识精讲 - 项目配置与变更管理

一、基本问题 问题1&#xff1a;什么是配置项&#xff1f; 定义&#xff1a;为配置管理设计的硬件、 软件或二者的集合&#xff0c; 在配置管理过程中作为一个单个实体来对待。分类&#xff1a;软件、硬件和各种文档。问题2&#xff1a;配置库分为哪三类&#xff1f; &#xff…

如何用 Moodle 和 ONLYOFFICE 创建在线学习平台

在教学过程中使用现代在线学习软件&#xff0c;已不再是什么稀奇事。在世界各地&#xff0c;越来越多的教师和学生都在使用现代技术&#xff0c;应用新的学习场景&#xff0c;包括学生在传统课堂之外更积极的参与、更密切的互动。 Moodle 支持各类学校和大学充分利用在线教育过…

单片机和RTOS

一.单片机和RTOS区别 单片机是一种集成了处理器、内存、输入输出接口和外围设备控制器等功能的微型计算机系统。它通常用于控制简单的嵌入式系统&#xff0c;如家电、汽车电子、工业控制等。单片机具有低功耗、低成本和高可靠性等特点。 而RTOS&#xff08;Real-Time Operati…

每日一题(珠玑妙算,两数之和)

面试题 16.15. 珠玑妙算 - 力扣&#xff08;LeetCode&#xff09; int* masterMind(char* solution, char* guess, int* returnSize) //定义一个函数masterMind&#xff0c;它接受三个参数&#xff1a;solution&#xff08;正确答案&#xff09;&#xff0c;guess&#xff08;玩…

2024年及以后在您的项目中使用的最佳CSS框架

在过去几年中&#xff0c;CSS已经取得了长足的进步。在过去&#xff0c;您可能会使用CSS来创建依赖于HTML表格和CSS浮动作为其布局系统的简单外观的Web应用程序。而现在&#xff0c;您可以设计复杂的交互式用户界面&#xff0c;具有优雅的设计。 尽管CSS变得越来越先进&#x…

前端(二十七)——封装指南:Axios接口、常用功能、Vue和React中的封装技术

&#x1f60a;博主&#xff1a;小猫娃来啦 &#x1f60a;文章核心&#xff1a;前端封装指南&#xff1a;Axios接口、常用功能、Vue和React中的封装技术 本文目录 小引前端封装以真实项目举个例子 Axios接口封装常用功能封装封装 Vue中的封装技术React中的封装技术Vue和React封装…

Java+Vue+MySQL,国产动漫网站全栈升级

✍✍计算机编程指导师 ⭐⭐个人介绍&#xff1a;自己非常喜欢研究技术问题&#xff01;专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目&#xff1a;有源码或者技术上的问题欢迎在评论区一起讨论交流&#xff01; ⚡⚡ Java实战 |…