使用实践
0、创建线程组及使用
创建线程组:
这个的意思其实就是我们测试接口的时候要创建多少个线程,多少个并发,里面的规则是怎么样的。
创建完线程组后如下:
这个线程组的名字为:admin-corp/detail,线程属性在下文会讲到。
1、Http信息头设置
因为在测试线程的时候往往会设置Http的信息头Hearder的一些参数, 在公共的地方创建一个HTTP信息头管理器来存放,下面的所有接口就都会用到。
在项目下面右键添加:
添加完后设置如下:
2、接口设置
接着上面的第0个步骤,创建完线程组后,就可以开始进行设置线程了。
在线程组下面右键,添加取样器,HTTP请求。
3、参数设置
创建了接口之后,就可以设置接口的参数了。包括url和端口。
大多数接口都有请求参数。
在参数下面双击就可以加入参数。
如下面我添加了name=yaokj的参数。
如果要设置头Header,参数第1项Http信息头设置。
4、运行规则设置
在发起测试请求时,要设置一些线程的参数,就是0、创建线程组及使用里说到的一些参数:
下面说一下红框的3个比较重要的参数。
4.1、线程数:说明的是在发起测试的时候开多少个线程为执行这些请求,理解为线程池的意思。
4.2、Ramp-Up时间(秒):说的是发起所有线程要多少时间,0的意思是马上开始所有的线程。更加详细的说明如下:
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代表同时并发
【4】假如要使用大量线程的话,ramp-up period 一般不要设置成零。
因为假如设置成零,Jmeter将会在测试的开始就建立全部线程并立即发送访问请求, 这样一来就很轻易使服务器饱和,更重要的是会隐性地增加了负载,这就意味着服务器将可能过载,不是因为*均访问率高而是因为所有线程的第一次并发访问而引起的不正常的初始访问峰值,可以通过Jmeter的聚合报告监听器看到这种现象。
4.3、循环次数:说的就是要执行多少次。
像上面红框的,将会执行80次。
5、运行
左上有一个运行的键钮,点击可执行。
线程的启动情况可以在右上角看:
6、查看接口的执行情况
如果要查看接口的执行情况,是要添加监听器的,如下:
在线程下右键添加监听器,查看结果树,就可以看到每一个接口的情况。
在一些情况下我们要看汇总信息,这时我们添加汇总报告。
如果要看所有线程组接口的汇总报告,可以在上一层测试计划下面右键添加汇总报告。
7、清除所有的结果
执行完后,如果要清除所有的监听器结果可以点击上面的清除按钮。
8、命令方式运行
在许多情况下,我们都在图形界面上设置好各种参数,测试样例通过后,再用命令行的方式执行压测任务,因为图形界面很消耗内存。在启动的时候JMeter也有提醒:
命令方式的运行如下:
./jmeter.sh -n -t ../../saas.jmx -l ../../saas_1.jtl
saas.jmx是保存的JMeter文件,saas_1.jtl是执行结果的聚合文件。执行如下:
执行完成后,打开聚合文件saas_1.jtl
添加一个聚合报告:
在聚合报告里打开saas_1.jtl
本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理