开源性能测试工具JMeter快速入门(二)


目录

一、JMeter简介

二、JMeter功能介绍

三、JMeter脚本

四、关于JMeter小提示



三、JMeter脚本


1.测试计划

测试计划是JMeter进行测试的起点 ,是其他JMeter测试元件的容器,每个测试场景/脚本都叫做一个测试计划。

(1)名称;与业务相关的名称

(2)注释:非必填

(3)用户定义的变量,引用时直接用${变量名}即可,这里的变量是全局变量,作用于整个测试计划。

(4)独立运行每个线程组:默认不勾选,即所有线程组并发启动。勾选则顺序执行所有线程组。

(5)

结束线程运行后,停止主线程。

(6)函数测试模式:默认不勾选 。勾选则记录详细请求,增加资源消耗,影响客户端性能。

(7)

向类路径(%JMeterHOME%\lib)中添加目录及JAR包。

2.VUser及场景设计

JMeter的场景设计 及Vuser都是在线程组下设计的。

这里线程-->Vuser(并发用户数)

循环次数及调度器-->场景设计模块

(1)线程属性:

线程数

Ramp-Up Period:线程间的时间间隔

循环次数:请求的重复次数 。

Delay thread Creation until needed:延迟创建线程,直到需要创建时创建。

(2)调度器

持续时间:测试计划持续时间,将覆盖结束时间

启动延迟:测试计划延迟多少时间启动,将覆盖启动时间。

3.使用Badboy进行脚本录制

Badboy录制较简单,无需使用代理;但不能像JMeter代理可以录制到URL相关的静态文件及dwr请求。

录制完成后导出为JMeter格式的,然后在JMeter中直接打开脚本就可以使用了。

4.参数化

(1)在测试计划中使用“用户定义变量”,

添加参数,然后找到需要参数化的脚本,将其值修改为:${key}即可

(2)使用自带的随机函数

JMeter中有函数助手,有多个内置函数,可以用相关函数进行参数化设置。

方法:打开函数助手 ,填写min,max ,函数名称,点击“生成”,复制生成的随机函数到需要参数化的地方 。

5.关联

JMeter的关联是基于正则和Xpath Extractor实现的。

(1)名称、注释、Apply to 默认即可。

(2)要检查的响应字段 :表示在哪个地方提取正则表达式,一般选择Body即可。

(3)引用名称:其他地方引用提取值的变量名称,引用方式为${变量名称}

(4)正则表达式,提取的正则表达式主体

(5)模板,用$$引用起来,正则表达式的提取模式,值从1开始 ,值0对应的是整个匹配的表达式。

(6)默认值,若返回结果中无匹配的值,则变量的值采用默认值 。

6.检查点

JMeter的检查点是用断言实现的,使用较多的是响应断言 。如下添加断言后,需要在相应的监听器中添加“断言结果”才能在执行后查看断言结果是否正确。

(1)名称、注释、 Apply to 默认

(2)要测试的响应字段,文本、代码均可

(3)模式匹配规则 :

匹配:需达到精确匹配

Equals:返回结果与指定结果一致

SubString:返回结果是指定结果的子串

否:不进行匹配

(4)要测试的模式,若设置多个断言结果 ,则需要所有结果通过才成功 ,否则失败

7.思考时间

JMeter的思考时间是用定时器实现的。默认时,JMeter发送请求是没有时间间隔的。添加间隔是为了更真实模拟用户请求,同时可以减少服务器压力。无论定时器放在哪里 ,它都会在Sampler前执行,若需要在某个位置暂停,,可加入Test Action。

定时器的作用域,若在线程组下添加多个定时器,则会累加作用于线程组内的所有Sampler,可以在单独的Sampler中添加定时器。

8.集合点

JMeter中使用Synchronizing Timer实现集合点功能 ,模拟多用户并发测试。

表示集合点够多少个用户才开始执行并发,在使用中发现最后一批线程数不够时,JMeter会停止不动。

9.结果分析

运行性能场景时,开启多个监听器会消耗资源 。常用的有聚合报告 、图形结果、监视器结果 等等。



四、关于JMeter小提示


1.尽量少用监听器

2.尽量把相似的Sampler放在循环内, 使用变量修改这些Sampler,而不是重复添加Sampler

3.不要使用函数测试模式

4.以CSV格式输出结果  ,尽量不用XML格式

5.只保存需要的数据结果

6.最好在调试脚本时使用断言,运行脚本时禁用断言 ,这样有利于精准测试结果

7.查看结果树和用表格查看结果监听器最好在调试脚本时使用,不在负载测试期间使用

8.若需要测试大量数据,则可以提前准备好测试Data并放在数据文件中,避免浪费资源 。

9.对于大并发量的负载测试,尽量在多台机器上运行多个非GUI JMeter实例,进行分布式测试。

10.若测试过程中报内存不足, 可以在jmeter的bin目录下找到jmeter.bat来修改JVM内存设置,如修改为:HEAP="-Xms512m -Xmx512m"这样可减小频繁申请创建、销毁内存引起的性能损耗开销。

原文地址:http://blog.51cto.com/hongz/2065581

时间: 2024-07-30 05:53:41

开源性能测试工具JMeter快速入门(二)的相关文章

