JMeter基础介绍

JMeter!为什么要说这个工具,这个工具是开源的测试工具,最近被用于接口层面的测试。在目前性能和接口,JMeter被占用比较高。

这次先简单介绍下和说下怎么去录制脚本。这个JMeter是java应用,我们不需要安装,但是需要安装jdk。我们去官网下载JMeter,直接百度jmeter找到官网就可以去下载,官网提供了各种版本。只要下载解压出来就好了。之前说要安装jdk为什么?JMeter不是说了是Java程序么,那么都知道Java程序需要配置环境变量。所以我们也先去官网下载jdk,

环境变量配置,需要配置JAVAHOME:jdk 的安装目录,PATH:这里只能修改,这个是不能修改,将%JAVAHOME%\bin加入到PATH,我建议各位使用jmeter4.0以上版本和jdk1.8版本,其实我们做测试很多都需要jdk,我之前做android的自动化时候配置jdk发现和版本存在很大的关系。有时间后续会细说Android自动化测试环境搭建。还有jdk环境变量值在PATH最前面,因为我们可能会安装各种Oracle公司的软件,可能自动会配置很多变量。放前面容易识别到。

JMeter自己目录结构

一、bin目录:

这个目录是JMeter的主目录,存放的JMeter的主jar包、启动脚本、配置文件、运行日志等,启动主jar包就在这里ApacheJMeter.jar,我相信很多人都不知道这个,大部分人都知道jmeter.bat,这个双击接可以运行。没错这是一个批处理,在Windows下 运行,对应当然后Linux下运行的jmeter.sh,这两个就是启动脚本。有时候如果你下载的版本非官方版本,启动脚本出现问题。那么怎么启动JMeter,在bin文件空白处按住shift+右击,选择在此处打开Powershell窗口,输入java -jar Ap按tab键,自动会补充最后变成java -jar .\ApacheJMeter.jar,点击回车即可。他是一个jar包,那么我们知道运行java文件,命令就是java -jar +文件名。之前提到启动脚本,其实他们一个道理,你可以打开jmeter.bat查看里面的脚本

这里也有 -jar ApacheJMeter.jar,只是里面是bat脚本,喜欢研究的可以去深究。这里面还有配置JVM

这里设置最大最小是512兆,这个根据需要可以自己修改。

还有一个重要的文件jmeter.properties,这个文件是JMeter的配置文件,大部分的配置都在这里完成。还有一个文件页相对较常用jmeter-server.bat windows分布式测试要用到的服务器配置jmeters-server linux分布式测试要用的服务器配置。后续篇章会详细讲解。

二、docs目录:

这里存放的都是API,API是不是好想哪里听过,做过接口的应该不是陌生全名:Application Programming Interface,应用程序编程接口。打开可以看到里面有三个文件夹,下面两个可以忽略,是样式和图片,api这就是JMeter提供的存放接口文档的目录,用于二次开发。有兴趣可以进去看看,点击index.html,全英文的接口文档,写的很详细,里面有构造器、方法 、成员等。

三、extras目录:

主要是存放扩展文件,里面有ant-jmeter.jar,ant也是Apache公司的核心项目,Ant用于构建,主要是将你想做的事情自动化。例如,批处理脚本执行,生成HTML格式报告,测试运行时间,测试数据可以被记录,JMeter将自动生成.jtl文件,文件在extras目录中运行,运行"ant -Dtest=文件名 report",可以生成测试统计报告。

四、lib目录:

存放插件目录的jar包。JMeter在jmeter_HOME/lib和ext目录中自动搜索所需的类,并且lib存储依赖于JMeter的外部JAR,如httpclient.jar、httpcore.jar、httpmime.jar等等。

在lib\ext目录中,存储有JMeter依赖项的核心JAR包,并且ApacheJMeter_core.jar、ApacheJMeter_java.jar在写client端需要引用,JMeter插件包也在此目录下。

lib\junit下存放junit测试脚本.

五、Licenses目录:

jmeter证书目录,*****需要截图查看证书图片*****

六、Printable_docs目录:

用户使用手册,例C:\apache-jmeter-3.0\printable_docs下的index.html

jmeter的页面

