Loadrunner连接MySQL执行SQL语句脚本

news/2024/5/19 1:38:16 标签: 数据库, mysql, java, jdbc

代码如下:

/*
 * LoadRunner Java script. (Build: _build_number_)
 * 
 * Script Description: 
 *                     
 */

import lrapi.lr;
import java.sql.*;
import java.sql.DriverManager;
import com.mysql.jdbc.Connection;

public class Actions
{

        private  Connection conn ;  //把连接放到了start_transaction外,避免每次执行脚本都进行连接
	    public int init() throws Throwable {
	    try{

	        String driver = "com.mysql.jdbc.Driver";
            String url = "jdbc:mysql://xx.xx.x.xx:3306/test?useSSL=false";  //mysql连接地址
            String user = "root";
            String password = "password";
            Class.forName ( driver );
            conn = (Connection) DriverManager.getConnection ( url, user, password );       

        } catch (Exception e) {
            
            e.printStackTrace();
        }
		return 0;
	}//end of init
	
	public int action() throws Throwable {

	try{
           lr.think_time(1);   //加入think_time,防止速度过快。。。                    
	       lr.start_transaction("test");
            if (!conn.isClosed ()) {
                //System.out.println ( "数据库连接成功" );

              
                String sqls = "SELECT COUNT(1) FROM test WHERE order_no =  '<ORDER_NO>';" ;//sql语句
                PreparedStatement ps = conn.prepareStatement ( sqls );
                ResultSet rs = ps.executeQuery ();
                lr.end_transaction("test", lr.AUTO);  //自动判断事务成功失败
		        ps.close ();            	       
	    }
            
        } catch (Exception e) {
            // TODO Auto-generated catch block
            lr.end_transaction("test", lr.FAIL);
            e.printStackTrace();
    
        }
        return 0;
    }//end of action

	public int end() throws Throwable {	     
                conn.close ();
		        return 0;
	}//end of end
}
 

主要有几个点需要注意:
(一)?useSSL=false警告

String url = "jdbc:mysql://xx.xx.x.xx:3306/test?useSSL=false";  //mysql连接地址

这里的?useSSL=false在MySQL5.7版本需要加上,原因是MySQL在高版本需要指明是否进行SSL连接,否则会报一个警告:

Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.

(二)执行时间问题
由于查询的sql语句非常快,小于0.001秒,已经达到了loadrunner响应时间的最小识别单位,所以把数据库的连接放在了外面init初始化里,否则数据库连接不能及时释放,会产生大量的TIME_WAIT端口,可以使用此命令查看是否存在TIME_WAIT端口:
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}',导致响应时间逐渐升高,影响性能。
(三)执行次数
在lr的Run-time-setting设置Iteration Count,number可多设置一些,保证一次连接可以执行多个SQL,另外还可以调节thinktime,将TPS控制在一定范围内。
在这里插入图片描述


http://www.niftyadmin.cn/n/1325977.html

相关文章

xstream 数字映射不上去_数字孪生车间的应用重点

面向车间或工厂的数字孪生&#xff0c;是数字孪生技术的一种典型应用场景。一般来说&#xff0c;认为数字孪生是对物理实体或系统的虚实映射&#xff0c;其实我想说的是&#xff0c;对于车间或者工厂来说&#xff0c;物理可见的实体或者产线&#xff0c;当然要进行虚实映射。但…

IDEA在import时飘红的解决办法

额&#xff0c;写给纯新人&#xff0c;IDEA在import时飘红&#xff0c;cannot resolve symbol&#xff0c;应该都知道是缺jar包的问题,导入就好了&#xff0c;具体步骤如下&#xff1a; File-project structure-modules&#xff0c;然后点击右侧加号&#xff0c;添加一条jar包…

身为一个测试工程师只会点点点?我劝您转行吧

我越来越担心我作为一个测试工程师的未来。 恍然间&#xff0c;发现自己在这个行业里已经摸爬滚打了五年了&#xff0c;原以为自己就凭已有的项目经验和工作经历怎么着也应该算得上是一个业内比较资历的人士了&#xff0c;但是今年在换工作的过程中却遭到了重大的挫折。详细过…

.net 5什么时候发布_爱情公寓5每周几更新 爱情公寓5什么时候播在哪里看

爱情公寓不再续集是什么意思&#xff1f;相信很多人期待爱情公寓5已经很多年了&#xff0c;没想到好不容易拍好了却还是总是不上映&#xff0c;多次延期&#xff0c;爱5什么时候能播出呢&#xff1f;爱情公寓不再续集是说这部就是完结篇了吗&#xff1f;昨天&#xff0c;由韦正…

Java绕过证书访问https的方法

代码如下&#xff1a; package httpstest;import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintStream; import java.io.PrintWriter; import java.net.URL; import java.security.SecureRandom; import java…

python神经网络算法实例-Python实现的人工神经网络算法示例【基于反向传播算法】...

本文实例讲述了Python实现的人工神经网络算法。分享给大家供大家参考&#xff0c;具体如下&#xff1a; 注意&#xff1a;本程序使用Python3编写&#xff0c;额外需要安装numpy工具包用于矩阵运算&#xff0c;未测试python2是否可以运行。 本程序实现了《机器学习》书中所述的反…

Linux批量替换字符串

Linux批量用某字符串替换文件里的另一字符串&#xff0c;可以使用sed命令&#xff0c;很简单 如 将/home/test里的aaa全部替换为bbb&#xff1a; sed -i "s/aaa/bbb/g" grep aaa -rl /home/test需要注意grep前面这个不是单引号 ’ 而是esc下面的

两个PDF比较标出差异_PPT转PDF怎么转换?这个软件轻松转PPT为PDF格式

PDF文件有着易保存及可兼容不同设备版本等优点&#xff0c;所有很多人在准备演讲之前&#xff0c;会将自己的演讲材料以PDF格式进行分享。演讲材料一般是PPT文件&#xff0c;这PPT文件该怎么转换成PDF文件呢&#xff1f;有哪些免费的方法&#xff1f;想了解这两个问题&#xff…