其他分享
首页 > 其他分享> > jmter快速上手

jmter快速上手

作者:互联网

测试计划

当你将语言设置为中文,打开jmeter后,就会看到如下的窗口:

各功能概述:

线程组

一个测试计划下,可以有多个线程组,大部分的测试内容都在线程组内实现。

如上图,jmeter提供了三种了线程组:

这里主要来介绍普通的线程组,当你如上图的操作,选中测试计划右键添加一个普通的线程组时,会得到如下界面:

各参数介绍:

取(采)样器

jmeter内置和很多的取样器,用来模拟各种场景下的发送请求的操作。

这里主要使用的是HTTP请求取样器,这里以向http://www.neeo.cc:6001/get地址发请求为例:

来看各参数:

了解了这些配置后,你可以点击运行按钮执行了,但你会发现并没有什么结果输出,想要看执行结果,还需要有个元件要了解。

察看结果树

察看结果树用来查看测试计划执行的结果。

如果为当前线程组添加一个察看结果树,来查看当前线程组内的线程执行的结果。

当你运行测试计划后,该计划内的线程组都会执行,我们这目前只有一个;然后执行线程组内每个取样器,这里也只有一个。那么执行结果将会被察看结果树收集。

你也可以点击清除按钮清除察看结果树。

关于线程组的Ramp-Up时间(秒)

现在,设置一下线程组的参数:

这个意思是,表示要在10秒钟之内启动着5个线程。你也可以通过日志的执行时间来验证。

入上图,日志执行时间显示为大约在8秒左右启动了所有的5个线程。

关于测试计划的独立运行每个线程组

如果勾选了测试计划的"独立运行每个线程组"选项。那么从上到下,每个线程组执行完毕后再执行下一个线程组。

如上图,线程组的设置是,线程数是5,Ramp-Up是1。没有勾选测试计划中的"独立运行每个线程组"选项,多个线程组是交叉着运行。

下图是勾选了测试计划中的"独立运行每个线程组"选项,多个线程组运行的结果:

可以看到,从上下到下的顺序执行每个线程组。

另外,如果你细心也可以发现,此时的察看结果树不在位于某个线程组内了,而是跟线程组平级,处于测试计划中了,表示监听测试计划中所有线程组的执行结果,这也是即将要说的一个点——作用域的概念。

元件的作用域

元件表示,实现特定功能的元器件,插件,常用来在测试计划中,实现特定的功能,如查看请求的执行结果,查看聚合报告等。

在jmeter中,各个元件(如察看结果树),所处的位置不同,它其作用的范围也不同,常见的作用域:

切换

切换功能也就是禁用/启用指定的线程组、取样器、元件。就像代码注释一样,打开就执行该部分代码,注释就不执行。

这里可以有两种方式来使用切换功能,当你选中要切换的线程组、取样器、元件时:

自定义全局变量

看图说话:

你看粗来啥了?好吧,现在我们的项目测试环境中运行,测试用例中的ip和端口这么写没问题,然后我们就写了好几百个用例.....

然后,项目上线了,IP和端口变了,我们的用例是不是都要一个个的修改成新的?是的!但是,这就太麻烦了,所以,我们要学习一种新的方式,在某个地方提前定义一些公共的变量,然后全局中都去引用,当有需要就修改变量而不用去每个具体引用地址中修改,这样岂不美哉。

在jmeter中,怎么定义变量呢?看图:

在"测试计划"的"用户定义的变量"中,我们在这里定义一些变量(作用于全局),然后其他的地方用到就可以直接引用了。

在需要的地方,使用${变量}就可以了。

那么我们如何查看jmeter在执行请求中都使用了哪些变量了呢?比如我们要查看ip和端口这两个变量。那就是使用调试取样器。

调试取样器

如下图创建一个调试取样器:

这里,关于调试取样器的各个参数都保持默认,因为它主要配合察看结果树来使用。

然后执行测试计划,在察看结果树就可以找到ip和端口两个变量,当然还有其他的变量:

最后,请保证变量名的唯一性..........

HTTP请求默认值

除了全局变量能解决部分多个请求中的一些公共的变量问题,还有个配置元件能做这些,比如,下面这三个请求:

http://www.neeo.cc:6001/get    
# get
# 参数  {"user":"zhangkai", "pwd": "666", "id": 1}

http://www.neeo.cc:6001/put
# put
# 参数  {"user":"zhangkai", "pwd": "666", "method": "put"}

http://www.neeo.cc:6001/post
# post
# 参数  {"user":"zhangkai", "pwd": "666", "sex": "male"}

向同一个地址发送请求;有相同的参数(用户名和密码);各自的请求方式不同;各自又有自己的独特的请求。这种情况就是极其适合使用"HTTP请求默认值"这个配置元件,将功能的部分当成请求默认值,然后各自的再单独配置。
来个示例:
先来添加"HTTP请求默认值"配置元件,并且将公共部分配置上:

然后为三个接口分别创建一个线程组,线程组内创建一个"HTTP请求"取样器:

配置各自需要单独携带的参数和配置。
我们来去"察看结果树"中,查看结果:

可以看到,三个请求都没有问题。

通用接口练习

win 10 + jmeter 5.2.1

我们通过几种有代表性的接口来学习jmeter的用法。

带参数的get请求

http://www.neeo.cc:6001/get?user=zhangaki&pwd=1234

在线程组内,新建一个HTTP请求取样器,然后配置如下:

参数可以在url上携带,也可以在下面的参数选项中以key:value的形式携带。

key:value格式的post请求

http://www.neeo.cc:6001/post
# 参数
user=zhangaki
pwd=1234

在线程组内,新建一个HTTP请求取样器,然后配置如下:

要注意修改请求类型;post请求的参数都在下面"参数"选项中携带。

参数为k=json的POST接口

http://www.neeo.cc:6001/post
# 参数
info = {"phone": 10086, "address": "北京"}

在线程组内,新建一个HTTP请求取样器,然后配置如下:

这种格式参数,携带也不麻烦,把json串当成一个value值即可。

那么,要是参数是纯json类型的post接口呢?

参数为json的POST接口

http://www.neeo.cc:6001/post
# 参数
{"phone": 10086, "address": "北京"}

在线程组内,新建一个HTTP请求取样器,然后配置如下:

也是非常的简单,把json串放到"消息体数据"选项即可。

PS:如你的"消息体数据"选项点击无效,那么,请检查左侧"参数"选项的值是否都清空了......

标签:测试计划,请求,参数,jmter,线程,取样器,执行,快速
来源: https://www.cnblogs.com/TodayWind/p/15124512.html