Jmeter压力测试

 

一、压力测试场景设置

一般我们在做压力测试的时候,分单场景和混合场景,单场景也就是咱们压测单个接口的时候,多场景也就是有业务流程的情况下,比如说一个购物流程,那么这样的场景就是混合场景,就是有多个接口一起来做操作。

1、单场景,一个请求就可以了

2、混合场景,多个请求

3、压测时间,一般场景都是运行10-15分钟,如果是做疲劳测试的话,可以压一天或者一周,根据具体的情况来定  

 

二、线程属性 、调度器配置

  • 线程数:当前线程数量,可以简单的理解为用户数量。
  • Ramp-up Period (in seconds):达到上面指定线程数所花费的时间,单位为秒。举个栗子:假设线程数为100个,花费时间20s,那么每秒启动的线程数 = 线程数/时间,即100/20 = 5。换句话说,就是1秒启动5个线程。
  • 循环次数:勾选“永远”选项,则线程组一直循环。否则,以后面所填数量为准。
  • Delay Thread creation until needed:当线程需要执行的时候,才会被创建。如果不勾选此选项,所有线程在开始时就全部被创建。
  • 调度器:勾选此选项,才可修改下面的调度器配置。

    调度器配置

  • 持续时间(秒):整个测试计划持续的时间。(优先于后面的结束时间选项)
  • 启动延迟(秒):测试计划启动后,会被延迟启动,时间为选项填入的时间。(优先于后面的启动时间选项)
  • 启动时间:整个测试计划将于此处填写的时间点启动
  • 结束时间:整个测试计划将于此处填写的时间点结束

 

线程组说白了就是模拟多个用户,同时或者有顺序的去执行任务。一个线程组可设置多个线程,每个线程之间互不影响。在服务器的并发测试有着非常重要的作用。其中,每个线程的执行,操作的变量都不会影响其他线程的变量值

jemeter怎么多主机压测 jmeter多场景压测_jemeter怎么多主机压测

 

 

三、压力测试数据准备

在做压测的时候,数据量少和数据量大的情况下,测试的结果是不一样的,所以,我们在设计场景的时候是要考虑到这种情况的,要测试数据库中数据量大和数据量小的情况,如果是要测试数据量大的情况下,就要造数据了,造数据可以使用jmeter,操作数据库来造数据,也可以使用python连接数据库,批量的造数据。

 

 

四、压力测试结果查看 

添加聚合报告:

jemeter怎么多主机压测 jmeter多场景压测_jemeter怎么多主机压测_02

jemeter怎么多主机压测 jmeter多场景压测_压测_03

 

 

查看结果关注的几个指标

1、tps是每秒钟处理的请求数,也就是指服务器的处理能力,tps越高说明服务器处理能力越好

2、响应时间,也就是每个请求的处理时间

3、并发用户数 也就是多少并发

 

jemeter怎么多主机压测 jmeter多场景压测_jemeter怎么多主机压测_04

 

 

 

Jmeter分布式压测 (添加负载机)  

 

我们在压测的时候,可能并发比较大, 一台机子已经启动不了那么多并发了,这个时候我们就要使用多台机子一起来发压力,就要添加压力机,添加压力机怎么添加呢,首先要在做压力机的机子上启动jmeter的代理,然后做为控制机的机子上添加上压力机的ip即可。 Jmeter的bin目录下有一个jmeter-server,启动它即可,windows机子作为压力机的话,运行jmeter-sever.bat,linux作为压力机的话,运行jmeter-server。 然后在作为控制机的jmeter配置文件里添加压力机ip即可,jmeter的配置文件在bin目录下jmeter.properties,添加压力机的时候,在配置文件里面找到remote_hosts添加ip,然后重启jmeter就可以看到远程压力机了

 

 

 一、jmeter分布式压测 (多台电脑一起压测)

1、有多台电脑,每台电脑上都有jmeter,而且这几台电脑都互相能ping通
2、在我的电脑的jmeter的配置文件jmeter.properties里面添加了其他电脑的ip (打开配置文件后,搜索 remote_hosts)(其他机子不需要配置)
3、在其他人的电脑上要启动jmeter-server

通过jmeter-server.bat
主机上的Jmeter才能找到其他电脑上的Jmeter,来调他们的包,让他们的电脑去帮助主机发请求(发压力);

只需要在主机上写好脚本就好,但是如果有参数化文件,那么也要在其他人的电脑的同样位置放一份  

