Jmeter的学习

一.性能测试的概念

1.1 为什么学习性能测试?

进行性能测试:满足真实的业务场景,支持大量的用户,满足商品的要求.

学习性能测试,掌握性能测试工具,帮助高新

1.2 性能测试的概念

什么是性能?

        性能:就是软件质量中的"效率"特性

两个点:时间:系统处理用户请求的响应时间;资源:系统运行过程中,系统资源的消耗情况

什么是性能测试?

        性能测试概念:使用自动化工具,模拟不同的场景,对软件各项性能指标进行测试和评估的过程.

性能测试的目的是什么?

        评估当前系统能力,寻找性能的瓶颈,优化性能;评估软件是否能够满足未来的需要.

性能测试和功能测试对比

1.焦点不一样

功能测试:验证软件系统操作功能是否符合产品需求规格,主要焦点在功能(正向,逆向)

        正向,例如:输入正确的用户名和密码,登录成功

        逆向,例如:输入错误的用户和密码,登录失败给出提示

性能测试:验证软件系统是否满足业务需求场景,主要焦点是业务场景的满足(时间,资源),注意点:只测试正向

        例如:  300W人使用正确的用户名和密码登录,1s内登录成功   ---时间

        同时服务器的cpu使用率低于70%,内存使用率低于60%       ---资源

2.有什么关系

不能只做功能测试,而不做性能测试

一般项目中,先功能测试通过后,后进行性能测试

二.性能测试的策略

        理解为:根据不同的场景模拟不同的方法

基准测试,负载测试,稳定性测试,其他(并发测试,压力测试等)

2.1 基准测试

为什么进行基准测试?

        1.单用户性能不达标,就没必要进行多用户性能测试了

        2.影响性能因素有很多(如服务器配置,资源,代码效率)如何判断谁在导致性能变好/变坏

狭义上讲,就是单用户测试.测试环境确定后,对业务模型中的重要业务做单独的测试,获取但用户运行时的各项性能指标.

就是单用户测试(单用户循环多次得到的数据)

广义上讲:是一种测量和评估软件性能指标的活动.你可以在某个时刻通过基准测试建立一个已知的性能基准线,当系统的软硬件环境发生变化之后再进行一次基准测试以确定变化对性能的影响.

基准测试数据的用途

        1.基准测试不会单独存在

        2.为多个用户并发测试和综合场景测试等提供参考依据

        3.为系统/环境配置,系统优化前后的性能提升/下降提供参考指标

2.2 负载测试

为什么进行负载测试?

例如:电商系统平时可以正常运行,怎么确保双11也可以正常运行?   --用户量大

负载测试的概念

负载测试:通过逐步增加系统负载,确定在满足系统的性能指标情况下,找出系统所能承受的最大负载量的测试.

作用

系统最大负载量达到用户要求时,系统才能正式上线使用

2.3 稳定性测试

为什么进行稳定性测试

系统在长时间运行下会不会出现问题

稳定性测试的概念

在服务器稳定运行(用户正常的业务负载下)的情况下进行长时间测试(1天-1周等),并最终保证服务器满足线上业务的需求

作用

系统在用户要求的业务负载下运行达到规定的时间内,系统才能正式上线使用

2.4 压力测试

为什么进行压力测试?

软件实际使用时,用户量超过预期(系统最大负载量),该如何反应?

压力测试的概念

在强负载下的测试,查看系统在峰值下是否功能隐患,系统是否具有良好的容错能力和可恢复能力

2.5 并发测试

为什么做并发测试?

怎么才能保证秒杀活动中不出现问题   --时间短,多个请求

并发测试的概念

并发测试:是指在极短的时间内,发送多个请求.来验证服务器对并发的处理能力

Jmeter的学习_第1张图片

场景

抢红包,秒杀,抢购等

三.性能指标

        响应时间,并发数,吞吐量,点击数,错误率,资源利用率等

3.1 为什么要学习性能测试的指标?

如何衡量功能:有/没有

如何衡量性能:好/不好

性能测试指标:一些经过运算得出的结果,来量化衡量某种操作的性能好坏

3.2响应时间

响应时间:指用户从客户端发起一个请求开始,到客户端接收到从服务器返回的结果,整个过程所消耗的时间

组成:网络传输时间,服务期处理时间

注意点:

        通过http接口请求信息来测试

        不包括  发消息前端界面的处理时间和收到消息后前端页面的渲染显示的时间

3.3 并发数

并发(用户)数:某一时刻同时向服务器发送请求的用户数

3.4 吞吐量

吞吐量:指的是单位时间内处理的客户端请求数量,直接体现系统的性能承载能力.

吞吐量:--QPS

QPS每秒查询数:即控制服务器每秒处理的指定请求的数量

吞吐量:--TPS

TPS每秒事务数:即控制服务器每秒处理的事务请求的数量

QPS和TPS的关系?

事务:即业务,页面上的一个事务,可能对应一个请求/多个请求

一个事务对应一个请求时: TPS=QPS
一个事务对应多个请求时:n*TPS = QPS

3.5 点击数

指客户端向服务器发送请求时,所有的页面资源元素(如:图片,链接,框架CSS、JS等)的请求的总数量

3.6 错误率

指系统在负载情况下,失败业务的概率,错误率=(失败业务/业务总数)*100%

注意点:

大多系统会要求错误率无限接近0

错误率是一个性能指标,是在高负载下的失败业务的概率

3.7 资源利用率

指系统各种资源使用情况,一般是用  资源的使用量/总的资源可用量*100%  形成资源利用率的数据

根据经验:资源指标通常

cpu不高于75%~85%
内存不高于80%
磁盘IO不高于90%
网络不高于80%

可以通过任务管理器--性能进行查看

四.性能的流程

1.性能测试流程

需求分析->测试计划->测试用例->用例执行->性能分析与调优->测试报告

Jmeter的学习_第2张图片

2.性能测试需求分析

明确被测系统->明确测试内容->明确测试策略->明确测试指标 

Jmeter的学习_第3张图片

3.性能测试计划及方案 

测试的目的和范围
测试人员和分工
测试时间安排
测试的方法
测试风险评估

4.性能测试用例

用例编号、用例名称、用例描述、前置条件、操作步骤、预期结果、实际结果

Jmeter的学习_第4张图片

5.性能测试执行

搭建环境,编写测试脚本,配置性能测试监控指标,执行测试脚本

Jmeter的学习_第5张图片 6.性能分析和调优

性能测试分析人员经过对结果的分析以后,如果不符合性能需求,则会提出性能bug,然后开发人员进行后续的调优

调优:开发人员为主导,数据库管理员、系统管理员、网络管理员、性能测试分析人员配合进行

验证:性能测试人员继续进行第二轮,第三轮——的测试,与以前的测试结果进行对比,从而确定经过调整以后系统的性能是否有提升

7.性能测试报告

测试工作的经历回顾
缺陷分析和调优
风险评估
性能测试结果
测试工作总结与改进

 

     

你可能感兴趣的:(jmeter,学习)