JMeter简单回顾

不负青春,不负自己

真心不负 青春芳华

青春无悔,愿你不负光阴 

——《致青春》有感

JMeter 简单回顾

JUST DO IT

JMeter简单回顾_第1张图片

温暖春日

之前公众号推文一上手就分享如何测接口, 其实忽略了一些概念性的东西, 今天来给大家拾遗补缺, 做个回顾吧.

 

一.   JMeter介绍

jmeter能做什么, 来自官网的解释:

Ability to load and performance test many different applications/server/protocol types:

  • Web - HTTP, HTTPS (Java, NodeJS, PHP, ASP.NET …)

  • SOAP / REST Webservices

  • FTP

  • Database via JDBC

  • LDAP

  • Message-oriented middleware (MOM) via JMS

  • Mail - SMTP(S), POP3(S) and IMAP(S)

  • Native commands or shell scripts

  • TCP

  • Java Objects

Jmeter可以模拟大量负载测试网络或者对象, JMeter是用java语言开发的application,比较消耗memory和CPU, 当模拟大并发用户时候, 单台模拟就有些力不从心. 同时jmeter可以帮助我们进行回归测试, 通过测试脚本和断言来验证程序返回的预期值.

 

JMeter与 LR 比较:

Jmeter是apache 组织下的开源测试工具(长得不太英俊),  与LR比较有很多不足, 但是它具备很多优点, 让无数测试工程师对它欲罢不能, 而放弃了LR的华而不实(虽然很帅, 但功能太多,上手困难).

  • 开源, 就意味着免费

  • 小巧, 相比LR的庞大(好几个G的安装包),jmeter非常小巧, 无需安装, 仅java环境

  • 功能强大, 一个简单的web性能测试工具, 不断更新扩展, 可以完成DB, FTP, LDAP, webservice, TCP 等测试, 还可以自由扩展丰富插件.

  • 跨平台, 可以在任意系统上运行, Linux, Unix, Mac os, Ubuntu, centos, windows等.

LR运行环境无法脱离windows, 且是商业收费软件.

缺点:

Jmeter不支持IP欺骗, LR支持.

结果分析能力相对LR不够详细.

 

二.   Jmeter 下载安装

1)安装

官网提供jmeter 版本下载: http://jmeter.apache.org/

jmeter 3.2以后版本都需要jdk1.8 环境

2)插件安装

下载插件后到%jmeter_home%/lib/ext目录下, 重启jmeter即可生效

 

三.   运行jmeter

1. 进入bin目录运行jmeter

windows环境, 进入jmeter/bin 目录, jmeter.bat即可运行jmeter

Mac os, Ubuntu等环境, 进入jmeter/bin 目录, 点击jmeter 即可运行jmeter

2.语言选择

菜单: 选项->选择语言->选择个人喜好的语言

3. classPath

如果是自己开发的jar包在jmeter中使用, 那方法和插件是一样的, 放在lib/ext目录下

 

 四.   Jmeter测试计划

1)test plan

打开jmeter默认已经创建了测试计划

来自官网的说明, 可以创建多种test plan

JMeter简单回顾_第2张图片

2) Threads

JMeter简单回顾_第3张图片

  • setup Thread Group

是所有真正开始线程并发之前的准备工作,必须是在线程组开始之前完成并且拥有自己独立的线程设置;setUp Thread Group类似于lr的init.可用于执行预测试操作。

  • teardown thread group

是所有线程执行测试结束后执行定期的线程组. 拥有自己独立的线程设置;

tearDown Thread Group类似于lr的end.可用于执行测试后动作。

  • thread group

我们通常添加运行的线程。可以看做是一个虚拟用户组,线程组中的每个线程都可以理解为一个虚拟用户。线程组中包含的线程数量在测试执行过程中是不会发生变化的.

JMeter简单回顾_第4张图片

Ramp-Up Period(in seconds)表示在这个时间内创建完所有的线程。如有3个线程,Ramp-Up=10秒,那么线程的启动时间间隔为10/3=3.33秒. 这样的好处是:一开始不会对服务器有太大的负载,线程组是为模拟并发负载而设计。

循环次数:表示每个线程执行多少次请求

 

3)模板

模板是一个非常好用功能

点击模板, jmeter GUI已经为你预定好了各种test plan,选择一个自己需要的类型, 所见即所得的创建线程组里的内容, 你只要做的就是修修改改

JMeter简单回顾_第5张图片

JMeter简单回顾_第6张图片

这种方式为我们节省了很多时间

 

4)Sampler

这个我们非常熟悉了, HTTP Request Sampler 、 FTP  Request Sampler 、TCP  Request Sampler 、 JDBC Request Sampler 等,每一种不同类型的 sampler 可以根据设置的参数向服务器发出不同类型的请求,其中还有两种比较特殊的sampler, java sampler和Beanshell sampler