我们双击jmeter.bat,其实在win10下面直接双击ApacheJMeter.jar。都可以起来。

起来以后大家可以看到界面的样式变了,以前是白底,现在搞得像IDE敲代码的。刚开始,说实话我还有些不习惯这界面的风格。

一、首先不用说我们先把语言切换到中文,喜欢英文的无视。Options-Choose-Language-Chinese(Simplified)我只是拿简体中文来做例子。语言根据自己喜好修改。

二、先添加一个线程组,右击测试计划-添加-Threads(Users)-线程组

线程数:

是模拟所少用户请求。

Ramp-up Period(in seconds):

【1】决定多长时间启动所有线程。如果使用10个线程,ramp-up period是100秒,那么JMeter用100秒使所有10个线程启动并运行。每个线程会在上一个线程启动后10秒(100/10)启动。Ramp-up需要要充足长以避免在启动测试时有一个太大的工作负载,并且要充足小以至于最后一个线程在第一个完成前启动。 一般设置ramp-up=线程数启动,并上下调整到所需的。

【2】用于告知JMeter 要在多长时间内建立全部的线程。默认值是0。如果未指定ramp-up period ,也就是说ramp-up period 为零, JMeter 将立即建立所有线程。假设ramp-up period 设置成T 秒, 全部线程数设置成N个, JMeter 将每隔T/N秒建立一个线程。

【3】Ramp-Up Period(in-seconds)代表隔多长时间执行,0代表同时并发

三、添加Http请求

关于http请求的的属性参数说明:

1)名称:用于标识一个sample。建议使用一个有意义的名称

2)注释:对于测试没任何影响,仅用来记录用户可读的注释信息

4)端口号:目标服务器的端口号,默认值为80,可不填,如果有端口需要这里填写,不需要“:”

5)协议:向目标服务器发送http请求时的协议,http/https,大小写不敏感,默认http

6)方法:发送http请求的方法常用的一般都是GET和POST两种,还有PUT、DETELE、HEAD等等

7)Content encoding:内容的编码方式(Content-Type=application/json;charset=utf-8),常用utf-8,所以这里填写utf-8就好了更具实际接口来填写

8)路径:目标的URL路径(不包括服务器地址和端口),就是你请求地址端口后面一段文字全部,包含端口后面第一个“/”。

9)自动重定向:如果选中该项,发出的http请求得到响应是301/302,jmeter会重定向到新的界面

10)Use keep Alive:jmeter 和目标服务器之间使用 Keep-Alive方式进行HTTP通信(默认选中)

11)Use multipart/from-data for HTTP POST :当发送HTTP POST 请求时,使用

12)Parameters、Body Data以及Files Upload的区别:

1.parameter是指函数定义中参数,而argument指的是函数调用时的实际参数

2.简略描述为:parameter=形参(formal parameter), argument=实参(actual parameter)

While defining method, variables passed in the method are called parameters.

当定义方法时,传递到方法中的变量称为参数.

While using those methods, values passed to those variables are called arguments.

当调用方法时,传给变量的值称为引数.(有时argument被翻译为“引数“)

4、Body Data指的是实体数据,就是请求报文里面主体实体的内容,一般我们向服务器发送请求,携带的实体主体参数,可以写入这里

5、Files Upload指的是:从HTML文件获取所有有内含的资源:被选中时,发出HTTP请求并获得响应的HTML文件内容后还对该HTML

进行Parse 并获取HTML中包含的所有资源(图片、flash等):(默认不选中)

如果用户只希望获取特定资源,可以在下方的Embedded URLs must match 文本框中填入需要下载的特定资源表达式,只有能匹配指定正则表达式的URL指向资源会被下载

四、最后我们添加一个察看结果树,右击线程组-添加-监听器-察看结果树。

左边的text,会记录每次请求的请求名称,点击请求名称,右边取样器结果里面会显示请求信息和返回信息,后续细说。

最后简单说下4.0优化了些什么:

1、支持java9,当然向下兼容。

2、去掉了工作台

3、增加了json断言

4、新增后置处理器

5、新增新的定时器Precise Throught Timer

6、新增新的采样器JMS Point-to-Point

7、还修改了部分Bug

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180725G1QF8L00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

同媒体快讯

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励