JMeter:事务等

1、断言结果

如果用了检查点,并且需要知道请求结果正确率的时候,使用断言结果,查询结果树很耗性能,在正式压测的时候,会禁用。

2、思考时间

3、集合点

4、事务

5、查看聚合报告

执行请求:

单个请求相当于lr中的事务,lr中的事务是计时时间,在图中,单个请求里边有请求计时

事务控制器:可以对多个请求计时

字段说明:

Average → 平均响应时间   事务控制器的平均响应时间=request1+request2  总体时间=(request1+request2+事务控制器)/3

#Samples → 取样次数

Median → 50%的响应时间小于  对应的90%Line,95%Line,99Line

Min/Max → 最小/最大

Error%  → 错误率,请求没有得到正确的http响应

Throughput → tps

Received → 吞吐量

6、JMeter分布式负载

1)在JMeter安装目录下的bin目录下,查找jmeter.properties文件;

2)在jmeter.properties文件中,搜索host:

# Remote Hosts - comma delimited
remote_hosts=127.0.0.1
#remote_hosts=localhost:1099,localhost:2010

如若要进行分布式负载:

# Remote Hosts - comma delimited
#remote_hosts=127.0.0.1
remote_hosts=localhost:1099,localhost:2010,192.168.11.17:1099

说明:多台负载机的添加,使用逗号分隔,端口号为1099

3)保存修改好的jmeter.properties文件,再次打开JMeter:

4)在配置作为负载机的机子上,解压JMeter安装文件;

5)其它负载机及本机,配置好服务器的环境变量,保证可以在任何路径下打开jmeter-server.bat,classpath参照JMeter的第一篇博文;

5)其它负载机上,在JMeter安装目录的bin文件夹下打开 jmeter-server.bat。

7、JDBC请求

JDBC Connection Configuration中的Variable Name 和 JDBC Request中的Variable Name要一模一样

①数据库连接池

数据库本身的对外的连接池(在数据库配置文件中进行配置)

代码中进行连接池的配置

可以这么理解在不超过数据库设置连接池的情况下,在代码中,设置的数据库连接池越大,在进行压测时测试数据库的性能会更加准确些

在此处JMeter中的配置,默认是应用程序对连接池的连接数

[[email protected] ~]# cd /opt/lampp/
[[email protected] lampp]# ls
apache2 docs img libexec manual phpmyadmin share xampp
bin error include licenses modules proftpd temp
build etc info logs mysql properties.ini uninstall
cgi-bin htdocs lampp man pear RELEASENOTES uninstall.dat
ctlscript.sh icons lib manager-linux.run php sbin var
[[email protected] lampp]# cd mysql
[[email protected] mysql]# ls
README.txt scripts
[[email protected] mysql]# cd ..
[[email protected] lampp]# find / -name my.cnf
/opt/lampp/etc/my.cnf
/etc/my.cnf

[[email protected] lampp]# vi /etc/my.cnf

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
maxconnection=1000  → 在数据库配置文件中对数据库连接池数进行配置

②请求最长等待时间

③多长时间清理没用的连接池

④是否开启自动提交,mysql默认自动提交是打开的,oracle默认自动提交是关闭的

⑤事务隔离级别

⑥有空闲连接的时候是否进行连接数据库的测试

⑦最小空闲时间,多长时间测试一次

⑧对数据库进行测试的sql

⑨⑩是固定格式的,不同数据库的写法不同:

mysql:

Database url:  jdbc:mysql://192.168.58.128:3306/test?allowMultiQueries=true  (allowMutiQueries=true → 允许一个请求里边同时提交多条sql)

JDBC Driver class:  com.mysql.jdbc.Driver

添加查询结果树:

此处报了:Response message: java.sql.SQLException: Cannot load JDBC driver class ‘com.mysql.jdbc.Driver‘  → 没有加连接mysql数据库的jar包

下载连接mysql数据库的jar包:mysql-connector-java-5.1.18-bin.jar

将下载好的jar包放到JMeter安装文件的:D:\apache-jmeter-3.2\lib\ext  目录下,重启JMeter,再次运行:

在jdbc request中新增一条sql:

再次发送请求:

可以看到id为7的记录已经被删除,查看数据库对应表中的记录,id为7的记录也被删除了。

8、soap请求

9、http请求

1)新建线程组

2)新建httpcookie管理器

3)新建http请求,在http请求中,进行如下设置:

主要关注web服务器、http请求和参数的设置,http请求可以通过抓包实现

4)添加参看结果树,发送请求:

由上边两图可以看到http请求已发生跳转,且相应数据也跳转到了下一个页面。

5)说明:使用chrome浏览器抓包

对比可以知道,在url中,%5B对应的是"[",%5D对应的是"]",如果使用的抓包工具没有对url进行解码,可以百度搜索Url解码,对需要的url进行解码。

---------------------------------------------------------

时间: 2025-01-05 12:39:55

JMeter:事务等的相关文章

Jmeter(三十)Jmeter Question 之 循环+事务的妙用

