JMeter:事务等

Posted 花醉红尘

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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中的配置,默认是应用程序对连接池的连接数

[root@besttest ~]# cd /opt/lampp/
[root@besttest 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
[root@besttest lampp]# cd mysql
[root@besttest mysql]# ls
README.txt scripts
[root@besttest mysql]# cd ..
[root@besttest lampp]# find / -name my.cnf
/opt/lampp/etc/my.cnf
/etc/my.cnf

[root@besttest 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进行解码。

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

以上是关于JMeter:事务等的主要内容,如果未能解决你的问题,请参考以下文章

Jmeter的体系结构

JMeter笔记11 | JMeter事务

JMeter笔记11 | JMeter事务

JMeter笔记11 | JMeter事务

Jmeter体系结构-事务控制器

JMeter 、Loadrunner比较