Jmeter使用笔记1
1、简介
jmeter 是一款专门用于功能测试和压力测试的轻量级测试开发平台。多数情况下是用作压力测试,该测试工具在阿里巴巴有着广泛的使用。
2、安装
下载apache-jmeter-3.1.rar; 解压。
双击jmeter.bat启动。
3、配置Http请求
参考:https://blog.csdn.net/chenleixing/article/details/43418185
(1)建立一个测试计划:可以自己根据要测试的接口命名
(2)在新建的测试计划右键添加线程组,线程组可以设定要模拟的并发数:
设置200,相当于同时200个并发线程调用接口;可以设置一定循环次数,也可以设置为“永远”,设置为“永远”时候,要配置下方的调度器。
Rame-up Period seconds:隔多长时间启动线程。https://blog.csdn.net/sunwangdian/article/details/50738870
(3)添加Http请求:
(4)添加响应断言(接口返回的结果进行判断是否正确):
(5)添加“查看结果树”:
(6)添加“聚合报告”:会统计压测过程中的结果信息。
关于聚合报告的参数理解:
http://www.360doc.com/content/15/0228/11/20874412_451438418.shtml
4、配置Java请求
当Jmeter提供的Sampler不能满足需求,比如我们测试接口的参数需要自定义生成,或返回的需要较复杂的判断等,可以自定义Java请求,自己编写测试的Java用例。
参考:http://www.cnblogs.com/andashu/p/6296930.html
(1)创建Java测试项目。下图目录是我创建的项目。每个***Test代表对一个接口的测试用例。
(2)引入Jar包。我为了图方便把Jmeter中Lib目录下自带的Jar包都引入了。
(3)编写测试类。
第一,该类必须继承自AbstractJavaSamplerClient类或实现JavaSamplerClient接口,如下图:
需要重写以下方法:
1、public Arguments getDefaultParameters();设置入参,已设置的参数会显示在jmeter GUI的参数列表中。
上图中是该接口需要的入参,注意标红的部分我设置的入参是空,因为这个入参是要针对每次请求随机变化的,所以先设置为空,等稍后用Jmeter跑该Java请求测试时,会通过特殊方式为该入参单独进行设置。
2、public void setupTest(JavaSamplerContext context);初始化方法,用于初始化性能测试的每个线程,每个线程前都会执行一次。
3、public SampleResult runTest(JavaSamplerContext arg0);性能测试的线程运行体,测试执行主体,从arg0中获取参数,并调用被测方法,完成与服务器的交互。该方法是java Sampler实现的重点,执行次数取决于线程数和循环次数。
context中是设置的入参,可以根据自己要测试的接口构造完整的入参,以及提交请求(我的例子是自己编写的http工具类),并对返回的结果做相应的处理。通过result.samepleStart(),result.sampleEnd()来设置计时开始和结束的位置,其差值即为接口的耗时。
4、public void teardownTest(JavaSamplerContext arg0);测试结束时调用,每个线程执行一次。setupTest和teardownTest方法不需要时可以不写。
以上4个方法中只有runTest是必须实现的,其他3个可根据需求去覆盖。这4个方法执行的先后顺序与其前面的序号相对应,分别为:getDefaultParameters()、setupTest(JavaSamplerContext context)、runTest(JavaSamplerContext arg0)、teardownTest(JavaSamplerContext arg0)。
如果需要对多个方法进行性能测试,则需要建多个测试类,多个测试类可以放在同一个包下面,也可以放在单独的包中。
(5)将项目打包成jar包。并放入jmeter的扩展包目录下,即{Jmeter_home}\lib\ext,并将项目的依赖包都放到{Jmeter_home}\lib目录下。
(6)按照构建Http请求类似的方式,构建Java请求。
构建后如图所示:
注意标红框的地方,类名称选择自己构建的Java测试类;可以看见我们在Java测试类中的方法getDefaultParameters设置的入参都显示出来了,而我标红框的几个参数则对应我们之前设置入参的时候,把值预留为空的字段。这几个入参需要我们自定义,我们使用${cusotmerId}这种方式告诉Jmeter这个参数我从外部文件读进来,然后通过CSV Data Set Config设置外部的参数文件。
(7)CSV Data Set Config构建外部的参数文件。
添加的CSV Data Set如下图所示:
主要标明文件的位置,包含的入参以及(多个)入参的分隔符(可以为逗号)。其中入参的名字和步骤(6)中定义的入参(${customerId})保持一致。
CSV Data Set Config同样适用于Http请求。
Jmeter使用笔记1的更多相关文章
- Jmeter使用笔记之断言
前言 Jmeter的断言方式有很多种,由于在工作中经常做的是API接口测试,所以这篇文章主要介绍如何对接口的字段进行解析,如何对解析出来的字段的值断言 了解API接口 Restful API 规范 协 ...
- Jmeter学习笔记TWO
使用非GUI模式运行Jmeter脚本并自动生成测试报告 命令:jmeter -n -t tougu.jmx -l result.jtl -e -o /tmp/ResultReport 这个命令是用于执 ...
- Jmeter学习笔记ONE
最近想学一些关于性能测试方面的知识,其实之前已经初步了解了Jmeter工具,它是一个轻量级的性能测试工具,开源并且免费,相比于Loadrunner来说用起来更简便. JMeter 可以用于对服务器.网 ...
- jmeter使用笔记
接口测试 http协议 接口分成两类,一类是查询功能的接口,一类是保存数据功能的接口. 保存逻辑:数据传入进来,验证通过.保存到数据表中 使用jmeter接口测试的步骤 1.首先添加线程组. 2.配置 ...
- JMeter 学习笔记从不懂慢慢提升(01)
开源已经成为一个趋势,虽然说做测试是一个低端的行业,但是我们也应该在这个低端的行业慢慢提升自己,让自己到达理想的高度. 以前说如果你会使用loadrunner可能别人就会觉得你有一定的水平那么就会拿高 ...
- Jmeter 使用笔记之 html 报告扩展(一)
题记:在用 loadrunner 的时候可以生成一个 HTML 的报告,并且里面包含各种图表,各种详细的数据.而在使用 Jmeter 测试完后并不能直接生成 Html 的报告(无论是用 GUI 还是命 ...
- Jmeter学习笔记
Jmeter安装 Jmeter组件介绍 Jmeter
- jmeter学习笔记(一)
1.添加JSON Path Extractor >>下载地址:http://jmeter-plugins.org/downloads/all/,下载 JMeterPlugins-Extra ...
- Jmeter学习笔记03-元件作用域及执行顺序
Jmeter可以通过鼠标拖拽来随意改变元件之间的顺序以及元件的层级关系,随着元件所在域的不同,在执行时候,会有不同效果 层级关系和元件类型决定了在测试计划中各元件的执行顺序. 1)元件的作用域: jm ...
- JMeter学习笔记02-基础介绍
基本构成 1)负载发生器:产生负载,多线程模拟用户行为 2)用户运行期:脚本运行引擎,用户运行器附加在线程上,根据指定脚本模拟指定的用户行为 3)资源发生器:生成测试过程中服务器.负载机的资源数据 4 ...
随机推荐
- 不了解MES系统中的看板管理?看完本文就懂了
如果想要在生产车间中,让生产过程管理都处在“看得见”的状态,那么看板可视化管理的导入是你的不二选择. MES看板包括四个部分:生产任务看板.各生产单位生产情况看板.质量看板和物料看板,其中生产任务看板 ...
- Struts2 OGNL表达式、ValueStack
OGNL简介 OGNL,即Object-Graph Navigation Language,对象视图导航语言,是一种数据访问语言,比EL表达式更加强大: EL只能从11个内置对象中取值,且只能获取属性 ...
- [20190502]给显示输出加入时间戳.txt
[20190502]给显示输出加入时间戳.txt --//有别人问我执行脚本中timestamp.pl的代码,实际上有些文章里面有源代码,有一些忘记写上了.--//贴上:$ cat /usr/loca ...
- Vue+ElementUI 导航组件
创建导航页组件 在components目录下新建一个navigation目录,在Navi目录中新建一个名为Navi.vue的组件.至此我们的目录应该是如下图所示: 然后我们修改main.js文件,修改 ...
- 前台VUE的组件之间传参方式
路由传参 """ 转跳: <router-link :to="'/course/'+course.id">{{course.name}}& ...
- IBM LOTUS DOMINO 9 部署SSL证书
前言 随着SHA1算法在2016年12月31日以后,将被强制淘汰,所有新的SSL证书都必须支持SHA256算法,所以我们必须将IBM Domino Server升级到9.0以上才可以支持SHA256算 ...
- SSM整合开发——基于SSM的OA系统
一.课程介绍 链接: https://pan.baidu.com/s/18B-lWfOUnKZPvuVEHY_NmQ 提取码: ky7t 复制这段内容后打开百度网盘手机App,操作更方便哦 需要 to ...
- Java高级-反射
1.如何创建Class的实例 1.1过程:源文件经过编译(javac.exe)以后,得到一个或者多个.class文件..class文件经过运行(java.exe)这步,就需要进行类的加载(通过JVM的 ...
- MySql5.7InnoDB全文索引(针对中文搜索)
1.ngram and MeCab full-text parser plugins 全文检索在MySQL里面很早就支持了,只不过一直以来只支持英文.缘由是他从来都使用空格来作为分词的分隔符,而对于中 ...
- thymeleaf:在一个页面中引入其它的页面
这个在jsp中很容易实现,但是springBoot不推荐使用jsp,建议使用thymeleaf,下面是在thymeleaf中引入界面的方法 1.修改配置文件 spring: mvc: static-p ...