网络培训

Jmeter工具性能测试培训《一》

LensNews

一、性能测试介绍
测试目的:发现服务器的性能测试瓶颈。配置的不同能够承载的最大任务数不同,能够承载的压力也不同。
进程与线程:进程是具有一定独立功能的程序,关于某个数据集合上的一次运行活动,是系统进行资源分配和调度的一个独立单位。线程是进程的一个实体,是cpu调度和分派的基本单位。
一个线程只能属于一个进程,而一个进程可以拥有多个进程。线程是进程工作的最小单位。
测试流程:(拿到一个性能测试项目后)
1、需求分析-用例设计-脚本录制-脚本优化-脚本回放-场景设计-场景执行-结果收集-结果分析。
2、需求分析-性能指标制定(一个软件总归有性能瓶颈,什么样的标准满足我们现阶段的性能需求呢)- 脚本开发(loadrunner,jmeter,ab,webench)- 场景设置(符合用户在使用我们程序的操作流程)- 监控部署(数据库+服务器+应用程序,通过监控查看我们的运行状态)-测试执行(首先基准测试,少量的用户)- 性能测试结果收集和分析-性能调优。
针对以上性能测试的流程,我们逐一的进行讲解和介绍

二、性能测试常见术语
性能测试:通过模拟软件运行时的业务压力与使用场景组合,测试系统的性能是否满足生产性能要求(这种方法是在特定的运行条件下验证系统的能力情况)
压力测试:该方法是测试系统在一定的饱和状态下,系统能够处理的业务能力,以及系统是否会出现错误。(压力测试一般是检测系统是否在一定压力条件下持续提供服务)
负载测试:是指在持续加压的情况下,使得系统性能指标超过预期目标或者某种资源的使用达到一种饱和状态(这种方法是找出系统性能的极限,配合系统的性能调优 使用)
容量测试:通常指数据库层面,观察数据库的处理能力,获取数据库的各项性能指标。
可靠性测试:是指系统在高压的情况下,长时间运行系统是否稳定。如CPU使用率在80%以上,7*24小时运行是否稳定。
并发数:并发的意思就是一起出发(并发并非绝对意义的并发,只是在某一点上做到并发,并发一般是算时间段,并发数是真正产生压力的)
在线用户:即为我们的在线用户数,并没有向服务器发送请求,是不会产生压力的,这个需要跟并发数进行区分
PV:页面访问量(页面一次刷新就是一次页面浏览,这个指标一般是统计页面人气信息的时候使用)
响应时间:用户通过客户端访问发送业务请求,服务器接受并处理业务请求并返回结果,客户端接收结果,在这个过程中,涉及的时间总和就是我们的响应时间
吞吐量:单位时间内系统处理用户请求的数量,一般体现系统的承载能力
业务成功率:发起了很多并发请求,请求成功率多少
系统资源耗用:指的系统资源的使用情况,如CPU、内存、网络带宽、磁盘的I/O等
资源利用率:指系统各种资源的使用情况,如cpu占用率为68%,内存占用率为55%,一般使用“资源实际使用/总的资源可用量”形成资源利用率。

三、软件性能的关注点
对一个软件做性能测试时需要关注那些性能呢?
我们想想在软件设计、部署、使用、维护中一共有哪些角色的参与,然后再考虑这些角色各自关注的性能点是什么,作为一个软件性能测试工程师,我们又该关注什么?
1、首先,开发软件的目的是为了让用户使用,我们先站在用户的角度分析一下,用户需要关注哪些性能。
对于用户来说,当点击一个按钮、链接或发出一条指令开始,到系统把结果已用户感知的形式展现出来为止,这个过程所消耗的时间是用户对这个软件性能的直观印象。也就是我们所说的响应时间,当相应时间较小时,用户体验是很好的,当然用户体验的响应时间包括个人主观因素和客观响应时间,在设计软件时,我们就需要考虑到如何更好地结合这两部分达到用户最佳的体验。如:用户在大数据量查询时,我们可以将先提取出来的数据展示给用户,在用户看的过程中继续进行数据检索,这时用户并不知道我们后台在做什么。
用户关注的是用户操作的相应时间。
2、其次,我们站在管理员的角度考虑需要关注的性能点
1、 响应时间
2、 服务器资源使用情况是否合理
3、 应用服务器和数据库资源使用是否合理
4、 系统能否实现扩展
5、 系统最多支持多少用户访问、系统最大业务处理量是多少
6、 系统性能可能存在的瓶颈在哪里
7、 更换那些设备可以提高性能
8、 系统能否支持7×24小时的业务访问
3、再次,站在开发人员角度去考虑
1、 架构设计是否合理
2、 数据库设计是否合理
3、 代码是否存在性能方面的问题
4、 系统中是否有不合理的内存使用方式
5、 系统中是否存在不合理的线程同步方式
6、 系统中是否存在不合理的资源竞争
那么站在性能测试工程师的角度,我们要关注什么呢?
一句话,我们要关注以上所有的性能点。

