初识jemeter和第一个例子

本文介绍了JMeter的基础知识,包括其作用、原理、安装和下载过程。JMeter是一个强大的性能测试工具,支持HTTP、FTP和数据库测试。文章详细讲解了JMeter的执行流程、基本组件和第一个接口测试的例子,帮助读者理解如何使用JMeter进行压力和接口测试。
摘要由CSDN通过智能技术生成

> 一小个题外话:一开始使用jmeter的目的是做接口测试,后来随着学习的深入发现jmeter是如此强大的一个工具,其自由定制和灵活程度完全不亚于现在主流的框架(比如用testng做接口这类的)。学习也有一段时间了,项目也终于用起来了,所以针对前阵子的学习做个总结,也好久没写博客了 -.-

介绍:

(懒人就抄了百度百科了)

> JMeter的作用

1.能够对HTTP和FTP服务器进行压力和性能测试, 也可以对任何数据库进行同样的测试(通过JDBC)。

2.完全的可移植性和100% 纯java。

3.完全 Swing 和轻量组件支持[预编译的JAR使用 javax.swing.*)包。

4.完全多线程 框架允许通过多个线程并发取样和 通过单独的线程组对不同的功能同时取样。

5.精心的GUI设计允许快速操作和更精确的计时。

6.缓存和离线分析/回放测试结果。

JMeter的高可扩展性

1.可链接的取样器允许无限制的测试能力。

2.各种负载统计表和可链接的计时器可供选择。

3.数据分析和可视化插件提供了很好的可扩展性以及个性化。

4.具有提供动态输入到测试的功能(包括Javascript)。

5.支持脚本编程的取样器(在1.9.2及以上版本支持BeanShell)。

差不多就是这些特性了,接下来就都是这些特性的使用,这里先放一下我在项目接口中实现脚本后的部分截图,后续的实例可都是从实际项目中来的,请期待:

这里写图片描述

原理篇:

那么用过fiddler的同学因为都知道基本原理,jemeter基本上一样,核心就是中间代理。

这里写图片描述

中间代理可以录制一些访问的脚本,拿到脚本后再通过jemeter模拟线程并发访问网络,实现压力测试或者接口测试。

安装和下载:

直接百度jemeter第一个就是下载连接了,点开进去下载发现有两个东西

这里写图片描述

上面是就是jmeter的客户端,下面是源码,正常使用下载上面就行了,那么源码是用来干什么的呢?最大的一个作用是支持自己写自定义协议的sample,属于比较高大上的用法了。

下下来其实就是一个压缩包,解压就能使用了,当然前提是你的电脑安装了jdk1.8版本,这个不在这里讨论的范围了。

需要注意的一点是,这个压缩包是通用的,因为是存java写的嘛,笔者就是直接拖到linux服务器运行的。

目录和运行

运行非常简单,window下直接运行bin目录下的bat文件就行了。重要是要介绍一下目录结构,这也和我们之后的工作关系比较大。

这里写图片描述

bin:运行的入口

docs:帮助文档,一堆e文

extras:生成报告的资源,里面有build.xml,用ant可以构建一个demo报告出来,同时还有一个ant-jmeter-1.1.1.jar,这个需要放在ant/lib目录下才能支持构建

lib:很重要的目录,之所以说jemeter强大,就在于它的扩展性,lib目录下是jmeter加载的所有jar包,所以包括自定义脚本和协议,都是加载这里面的类库的,里面的一堆取样器,都可以在里面找得到

lib/ext:自定义脚本打包成jar包,一般放这里面

运行流程和基本组件初步概念

作为一个测试应该都用过junit框架,junit的一个最基本的流程是@Before–>@Test–>@After。

那么jmeter也是类似的,不同的是写方法变成了添加可视化组件。

下面的图是建立在线程组之上的,jmeter的所有脚本都是运行在线程组内的,你可以理解成–新建一个测试类

这里写图片描述

我们可以看到这些可视化组件,我们以自动化思维的方式去分析这里的组件,不过先要知道执行顺序:

配置单元–前置处理器–逻辑控制器–定时器–取样器(Sampler)–后置处理器–断言–监听器

大概顺序就是这个样,当然这是在一个父类之下的元件执行顺序,下面我们分别理解它们到底是什么

配置单元:一般用来配置初始化的数据的,你可以理解成@BeforeClass或者设置全局变量

前置处理器:看成是@Before

逻辑控制器:就是逻辑语句,什么while…for…这些循环语句

定时器:类似sleep,计算等待,集合点

取样器(Sampler):就是我们的测试方法,jmeter弄成了对应协议的jar包,可以配置运行

后置处理器:就是@After,用得多的是jmeter的关联,简单的说就是下一个回包要用到上一个回包的结果,这个后面接口校验用的也比较多

断言–监听器:就是对结果的判断和报告了。

那么通过上面可以发现,基本和我们测试的思想是一致的:数据准备–执行测试–结果判断–生成报告。

第一个例子

有了上面的概念后我们直接上手了,界面的UI那些介绍就略过了。

这里写图片描述

要实现一个什么功能呢?
接口:https://www.sogou.com/web?query=cloud_huan

分析:
1.使用https访问
2.域名为www.sogou.com
3.路径为/web
4.get请求参数为query=cloud_huan

于是就考虑用配置单元创建一个https请求的默认值,里面写入一个通用的域名

这里写图片描述

然后新建一个http取样器,配置/web路径和get请求的参数

这里写图片描述

最后断言这个接口返回200,代表测试通过

这里写图片描述

所以总结起来步骤是这样的:

新建线程组–新建一个http取样器–为http取样器设置配置单元–为http取样器设置断言–为这个线程组加一个监听器

直接上源码(改为.jmx就可以使用)

<?xml version="1.0" encoding="UTF-8"?>
<jmeterTestPlan version="1.2" properties="3.2" jmeter="3.2 r1790748">
  <hashTree>
    <TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="测试计划" enabled="true">
      <stringProp 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值