Jmeter压力测试、操作数据库、断言、分布式压测(添加负载机)学习笔记

网友投稿 1579 2023-04-06

Jmeter压力测试、操作数据库、断言、分布式压测(添加负载机)学习笔记

Jmeter压力测试、操作数据库、断言、分布式压测(添加负载机)学习笔记

Jmeter压力测试

一、压力测试场景设置

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

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

2、混合场景,多个请求

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

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

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

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

三、压力测试数据准备

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

四、压力测试结果查看

添加聚合报告:

查看结果关注的几个指标

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

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

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

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才能看到添加的机子

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

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

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

重启 Jmeter之后:

不以图形化界面运行  如 :在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目录加入到环境变量里面

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

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

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

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

一、步骤:

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

找到JAR包的绝对路径

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

1、添加一个JDBC Connection Configuration

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

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

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

5、账号密码

3、写sql,执行sql

4、查看结果

断言

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

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:分布式锁实现:数据库、redis、zookeeper、memcache
下一篇:[转载] 分布式数据库ID生成系统
相关文章