性能测试工具-----Jmeter

Jmeter
一‘jmeter简介
Apache Jmeter是Apache,开源。纯java桌面应用
安装配置jdk
下载安装
jmeter工具组成和线程组
资源生成器:用于生成测试过程中服务器、负载机的资源代码。(LR 中的VuGen)
用户运行器:通常是一个脚本运行引擎,根据脚本要求模拟指定用户行为。(LR中的Controller)
报表生成器:根据测试中实时地数据生成报表,提供可视化的数据显示方式。(lLR 中的analysis)
负载发生器:用于产生负载,通常以多线和或是多进程的方式模拟用户行为。(LR中Load Generators)

Test Plan(测试计划):用来爬描述一个性能测试,包含与本次性能测试所有相关功能。也就说性能
测试的所有内容是基于一个计划的。(相当于lr的一个测试场景)

A.setup thread group
一种特殊类型的ThreadGroup的,可用于执行预测试操作。这些线程的行为完全像一个正常
的线程组元件。不同的是, 这些类型的线程执行测试前进行定期线程组执行。类似LR的init()
B.tharddown thread group
一种特殊类型的ThreadGroup的,可用于执行测试后动作。这些线程的行为完全像一个正常的线程
组元件。不同的是,这些类型的线程执行测试结果后执行定期的线程组。类型LR中的end()
C.thread group(线程组)
这个就是我们通添加运行的线程。可以看做一个虚拟用户组,线程组中的每个线程都可以理解为一个虚拟
用户。线程组中包含的线程数量在测试执行过程中是不会发生改变的。类似LR的action()
jmeter可执行元件
测试片段(test fragment)
测试片段元素是控制器上的一个特殊的线程组,这它在测试树上与线程组处于一个层级。它与
线程组有所不同,因为它不被执行。除非它是一个模拟控制器或者是被控制器所引用时才会被执行。

8类可执行元件
配置元件
配置元件(config dlement)   用于提供对静态数据配置的支持。如CSV Data Set config可
以将本地灵气文件形成数据池(Data Pool).

定时器(Timer)
定时器(Timer)用于操作之间设置等待时间,等待时间是性能测试中常用的控制客户端QPS
的手段。类型于LR里面的"思考时间"。JMeterp定义了Bean Shell Timer、Constant Throughput Timer\ apps固定定时器等不同类型的Timer.

前置处理器(Per Processors)
用于在实际的请求发出之前对即将发出的请求进行特殊处理。例如,HTTP URL重写修复则
可以实现URL重写,当URL中有sessionID一类的session信息时,可以通过该处理器填充发出请求的实际
的sessionID.
后置处理器(Post Processors)
用于对Sampler 发出请求后得到的服务器响应进行处理。一般用来提取响应中的特定数据(类似LoadRunner测试工具中的关联概念)。

断言(Assertions)
断言用于检查测试中得到的相应数据等是否符合格,断言一般用来设置检查点,用以保住性能
测试过程中的数据交互是否与预期一到致。
监听器
是用来对没说工结果进行处理和可视化展示的一系列元件。图形结果、查看结果树、聚合报告。
都是我们经常用到的元件。注意:这个监听器可不是用来监听系统资源的元件。

取样器(sample)
取样器(Sample)是性能渡中向服务器发送请求,记录响应信息,记录响应时间的最小单元,
jmeter原生支持多种不同的sampler,如HTTP Request Sampler、FTP Request Sampler、
TCP Request Smpler 、JDBC Request Ssampler等,每一种不同类型的sampler可以根据设置的参数向
服务器发出不同类型的请求。

逻辑控制器
逻辑控制器,包括两类元件,一类是用于控制test plan中sampler节点发送请求的逻辑顺序
的控制器,常用的用 如果 (If)控制器、switch controller\runtime controller\ 循环控制
器等,另一类是用来组织可控制sampler来节点的。如事务控制器、吞吐量控制器。

jmeter脚本录制
badbod jmeter脚本录制
http://wwwbadboy.com.au
badboy是一个强大的工具,指在帮助测试和开始复杂的动态应用。badboy包括一个简单而全面的捕获
  /回放界面,强磊的负载测试的支持,详细的报告图表等等,从而使web测试和开发变得更加容易。

