码迷,mamicode.com
首页 > 其他好文 > 详细

性能测试学习之路 (一)认识jmeter(性能测试流程 && 性能测试通过标准)

时间:2019-10-06 11:20:18      阅读:109      评论:0      收藏:0      [点我收藏+]

标签:工作   原理   验证   个性化   思路   version   流程   自动化   测试程序   

 

性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。

1 性能测试技能树

性能测试是一项综合性的工作,致力于暴露性能问题,评估系统性能趋势。性能测试工作实质上是利用工具去模拟大量用户来验证系统能够承受的负载情况,找出潜在的性能问题,分析并解决。

具体的技能树如下:

 技术图片

2 性能测试成功与失败要素

性能测试几大难点:

(1) 需求分析

(2) 场景设计

(3) 性能诊断调优

(4) 环境搭建和模拟

性能测试判断是否通过:

 技术图片

3性能测试流程

技术图片

  1. 业务学习:通过查看文档,手工操作系统来了解系统功能。
  2. 需求分析:分析非功能需求,确定性能测试范围,了解性能测试指标。
  3. 工作评估:工作量分解
  4. 设计模型:业务模型转化成测试模型。比如一个支付系统需要与银行的系统进行交互(充值或转出),由于银行不提供支持,这时会开发程序代替银行系统功能,保证性能测试能够正常开展。再比如登陆后新增人员,需要绑定测试,这也属于测试模型。模型需要关注的是如何实现,是否具有可操作性、可验证性。
  5. 计划编写:计划测试工作,在文档中明确列出测试范围、人力投入、持续时间、工作内容、风险评估、风险应对策略等。
  6. 脚本开发:录制或编写性能测试脚本
  7. 测试环境准备:包括服务器和负载机两部分,服务器是被测系统的运行平台,负载机是我们用来产生负载的机器,用来安装负载工具,运行测试脚本。
  8. 测试数据准备:根据数据模型来准备被测系统的主数据与业务数据(主数据是保证业务能够运行畅通的基础,比如菜单、用户等数据)
  9. 测试执行:性能测试成败关键
  10. 缺陷管理:对过程中发现的缺陷进行管理
  11. 性能分析:对暴露出来的问题进行分析,找出原因
  12. 性能调优:开发人员、性能测试工程师一起来解决性能问题
  13. 测试报告:测试工作的重要交付件,对测试结果进行报告,主要包括常见的性能指标说明(TPS、RT、CPU Using...),发现的问题。

性能测试主要交付件:

测试计划

测试脚本

测试程序

测试报告或阶段性性能报告

14.评审:对性能报告中的内容进行评审,确认问题、评估上线风险。

4 性能测试通过标准

通过标准参考如下:

 技术图片

分类

用户量

指标

优先级

备注

事务处理类

300

(非高峰期)

前端系统访问响应时间≤5秒

  1. 前端系统指标测试需结合Jmeter的报告

 

  1. 后端CPU利用率可使用Jmeter插件在服务器安装,Jmeter自动监控;若不允许装插件,则使用人工监控记录

查询类

300

(非高峰期)

前端系统访问响应时间≤2秒

后端CPU利用率<=50%

后端内存利用率<=50%

1000

(高峰期)

系统访问响应时间≤10秒

后端CPU利用率<=70%

后端内存利用率<=70%

3000

(极限)

系统未崩溃

请求未返回大量错误

统计类

简单统计类

系统响应时间≤10秒

手动启动业务全过程跟踪

复杂统计类

系统响应时间≤30秒

手动启动运行月报

5 性能测试趋势

性能测试将会在自动化的道路上越走越远,持续集成也将更好的集成性能测试部分。

6 Jmeter整体简介

1 安装jmeter

1.1 登陆官方网站,下载jmeter

http://jmeter.apache.org/,下载jmeter,如图:

 技术图片

1.2 解压后, 运行  “bin/jmeter.bat”

jmeter界面能正常打开,表示安装成功,如图:

 技术图片

PS:Jmeter 是支持中文的, 启动Jmeter 后, 点击 Options -> Choose Language  来选择语言

1.3  JDK环境变量配置

   计算机→属性→高级系统设置→高级→环境变量如图:

 技术图片

3-1. 添加用户变量JAVA_HOME ,变量内容填写jdk的目录, 如 C:\Program Files\Java\jre1.8.0_131

3-2.添加系统变量CLASSPATH,变量值填写 .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar(注意最前面有点和分号:点表示当前路径,分号表示分隔符)

3-3.添加系统变量PATH,变量值填写%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;(注意原来Path的变量值末尾有没有;号,如果没有,先输入;号再输入上面的代码)

3-4. 检验是否配置成功 运行cmd 输入 java -version (java 和 -version 之间有空格)

若如图所示 显示版本信息 则说明安装和配置成功,如图:

 技术图片

2 启动jmeter

• Jmeter的Home目录下包含bin、docs、extras、lib、printable_docs这5个文件夹。

• 我们需要重点知道的是bin、lib和docs目录。

 技术图片

2.1 bin文件

• Bin目录下存放的是可执行的程序、配置文件和日志文件。

windows下,找到bin文件下的jmeter.bat文件,双击就打开jmeter。

linux下,找到bin文件下的jmeter.sh文件。

 技术图片

 jmeter界面能正常打开,表示安装成功,如图:

 技术图片