JMeter简单回顾_第7张图片

 

5)Timer

定时器用于设置等待时间. 等待时间是性能测试中常用的控制客户端QPS/TPS的手段。类似于LoadRunner里面的“thinktime”。 JMeter 定义了Bean Shell Timer、Constant Throughput Timer、固定定时器等不同类型的Timer。

 

6) Pre-Processor Elements

意为前置处理器,用于对于取样器进行处理,且是在sampler启动之前执行,此处和后置处理器是有所区别的, 如用户参数 beanshell PreProcess 等

JMeter简单回顾_第8张图片

7) Post-Processor Elements

在测试过程中,经常需要从响应数据中找到某些参数,作为下一个请求的参数,这时候需要用到后置处理器 如正则表达式, json取样器, beanshell PostProcess,就属于这一类

JMeter简单回顾_第9张图片

8)  Assertions

断言就不用多介绍了, 我们经常在使用, 同时jmeter提供丰富的断言, 还可以组合着一起用.

 

9) Listeners

监听器提供了很多丰富的结果信息, 包含图形的和数字的, 是用来对测试结果数据进行处理和可视化展示的一系列元件, 图形结果、查看结果树、聚合报告、用表格察看结果都是我们经常用到的元件

 

 

10) Configuration Elements

配置元件, 类似的有cvs 数据元件, http信息管理头, http cookie管理器, 用户定义变量, 计数器, 随机变量等 都属于配置元件.

JMeter简单回顾_第10张图片

配置元件在我们的线程组里经常出现, 比如接收到的cookie可以存储为JMeter线程变量。要将cookie保存为变量,需定义属性“cookiemanager .save.cookie =true”

 

11) Execution order

执行顺序, 来自官网的解释

1.Configuration elements

2.Pre-Processors

3.Timers

4.Sampler

5.Post-Processors (unless      SampleResult is null)

6.Assertions (unless SampleResult      is null)

7.Listeners (unless SampleResult      is null)

12) Properties and Variables

属性和变量, jmeter的属性都定义在jmeter.properties,这个属性作用域是global, 用户也可以自定义变量

 

13) jmeter命令行

jmeter -n -t [jmx file] -l [results file] -e -o [Path to web report folder]

& increase Java Heap to meet your test requirements:

   Modify current env variable HEAP="-Xms1g -Xmx1g -XX:MaxMetaspaceSize=256m" in the jmeter batch file

Check : https://jmeter.apache.org/usermanual/best-practices.html

JUST DO IT

JMeter简单回顾_第11张图片

温暖春日

今日推荐阅读文章精选推荐

为什么要做接口测试

JMeter数据库操作

Jmeter接口测试-正则表达式

JMeter中文返回乱码

Jmeter接口测试-参数化

JMeter接口测试-基础

测试-感想

     

咨询工作加微信

JMeter简单回顾_第12张图片

扫描二维码

JMeter简单回顾_第13张图片

前端架构师 

20k-40k /上海 / 经验5-10年 / 本科及以上 / 全职

职位诱惑:

人工智能

职位描述:

1.深入理解业务和需求,识别系统风险,负责平台前端架构的建立和实施,主导前端框架开发,并据此制定合理有效的开发规范;

2.负责完成产品各模块及核心框架的搭建及督导编码实现;

3.负责系统整体相关架构和技术规划质量控制,主导团队技术方案评审等工作;

任职资格:

1.五年以上前端开发的工作经验,有大型网站的前端架构部署和实践经验

2.精通Web前端技术(HTML/CSS/JavaScript等)以及掌握Vue、React等框架中的一种或两种,熟悉MVC、MVVM等前端开发模型;精通vue(必备:vue/vue-router/vuex)技术栈或者react(必备:react/react-router/redux/mobx/immutable)

3.掌握主流前端框架的源码实现,理解框架背后的思想,可以持续改进完善业务框架;

4.对前后端的协作模式、产品和项目流程有深入理解;

5.熟悉http/https协议和restfulapi接口标准,熟练掌握前后端交互的技术和常用的框架(如ajax);

6.有实际框架或系统的设计经验,或是作为核心成员开发过复杂的产品级的Web应用;

7.关注前端前沿技术,具备较强的学习能力,各大前端技术社区活跃者、有自己的开源项目者优先;

8.具备很强的沟通能力、分析和解决问题的能力;

工作地址

上海 - 市区

欢迎自荐和推荐, 需要的微信推送简历!

更多

详情

JMeter简单回顾_第14张图片

敬请

关注

JUST DO IT

JMeter简单回顾_第15张图片

你可能感兴趣的:(JMeter简单回顾)