groovy TestRunnerInsertMysqlSingle

package com.iteye.lindows.mysql

import junit.framework.Assert
import net.grinder.script.GTest
import net.grinder.scriptengine.groovy.junit.GrinderRunner
import net.grinder.scriptengine.groovy.junit.annotation.AfterThread
import net.grinder.scriptengine.groovy.junit.annotation.BeforeProcess
import net.grinder.scriptengine.groovy.junit.annotation.BeforeThread
import org.junit.Test
import org.junit.runner.RunWith

import java.sql.Connection
import java.sql.DriverManager
import java.sql.ResultSet
import java.sql.Statement

import static net.grinder.script.Grinder.grinder
import static org.junit.Assert.assertTrue

/**
 * java代码示例,连接数据库进行查询
 *
 * @author Lindows
 */
@RunWith(GrinderRunner)
class TestRunnerInsertMysqlSingle {
	public static GTest insertTable
	public static Connection conn;
	public static Statement stmt; //创建Statement对象

	@BeforeProcess
	public static void beforeProcess() {
		insertTable = new GTest(1, "插入表数据")
		try {
			Class.forName("com.mysql.jdbc.Driver");
			grinder.logger.info("成功加载MySQL驱动!");
			String url="jdbc:mysql://10.37.136.162:3306/performance_test";    //JDBC的URL
			String username = "performance_user";
			String passwd = "performance!QAZ";
			conn = DriverManager.getConnection(url, username, passwd);
			stmt = conn.createStatement(); //创建Statement对象
			grinder.logger.info("成功创建stmt!");
		} catch (Exception e) {
			e.printStackTrace()
		}
	}

	@BeforeThread
	public void beforeThread() {
		insertTable.record(this, "insertTable")
		grinder.statistics.delayReports=true
	}

	@Test
	public void insertTable() {
		try{
			grinder.logger.info("成功连接到数据库!");
			StringBuffer sql = new StringBuffer()
			sql.append("insert into tab_002(column_int,column_double,column_decimal,column_varchar_name,column_varchar_address,column_text,column_timestamp_create_time,column_timestamp_update_time) values (1000,300.25,600.98,'jack','")
					.append("China BeiJing")
					.append(new Random().nextInt(99999999))
					.append("', 'work in SuNing for 3 years','2017-06-12 18:00:00','2017-06-13 15:00:00')")
			grinder.logger.info(sql.toString())
			Thread.sleep(new Random().nextInt(10)) //这里可以设置思考时间10ms
			assertTrue(!stmt.execute(sql.toString()))//执行sql insert,!stmt.execute(sql)该写法只于insert true确认
			//assertTrue(stmt.execute(sql));//执行sql query , !stmt.execute(sql)该写法只适用于query true确认
		}catch(Exception e) {
			e.printStackTrace();
		}
	}

	@AfterThread
	public void afterThread() {
		stmt.close();
		conn.close();
	}
}

原文地址:https://www.cnblogs.com/lindows/p/14390202.html