四、如何提取性能测试需求
流程:分析提取指标-建立业务模型 -评审确定指标
说明:(如何分析提取指标和建立模型)
(1)通常情况下可以从业务常用的功能、用户大量使用的功能。比如登录功能、查询功能等
(2)业务逻辑负载的,存在的大量的数据流转频繁的
(3)与外部系统的接口处,保证两个系统的数据是一致
下面为一个示例,仅作参考,要根据不同系统的性能需求进行提取。
测试项 响应时间 业务成功率 并发数 CPU使用率 内存使用率
用户登录 <=3秒 >100% 300 <75% <75% 为什么不在公网做性能测试(要做也是在夜间进行性能测试) 就是瓶子,肚子很大,瓶口很小,就算你模拟了很多并发和很多数据,假如公司带宽只有10M,够用吗? 想模拟固定带宽,可以用限制带宽就做,而且测试环境中任何资源是可控制的。 五、建立性能测试业务模型 得到性能测试参考指标后,我们就需要建立测试模型,也就是建立用户业务模型,只有这样,才能模拟出真实的系统使用情况。 找出我们的性能缺陷,这也是我们做性能测试是否成功的关键。一般情况下,我们首先要测试单业务场景,然后再测试混合业务场景。 步骤序号 步骤描述 1 用户打开系统登录页面 2 输入用户名:wanghaifeng 3 输入密码:123456 4 点击登录按钮 5 点击退出按钮 六、设计性能测试用例 下面为用户登录一个示例,仅作参考,要根据不同系统的业务模型进行提取。

七、如何编写性能测试方案
1、在进行一次性能测试工作前,我们需要有一份文档指导我们开展性能测试。避免在进行测试过程中手忙脚乱,导致一些不必要的工作和时间的浪费。
另外,通过性能测试方案,我们在测试过程中可以明确哪些数据需要保存,为我们将来写测试报告提供很好的测试数据说明。因此通过性能测试方案,可以很好的指导性能测试工作的开展。
2、性能测试方案如同功能测试方案,旨在明确【测试范围,测试环境,测试方法,测试策略和测试目标】等,这些是基本的要素。必须在文档中
明确定义,除此之外,还有一些未定义的事项也应该在方案中指出,比如测试背景,测试工具等。
3、其中性能测试策略是鉴于性能测试目标、性能测试业务模型和测试用例进行综合设计的一种测试计划性文档。

八、如何搭建性能测试环境
1、性能测试技能树:【编程语言、操作系统、测试工具、网络知识、业务知识】签于5项技能树,任何一项都不能有短板,这是做好性能测试的前提条件。
2、其中性能测试根据不同的项目,环境会有所不同。比如我们的公司涉及到的有:IIS+mysql+nginx+php等,我们需要掌握这些环境的安装和配置。
3、另外我们还需要掌握一些常见的操作命令和监控工具,以此来分析和定位性能测试瓶颈。
常见的操作命令(如:dstat、top、tar、wget、yum、grep、find、cat、vim、pwd、cp、rm、mv、touch、mkdir、ls、cd等)这些命令是了解linux的灵魂。
如:dstat --top-cpu,top -n 10 | grep mysql,
常见的监控工具(如:zabbix、天兔、nmon、JProfiler等)这些监控工具相当于我们的眼睛,通过它们可以很好的帮助我们进行结果分析和问题定位。

(1)

本文由 小蜜蜂信息网 作者:admin 发表,转载请注明来源!

关键词:
LensNews

热评文章

发表评论