先提一个小问题,也是当时在对Jmeter还是懵懂之时,亲身碰到过的一个问题. 真实的业务场景---"登录一次,提交订单N次",当然该处是两个接口. 提现接口是需要判断用户是否在线,换句话说,服务器需要验证其是否登录成功. 登录成功之后,返回Cookie,提交订单接口包含该Cookie一起发送至服务器,才会提现成功. 实现思路: HTTP Cookie管理器 仅一次控制器 登录接口 循环控制器 提现接口 (忽略其中的事务控制器) 该目录结构,实现思想有效解决了前面提到的业务需求. 观察上

jmeter http请求+线程组+事务+断言

简介 jmeter是一款非常强大的软件,可以在测试中做你想的到任何测试,虽然有些会非常复杂,jmeter和协议有关,它支持http,https,mq,ftp等非常多的协议.所以能对web测试,app测试,小程序测试等非常多的测试.一般面试中问测试场景,就是无数个测试用例.在性能测试中被称为测试场景. 线程组中要知道的内容 线程数:有多少个用户,比如设置为10就有10个用户进行用例操作. ramp-up:在多少秒内启动设置的用户数 循环次数:设置的线程数,循环多少次 简单的get请求 我们先添加一

jmeter实现排除登录对单个事务的压测

需求:用户登录后,会循环请求数据上报,对该请求做一个50用户的并发,并循环执行长达10分钟.循环的时候,需要排除登录的过程. 事务:可以是一个接口,可以是一个功能,如一个web页面的访问,可以是一个请求,如循环的数据上报,这里以数据上报为例. 思考: (1)使用setUp Thread Group来做登录的初始化请求,LR不就用init实现这个么?[暂未成功,可以不看,若有好的方法,敬请赐教] 结果:因为有多个线程,cookie管理器不支持 (2)沿用上诉方法,解决cookie管理器不支持的问题

Jmeter(三十七)循环控制器+交替控制器+事务控制器 完美实现接口字段参数化校验

我们在做接口自动化的时候,常常因为无法灵活的的校验接口字段而烦恼.不能自动校验接口字段的脚本,也就不能称之为接口自动化.因此,我设计了一套组合式的控制器,可以完美的解决这个问题 1:首先我们需要在本地建一个异常字段校验的字符集 比如我这里写了五个校验,分别是最大值,最小值,中文,为空,特殊字符 测试交流群:317765580 2:在线程组下创建一个循环控制器,循环次数设置为三次.循环控制器下建一个交替控制器.交替控制器的作用是交替执行控制器下的元件.交替控制器下属建立三个事务控制器. 最外层的循

JMeter学习(一)工具简单介绍

一.JMeter 介绍 Apache JMeter是100%纯JAVA桌面应用程序,被设计为用于测试客户端/服务端结构的软件(例如web应用程序).它可以用来测试静态和动态资源的性能,例如:静态文件,Java Servlet,CGI Scripts,Java Object,数据库和FTP服务器等等.JMeter可用于模拟大量负载来测试一台服务器,网络或者对象的健壮性或者分析不同负载下的整体性能.     同时,JMeter可以帮助你对你的应用程序进行回归测试.通过你创建的测试脚本和asserti

Jmeter常用功能详解

[Test plan(测试计划)界面]                                                      [线程组界面] 右键点击 测试计划--->添加--->Threads(users)--->线程组,就可以成功添加一个线程组了. Jmeter中最重要的就是线程组了,线程组就相当于用户活动,一个线程组就相当于有一个用户活动,添加多个线程组就相当于模拟多个用户活动对服务器进行测试. [循环控制器界面] 右键点击线程组--->添加---->

Jmeter各项参数设置

1.Jmeter参数化: 方法1:step 右键-添加-前置处理器-用户参数 添加用户.添加变量,设置迭代方式找到请求,将需要参数化的常量用参数替换 方法2:通过CSV data source的方式 step 右键-添加-配置元件-CSV Data Set ConfigFilename 文件名:即参数化要引用的文件名File encoding文件编码方式:可以不填,一般就utf-8,gbkVariable Names(comma-delimited)变量名(用逗号分隔):多个变量可以引用同一个文

在JMeter测试计划中如何控制业务比例

性能测试混合场景中,我们需要组合多个业务操作到场景中来.比如有一个论坛的业务分布如下:开新帖与回复帖子的比例为2:3,那么我们在JMeter测试计划中如何控制其比例呢? 下面我们介绍两种方式: 1.多线程组方式 2.逻辑控制器控制 多线程组方式: 我们知道JMeter是用线程组来模拟虚拟用户的,JMeter还可以支持一个计划中多个线程组. 利用这个特性我们可以把开新帖业务放在一个线程组中,回帖业务放在另外一个线程组中. 为了制造出业务量的比例关系,我们通过控制线程数来达到效果.如下图: Repl

JMeter学习笔记--详解JMeter逻辑控制器

JMeter使用逻辑控制器来决定采样器的处理顺序 简单控制器(Simple Controller):存储设备(将某些采样器归组) 循环控制器(Loop Controller:设置循环次数 仅一次控制器(Once Only Controller) 交替控制器(Interleave Controller) 随机控制器(Random Controller) 随机顺序控制器(Random Order Controller): 每个子测试元件都至多执行一次,但是执行顺序是随机的 吞吐量控制器(Throug