PS:Jmeter 是支持中文的, 启动Jmeter 后, 点击 Options -> Choose Language  来选择语言

2.2 lib目录

技术图片

Jmeter是java写的,在lib下面包含ext、junit目录、jar包。

Jar包在脚本或者jmeter运行时所需要的jar包,比如使用JDBC测试数据库时,就需要对应的jdbc驱动的jar包放入lib目录。

Ext目录下存放的是jmeter运行时的各个组件的jar包,也可以存放自定义组件和插件的jar包。

3 jmeter 组成

 技术图片

取样器:进行脚本逻辑控制

线程组:场景设置

监视器:监控我们的脚本运行,取得性能指标

3.1线程组

 技术图片

名称:可以给线程组设置一个个性化的命名

注释:可以对线程组添加备注以标记

在取样器错误后要执行的动作:就是在错误之后要如何执行,可选继续执行后续的、停止执行等。

线程数:就是需要设置多少线程执行测试。

Ramp-up Period (in Seconds):用于告知JMeter 要在多长时间内建立全部的线程。多长时间内需要把上面的线程数均匀启动完。 默认值是0。如果未指定ramp-up period ,也就是说ramp-up period 为零, JMeter 将立即建立所有线程。假设ramp-up period 设置成T 秒, 全部线程数设置成N个, JMeter 将每隔T/N秒建立一个线程。

循环次数:就是决定一个线程要跑多少次测试。

Delay Thread creation until needed:直到需要时延迟线程的创建

调度器:选中之后可以配置启动时间,立即或者预定的时间

 3.2取样器:模拟用户操作

取样器用来模拟用户操作,向服务器(被测试系统)发出HTTP请求、WebService请求或Java请求。

取样器路径:【测试计划】->【线程组】->【Sample】

技术图片

3.3监听器:记录测试结果

Jmeter的测试结果需要添加监听器来收集。监听器任务用于添加结果监听、展示结果。

路径:【测试计划】->【监听器】

 技术图片

【取样器】、【断言】、【监听器】组合在一起们可以完成发送请求、验证结果及记录结果。

3.4断言:验证结果的正确性

断言是用来验证结果的正确性。

断言就是用一个预设的结果(值、表达式、时间长短等条件)与实际结果匹配。

断言路径:【测试计划】->【断言】

 技术图片 

3.5 前置处理器:准备环境或参数

前置处理器用于环境或参数的准备工作,比如对数据库进行操作前,需要先建立连接。

路径:【测试计划】->【前置处理器】

 技术图片

3.6 配置元件:参数化

配置元件用于模拟大量用户操作我们往往需要做参数化或者可以用来记录服务器的返回数据。

路径:【测试计划】->【配置元件】

 技术图片

3.7后置处理器:处理服务器的返回结果

后置处理器一般放在取样器之后,用来处理服务器的返回结果,比如一个web应用程序,我们登录后会返回一个SessionID,登陆后的业务操作过程中会作为验证条件,验证用户是否合法登录。Jmeter的关联通过后置处理器来完成。

路径:【测试计划】->【后置处理器】

 技术图片

【前置处理器】、【配置元件】、【后置处理器】都是为取样器提供数据支持的,取样器关注业务逻辑。

3.8控制器:一次控制,多次查看

比如说用在登陆一次邮件,查看多封邮件。

路径:【测试计划】->【线程组】->【逻辑控制器】

技术图片

3.9定时器:集合

定时器模拟同一时刻发送,集合的功能。

路径:【测试计划】->【线程组】->【定时器】

技术图片

4 jmeter脚本的两种录制方式

2种方式的录制方式:

一、使用badboy进行录制

二、使用代理方式进行录制

4.1 脚本录制的流程与思路

 技术图片

4.2 Badboy演示与录制

 技术图片

打开百度,输入badboy,进入官网,下载对应的版本,网址如下:http://www.badboy.com.au/

如图:

技术图片

下载完成后,进行安装,安装成功后,在程序中找到badboy,点击打开badboy,表示安装成功,如图:

 技术图片

Badboy功能区如下:

 技术图片

4.3 jmeter代理录制

HTTP代理方式进行录制的原理:解析网络数据包,按Http协议包装成Http Request,Http Response等对象。

 技术图片

HTTP请求默认值(添加录制控制器)

HTTP代理服务器(设置端口、IP地址)

浏览器设置:

 技术图片

4.4手动编写

根据对应的协议类型选择合适的取样器(sampler),手动编写对应的请求,实现模拟数据发送的效果。

前提:了解协议、了解抓包工具、了解性能测试工具。

附录

自动重定向和跟随重定向的区别

自动重定向:当重定向时,自动跳转时,只针对GET和Head请求,自动重定向可以自动跳转到最终目标页面,但是jmeter不记录重定向过程内容【在查看结果树中只能看到重定向后的响应内容】

跟随重定向:当重定向时,自动重定向可以自动跳转到最终目标页面,但是jmeter记录重定向过程内容【在查看结果树中既能看到重定向后的响应内容,也能看到重定向前的响应内容】

 

 

 

性能测试学习之路 (一)认识jmeter(性能测试流程 && 性能测试通过标准)

标签:工作   原理   验证   个性化   思路   version   流程   自动化   测试程序   

原文地址:https://www.cnblogs.com/wendyw/p/11626558.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!