开源性能测试工具JMeter快速入门(一)

目录 一.JMeter简介 二.JMeter功能介绍 三.JMeter脚本 四.关于JMeter小提示 一.JMeter简介 1.定义 JMeter是Apache组织开发的基于Java的压力测试工具.用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域. 1)它可以用于测试静态和动态资源,例如静态文件.Java 小服务程序.CGI 脚本.Java 对象.DB.FTP 服务器, 等等. 2)JMeter 可以用于对服务器.网络或对象模拟巨大的负载,来自不同压力类别下测试它

GNU开发工具——CMake快速入门

GNU开发工具--CMake快速入门 一.CMake简介 不同Make工具,如GNU Make.QT的qmake.微软的MS nmake.BSD Make(pmake)等,遵循着不同的规范和标准,所执行的Makefile格式也不同.如果软件想跨平台,必须要保证能够在不同平台编译.而如果使用Make工具,必须为不同的Make工具编写不同的Makefile.CMake是一个比Make工具更高级的编译配置工具,是一个跨平台的.开源的构建系统(BuildSystem).CMake允许开发者编写一种平台无

开源静态分析工具androguard体验(二)

逆向分析dex的话,个人还是比较中意VTS,JEB(穷人买不起),IDA等.之前有尝试使用过androguard,感觉还是不咋习惯,虽然基于其基础上演变的一些项目挺有吸引力.不过作为项目的基础,androguard确实再适合不过了.至少静态分析很多功能直接调用或者在其上修改效果倒是事半功倍.也正因为这个目的,才有了第二篇体验. 其实官网的wiki写的很详细了,包括一些使用方法,api参考,都挺丰富的.但是官网提供的demo不多,我觉得通过对androlyze.py的一些常见功能的使用,可以帮助我

性能测试工具 jmeter 分布式压力测试实操

性能测试工具 jmeter 分布式压力测试实操 本文在Non-GUI Mode下进行,准备好三台有jdk环境,linux操作系统,同一局域网测试机器,运行两台slave,一台master机器,进行分布式测试. slave-1/slave-2/master配置好jmeter环境(以下操作在jdk版本1.8环境下进行的) 1.下载jmeter3.2 wget https://archive.apache.org/dist/jmeter/binaries/apache-jmeter-3.2.tgz 2

性能测试工具JMeter使用学习

项目中需要使用一个性能测试工具对开发的服务进行性能评估,调研后选择了JMeter,并进行了初步的学习和使用. 1. 工具获取. jmeter基于Java,并隶属于Apache,下载地址:http://jmeter.apache.org/download_jmeter.cgi,当前的最新版本是2.12 2. windows GUI版本试用. windows环境需要安装Java,运行bin下的jmeter.bat即可触发GUI环境. 可以新建一个HTTP的测试模板. 可以配置压力属性,如下图,其中:

Web性能测试工具JMeter

做Web方面的黑盒测试,也就是功能测试,基本不需要什么测试工具,都是直接打开浏览器访问,点一点界面就行. 现在流行的移动互联网应用,客户端和服务端的开发是分离的,两者开发进度肯定不一样,可能存在服务端接口开发完了,客户端还在开发中. 所以如果要做服务端HTTP接口的测试时,可以借助浏览器的插件,比如Firefox的HttpRquester. 如果是做性能测试,这时候就要借助专门的测试工具 性能测试工具,功能比较强大的是HP的LoadRunner,但毕竟是商业软件,体积也比较大 如果只是简单的We

(推荐)PHP采集工具curl快速入门教程

为什么要用CURL? CURL(Client URL Library Functions)是一个利用URL语法在命令行方式下工作的文件传输工具.它支持很多协议:FTP, FTPS, HTTP, HTTPS, GOPHER,  TELNET, DICT, FILE 以及 LDAP.CURL同样支持HTTPS认证,HTTP POST方法, HTTP PUT方法,FTP 上传, kerberos认证,HTTP上传, 代理服务器, cookies, 用户名/密码认证,下载文件断点续传,上载文件断点续传,

MySQL快速入门(二)

1 多表关联查询 从快速入门,我们已经学会了如何在一张表中读取数据,这是最基础简单的查询表中的数据,但是在实际中经常需要从多个表中读取数据. 本章我将会向大家介绍如何使用MySQL在多个表中查询数据. 想要从多个表中查找数据,就要用到JOIN关键字 JOIN 按照功能大致分为如下三类: 1.CROSS JOIN(交叉连接) 2.INNER JOIN(内连接或等值连接) 3.OUTER JOIN(外连接) 1.1 交叉连接 交叉连接的关键字:CROSS JOIN                  

AS3多线程快速入门(二):图像处理[译]

原文链接:http://esdot.ca/site/2012/intro-to-as3-workers-part-2-image-processing 在<AS3多线程快速入门>系列教程的第一部分中,我们研究了AS3 Worker的基本原理,包括多种通信方式,还展示了一个简单例子:Hello World Worker. 在这篇文章里,我将更进一步,向你展示如何利用多线程做些有用的功能,比如图像处理!在这次例子中,我将一边给一个大位图应用锐化滤镜,一边让主UI线程持续保持在30fps的渲染帧率.