因为改了配置文件,因此需要重启Jmeter才能看到添加的机子

 

jemeter怎么多主机压测 jmeter多场景压测_压测_05

、2、在我的电脑的jmeter的配置文件jmeter.properties里面添加了其他电脑的ip (打开配置文件后,搜索 remote_hosts)(其他机子不需要配置)

jemeter怎么多主机压测 jmeter多场景压测_jemeter怎么多主机压测_06

 

关系图:一台主年脑+多台压测电脑

 

jemeter怎么多主机压测 jmeter多场景压测_压测_07

jemeter怎么多主机压测 jmeter多场景压测_压测_07

jemeter怎么多主机压测 jmeter多场景压测_压测_09

  3、在其他人的电脑上要启动jmeter-server

jemeter怎么多主机压测 jmeter多场景压测_配置文件_10

 

重启 Jmeter之后:

jemeter怎么多主机压测 jmeter多场景压测_mysql_11

jemeter怎么多主机压测 jmeter多场景压测_压测_12

 

 

不以图形化界面运行  如 :在Linux下运行  jmx脚本 ,或windows下CMD运行

我们在做测试的时候,有时候要运行很久,公司用的测试服务器一般都是linux,就可以运行在linux下面,linux下面不能像windows一样有图形化界面,那怎么运行脚本呢,就先在windows上把脚本做好,然后在linux下运行即可,linux下运行jmeter是在jmeter的bin目录下的jmeter.sh这个shell脚本。 sh jmeter.sh -n –t a.jmx -l res.jtl -n代表以没有图形化界面启动,-t代表后面是测试脚本,a.jmx也就是我们做好的jmeter脚本,-l代表测试结果 res.jtl就是测试结果文件,查看结果的话,在查看结果树视图中导入这个res.jtl就可以查看到测试结果了

1、没有图形化界面运行
2、先把jmeter的bin目录加入到环境变量里面 

jemeter怎么多主机压测 jmeter多场景压测_mysql_13

 

 

 

jemeter怎么多主机压测 jmeter多场景压测_jemeter怎么多主机压测_14

 

然后执行这个命令  (cmd命令窗口)
jmeter -n -t e:\path\HTTP请求.jmx -l e:/path/res.jtl
-n 代表在没有图形化界面下运行
-t 指定一个测试脚本
-l 指定结果文件,这个查看结果的文件要以.jtl

 

jemeter怎么多主机压测 jmeter多场景压测_压测_15

 

上图运行的时候  在 C:\Users\Administrator 下运行,因此如果命令行与结果文件 res.jtl 没有指定路径的话,该结果文件就会存在于当前所在路径下

jemeter怎么多主机压测 jmeter多场景压测_配置文件_16

 

 

 在jmeter里面添加聚合报告,在导入res.jtl文件就可以查看执行结果

 

jemeter怎么多主机压测 jmeter多场景压测_mysql_17

 

 

 

 

 

 

 

 

Jmeter 连接数据库、操作数据库 

 一、步骤:

1、导入jdbc的jar包,因为jmeter本身不能直接连接mysql,所以需要导入第三方的jar包,来连接mysql    。

找到JAR包的绝对路径

jemeter怎么多主机压测 jmeter多场景压测_mysql_18

 

jemeter怎么多主机压测 jmeter多场景压测_配置文件_19

 

2、创建数据库连接配置,mysql的url、端口号、账号、密码

jemeter怎么多主机压测 jmeter多场景压测_jemeter怎么多主机压测_20

 

       1、添加一个JDBC Connection Configuration

       2、配置mysql连接池的名称,后面发sql请求的时候指定连接哪里

       3、数据库的url:jdbc:mysql://192.00.0.00:3307/bugfree?allowMultiQueries=true

      4、数据库驱动:这里就是指定连接什么类型的数据库,mysql、oracle、SqlServer等等

       5、账号密码

jemeter怎么多主机压测 jmeter多场景压测_压测_21

 

 

 

 

3、写sql,执行sql

 

jemeter怎么多主机压测 jmeter多场景压测_jemeter怎么多主机压测_22

jemeter怎么多主机压测 jmeter多场景压测_压测_23

 

4、查看结果

jemeter怎么多主机压测 jmeter多场景压测_配置文件_24

 

 

 

 

断言 

断言:
就是自动帮你校验结果用的。

 

jemeter怎么多主机压测 jmeter多场景压测_配置文件_25