Re: Database 성능 테스트 시 TPS가 증가하지 않는 문제 문의 드립니다.

Posted by gisoo.gwon on
URL: http://ngrinder.373.s1.nabble.com/Database-TPS-tp1584p1595.html

connection = getConnection()
statement = connection.createStatement()
test1.wrap(statement)

을 def __call__(self) 안으로 이동시켜서 해보시겠어요?

----수정된 스크립트----------------------------------------------------------------------
# -*- coding:utf-8 -*-
# Database test.
#
from java.sql import DriverManager
from java.sql import CallableStatement
from com.mysql.jdbc import Driver
from net.grinder.script.Grinder import grinder
from net.grinder.script import Test
from java.util import Random
from java.lang import System

log = grinder.logger.info
err = grinder.logger.error

# Parameters
DB_connect = "jdbc:mysql://***보안상가림****:****/**보안상가림***"
DB_user = "***보안상가림****"
DB_password = "***보안상가림****"

test1 = Test(1, "GaleraCluster")

# Load the JDBC driver.
DriverManager.registerDriver(Driver())

def getConnection():
        return DriverManager.getConnection(DB_connect, DB_user, DB_password)

def ensureClosed(object):
    try: object.close()
    except: pass

class TestRunner:
        def __init__(self) :
                grinder.statistics.delayReports=True
                pass
               
        def __call__(self):
                connection = getConnection()
                statement = connection.createStatement()

                test1.wrap(statement)
               
                result = statement.execute("SELECT **보안**** FROM **보안*** WHERE ***보안** = '0000000001'")
                result = statement.executeQuery("call ProcudreName('1000000003','1000000003', 'test1000000003')")
                result.next()
                self.checkResponse(result, "***보안********")
           
                ensureClosed(statement)
                ensureClosed(connection )
               
        def checkResponse(self, result, url) :
                log("%s : %s" % (url, result.getString(1)))
                #grinder.statistics.forLastTest.success = 1
               
                #grinder.statistics.forLastTest.success = 0
               
                self.sleep(1000)
        def sleep(self, millisecond):
                """ sleep during the given millisecond. """
                grinder.sleep(millisecond)