jmeter元件作用域和执行顺序
1、元件作用域
8类可被执行的元件(测试计划与进程组不属于要执行元件),这些元件中,取样器(sampler)是典型的不与其它元件交互作用的元件,逻辑控制器中对其子节点的取样器有效,而其它元件(配置元件、定时器、断言、监听器)需要
与取样器(sampler)等元件交互。
在jmeter中,元件的作用域是靠测试计划的树型结构中元件的父子关系来确定的,作用域的原则是:
取样器(sampler)无件不和其它元件相互作用,因此不布在作用域的问题
除取样器和逻辑控制器元件外,其他5类元件,如果是某个取样器的子节点,则该元件对
其父子节点起作用。如果其父节点不是取样器,则其作用域是该元件父节点下的其他所有后代节点
(包括子节点,子节点的子节点等)。
2、元件执行顺序
(1)配置元件(config elements)
(2)前置处理程序(per-processors)
(3)定时器(timers)
(4)取样器(sampler)
(5)后置处理程序(post-processors)
(6)断言(Assertions)
(7)监听器(Listeners)

关于执行顺序,有两点需要注意:

前置处理器、后置处理器和断言等元件功能对取样器作用,因此,如果在它们的作用域内没有任何
取样器,则不会被执行。

如果在同一作用域范围内有多个同一类型元件,则这些元件按照它们在测试计划中的上顺序
依次执行。
七、Jmeter性能测试基础实战
1、测试需求:测试20个用户访问http://www.51zxw.net在负载达到30QPS时的平均响应时间。
QPS:Puery per Second 每秒查询率。是一台查询服务器每秒能够处理的查询次数。在因特网上,
作为域名系统服务器的性能经常用每秒查询率来衡量。

测试步骤
第一步:添加线程组
线程组主要包含三个参数:线程数、准备时长(Ramp-Up Period(in seconds))、循环次数。
线程数:虚拟用户数。一个虚拟用户占用一个进程或线程。设置多个虚拟用户在这里了就是设置
多少个线程数。
准备时长(单位为s):设置的虚拟用户数需要多长时间全部启动。如果线程数为20,
准备时长为10,那么需要10秒种启动20个线程。也就是每秒种启动2个线程。


jmeter 参数化

jmeter集合点与关联
Jmeter FTP服务器连接

Jmeter mysql测试
准备一个有测试数据表的mysql数据库
在测试计划面板点击“浏览...”按钮,将你的JDBC驱动添加进来。
性能测试工具-----Jmeter

1、测试计划浏览mysql-connector-java-5.1.43.jar
性能测试工具-----Jmeter
2、添加线程组-->添加-->配置元件“JDBC Connection Configuration”.
性能测试工具-----Jmeter
3、填写数据库配置信息
性能测试工具-----Jmeter
4、添加“JDBC Request”
性能测试工具-----Jmeter

jmeter分布式测试
背景
由于Jmeter本身的瓶颈,当需要模拟数以千计的并发用户时,使用单台机器模拟所有的开发
用户就有些力不从心,甚至还会收起JAVA内存溢出的错误。要解决这个问题,可吧使用分布
式测试,多台机器运行所谓的Agent来分担JMeter自身的压力,并借此来获取更大的并发用户
数,但是需要进行相关的一些修改,具体如下。
操作步骤
1、安装Jmeter,并确定其中一台机器作为controller,其他的机器作为agent.然后运行所有
agent机器上的jmeter-server.bat文件-----假定我们使用两台机器192.168.0.11和
192.168.0.12作为Agent;(agent机器上必须安装jdk并设置环境变量)
2、在Controller机器%jmeter_home%/bin下,编辑jmeter.properies中
“remote_hosts = 127.0.0.1"。其中的127.0.0.1 表示运行jmeter agent的机器,这里
需要修改为'remote_hosts=192.168.0.11:1099,192.168.0.12:1099' ------其中的1099为端口号。
3、启动controller机器上的jmeter.bat,选择菜单Run中“Remote Start”中的192.168.0.11:1099和192.168.0.12:1099来运行Agent.
4、如果要让某个电脑执行,可以点击改电脑的IP地址就可以,如果两个都要执行,可以点击Run菜单
下的"远程运行全部"菜单。
5、有时候用作代理的机器太少,仍不能满足需要,则需要将作为Controller的 电脑也当任
Agent,则同样需要修改Jmeter.properities文件,将Controller的IP地址写入。同时,这个时候,
需要先打开Controller电脑中Jmeter下bin目录下的jmeter-server.bat,然后再打开,然后再
打开JMeter.bat.此时,进入Run->Remote Start 菜单,可以看到Controller也作为远程机器
进行运行。
常见问题:
1、确定在controller机器上安装jdk版本和jmeter一致
2、agent机器启动jmeter_server.bat时,后台提示:"could not find ApacheJmeter_core.jar"
解决方法:这个是开妈没有找到 ApacheJmeer_core.jar,如果不希望看到Could not find 的
字样,需要添加环境变量JMETER_HOME,路径为bin目录的上一级目录,这样启动
jmeter-server服务时,就不会看到could not Found ApacheJmeter_core.jar.
3、jmeter分布式控制过程中,各个Aent启动的线程数等于线程组中的配置。

jmeter java工程测试

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值