分布式压测系列之Jmeter4.0第一季

1)Jmeter4.0介绍

jmeter是个纯java编写的开源压测工具,apache旗下的开源软件,一开始是设计为web测试的软件,因为发展迅猛,如今能够压测许多协议好比:http、https、soap、ftp、database数据库、LDAP  轻量目录访问协议、TCP、SOMP(简单邮件协议)等,因为是纯java编写,能够在苹果、window或者Linux下运行,全功能的测试IDE,容许快速的创建测试计划(从浏览器或本地应用程序,官网地址:http://jmeter.apache.org),Jmeter是一个中高级开发或者测试人员都必须掌握的一个工具。html

目前用的经常使用测试工具对比:java

一、loadrunner:性能稳定,压测结果及细粒度大,能够自定义脚本进行压测,可是太过于重大,功能比较繁多
二、apache ab(单接口压测最方便):模拟多线程并发请求,ab命令对发出负载的计算机要求很低,既不会占用不少CPU,也不会占用太多的内存,但却会给目标服务器形成巨大的负载, 简单DDOS***等
三、webbench:webbench首先fork出多个子进程,每一个子进程都循环作web访问测试。子进程把访问的结果经过pipe告诉父进程,父进程作最终的统计结果。

1.png

2)特色

  • 提供GUI图形界面和非GUI界面进行压测,在windows下面进行开发测试压测脚本,而后直接在linux上执行linux

  • 能够提供完整的动态HTML压测报告web

  • 纯java编写,一次编写,四处压测sql

  • 多线程框架容许经过多个线程同时进行采样压测,并经过单独的线程组同时采样不一样的功能数据库

  • 提供高度可扩展的功能,自定义插件:apache

  • 提供函数可用于为测试提供动态输入或提供数据操做。windows

  • 经过Maven,Graddle和Jenkins的第三方开源库轻松持续集成api

3)准备工做

须要安装java运行环境,建议安装JDK环境,虽然JRE也能够,可是压测https须要JDK里面的 keytool工具;
新版本Jmeter4.0,须要JDK8以上版本,JDK9或者JDK10均可以;并配置好JDK环境(这里就不讲配置JDK环境了)
下载对应的Jmeter4.0版本并解压(官网地址:http://jmeter.apache.org/)
windows系统: http://mirrors.tuna.tsinghua.edu.cn/apache//jmeter/binaries/apache-jmeter-4.0.zip
Mac或者Linux:http://mirrors.tuna.tsinghua.edu.cn/apache//jmeter/binaries/apache-jmeter-4.0.tgz

浏览器

4)jmeter4.0解压目录文件讲解

2.png

bin:核心可执行文件,包含配置	
      jmeter.bat: windows启动文件:	
      jmeter: mac或者linux启动文件:	
      jmeter-server:mac或者Liunx分布式压测使用的启动文件	
      jmeter-server.bat:mac或者Liunx分布式压测使用的启动文件	
      jmeter.properties: 核心配置文件	
      examples:压测脚本文件JMX和动态读取csv参数文件案例	result—template:可视化HTML	
      template:JMX的模板文件			
docs:Jmeter的API文档
extras:插件拓展的包
lib:核心的依赖包
ext:核心包
junit:单元测试包

5)Jmeter核心组件介绍

3.png

什么是测试计划(Test plan)?

    就是压测的一个流程,好比压测什么接口,并发多少用户,协议等等,在测试计划下面配置线程组,采样器,监听器等组件

什么是线程组(Thread Group)?

线程组就是模拟多少用户并发访问你的应用,这个组里面共有多少用户,建立方法如上图如今“添加->threads->线程组“
    参数说明:
    线程数:虚拟用户数。一个虚拟用户占用一个进程或线程			
    准备时长(Ramp-Up Period(in seconds)):所有线程启动的时长,好比100个线程,20秒,则表示20秒内100个线程都要启动完成,每秒启动5个线程			    
    循环次数:每一个线程发送的次数,假如值为5,100个线程,则会发送500次请求,能够勾选永远循环

4.png

什么是采样器(Sampler)?


真正干活的组件,采样器里面配置你要压测的接口,协议,参数等
能够建立各类采样器,如Http请求,FTP请求,JDBC压测数据库请求,JMS等,对应的采样器有不一样的配置
以http请求采样器为例
	名称:采样器名称,通常是接口名称,方便后续进行区分,好比“login接口”
	注释:采样器的描述,方便别人理解,相似压测接口描述	
	web服务器配置
			协议:压测的协议,好比“http”或者"https"
			服务器名称或IP:压测目标机器的端口或者服务器IP地址,好比 www.xdclass.net		
			端口号:压测目标机器的端口号,好比 8080	
	HTTP请求配置
			方法:http的请求方法,经常使用的有GET,POST,PUT,DELETE,PATCH等		
			路径:压测的接口的URL,好比 /api/v1/users		
			Content encoding:是否进行内容编码
							
			自动重定向:http有302状态码返回的时候,重定向,但不会产生记录,不能够作关联请求,		
			好比好比第二个请求要用到第一个请求的数据,则选择自动重定向没法作关联		
			跟随重定向:会产生记录,能够作关联,默认勾选这个		
			Use multipart/from-data for HTTP POST :当发送POST请求时,使用Use multipart/from-data方法发送,默认不选中。		
			parameters:参数配置		
			Files Upload:文件上传配置

5.png

什么是结果树?

压测的结果查看,能够看到压测发送的url,http参数,返回结果,返回的整个响应,而后若是有断言或者调试,能够看到断言是否经过等等
添加路径: 线程组->添加->监听器->察看结果树
若是不添加结果数,则点击压测开始按钮,压测具体响应咱们没法知道,因此须要添加结果数,
一来是方便调试压测脚本,看请求参数,路径是否正常
切换到结果数查看页面,点击压测按钮就能够进压测,边压测能够边看到请求的结果。

6.png

补充个小技巧,就是GUI图形界面语言版本中英文切换:

一、控制台修改	menu -> options -> choose language 选择对应的语言版本就能够
二、配置文件修改
		bin目录 -> jmeter.properties			
		默认 #language=en			
		改成 language=zh_CN

OK,Jmeter4.0压力测试第一季入门先到这里,

下一站章 会再分享Jmeter高级知识,好比断言使用,动态读取CSV参数,压测Mysql,阿里云Linux环境非GUI界面压测,分布式压测等等

视频教程参考http://edu.51cto.com/course/13251.html

https://www.xdclass.net/#/coursecatalogue?video_id=3

相关文章
相关标签/搜索