######################### # Gatling Configuration # ######################### # This file contains all the settings configurable for Gatling with their default values gatling { core { #outputDirectoryBaseName = "" # The prefix for each simulation result folder (then suffixed by the report generation timestamp) #runDescription = "" # The description for this simulation run, displayed in each report #encoding = "utf-8" # Encoding to use throughout Gatling for file and string manipulation #simulationClass = "" # The FQCN of the simulation to run (when used in conjunction with noReports, the simulation for which assertions will be validated) #disableCompiler = false # When set to true, skip compiling and load an already compiled simulation (used in conjunction with simulationClass) #mute = false # When set to true, don't ask for simulation name nor run description (currently only used by Gatling SBT plugin) extract { regex { #cacheMaxCapacity = 200 # Cache size for the compiled regexes, set to 0 to disable caching } xpath { #cacheMaxCapacity = 200 # Cache size for the compiled XPath queries, set to 0 to disable caching } jsonPath { #cacheMaxCapacity = 200 # Cache size for the compiled jsonPath queries, set to 0 to disable caching #preferJackson = false # When set to true, prefer Jackson over Boon for JSON-related operations jackson { #allowComments = false # Allow comments in JSON files #allowUnquotedFieldNames = false # Allow unquoted JSON fields names #allowSingleQuotes = false # Allow single quoted JSON field names } } css { #cacheMaxCapacity = 200 # Cache size for the compiled CSS selectors queries, set to 0 to disable caching } } timeOut { #simulation = 8640000 # Absolute timeout, in seconds, of a simulation } directory { #data = user-files/data # Folder where user's data (e.g. files used by Feeders) is located #requestBodies = user-files/request-bodies # Folder where request bodies are located #simulations = user-files/simulations # Folder where the bundle's simulations are located #reportsOnly = "" # If set, name of report folder to look for in order to generate its report #binaries = "" # If set, name of the folder where compiles classes are located #results = results # Name of the folder where all reports folder are located } zinc { #jvmArgs = "-Xss10M" # JVM args passed to Zinc (in charge of compiling Gatling Simulations) } } charting { #noReports = false # When set to true, don't generate HTML reports #maxPlotPerSeries = 1000 # Number of points per graph in Gatling reports #accuracy = 10 # Accuracy, in milliseconds, of the report's stats indicators { #lowerBound = 800 # Lower bound for the requests' response time to track in the reports and the console summary #higherBound = 1200 # Higher bound for the requests' response time to track in the reports and the console summary #percentile1 = 95 # Value for the first percentile to track in the reports, the console summary and GraphiteDataWriter #percentile2 = 99 # Value for the second percentile to track in the reports, the console summary and GraphiteDataWriter } } http { #elFileBodiesCacheMaxCapacity = 200 # Cache size for request body EL templates, set to 0 to disable #rawFileBodiesCacheMaxCapacity = 200 # Cache size for request body Raw templates, set to 0 to disable #fetchedCssCacheMaxCapacity = 200 # Cache size for CSS parsed content, set to 0 to disable #fetchedHtmlCacheMaxCapacity = 200 # Cache size for HTML parsed content, set to 0 to disable #redirectPerUserCacheMaxCapacity = 200 # Per virtual user cache size for permanent redirects, set to 0 to disable #expirePerUserCacheMaxCapacity = 200 # Per virtual user cache size for permanent 'Expire' headers, set to 0 to disable #lastModifiedPerUserCacheMaxCapacity = 200 # Per virtual user cache size for permanent 'Last-Modified' headers, set to 0 to disable #etagPerUserCacheMaxCapacity = 200 # Per virtual user cache size for permanent ETag headers, set to 0 to disable #warmUpUrl = "http://goo.gl/pq1Xwu" # The URL to use to warm-up the HTTP stack (blank means disabled) ssl { trustStore { #type = "" # Type of SSLContext's TrustManagers store #file = "" # Location of SSLContext's TrustManagers store #password = "" # Password for SSLContext's TrustManagers store #algorithm = "" # Algorithm used by SSLContext's TrustManagers store } keyStore { #type = "" # Type of SSLContext's KeyManagers store #file = "" # Location of SSLContext's KeyManagers store #password = "" # Password for SSLContext's KeyManagers store #algorithm = "" # Algorithm used SSLContext's KeyManagers store } } ahc { #allowPoolingConnections = true # Allow pooling HTTP connections (keep-alive header automatically added) #allowPoolingSslConnections = true # Allow pooling HTTPS connections (keep-alive header automatically added) #compressionEnabled = true # Support gzipped responses #connectionTimeout = 60000 # Timeout when establishing a connection #pooledConnectionIdleTimeout = 60000 # Timeout when a connection stays unused in the pool #readTimeout = 60000 # Timeout when a used connection stays idle #connectionTTL = -1 # Max duration a connection can stay open (-1 means no limit) #ioThreadMultiplier = 2 # Number of Netty worker threads per core #maxConnectionsPerHost = -1 # Max number of connections per host (-1 means no limit) #maxConnections = -1 # Max number of connections (-1 means no limit) #maxRetry = 4 # Number of times that a request should be tried again #requestTimeout = 60000 # Timeout of the requests #useProxyProperties = false # When set to true, supports standard Proxy System properties #webSocketTimeout = 60000 # Timeout when a used websocket connection stays idle #useRelativeURIsWithConnectProxies = true # When set to true, use relative URIs when talking with an SSL proxy or a WebSocket proxy #acceptAnyCertificate = true # When set to true, doesn't validate SSL certificates #httpClientCodecMaxInitialLineLength = 4096 # Maximum length of the initial line of the response (e.g. "HTTP/1.0 200 OK") #httpClientCodecMaxHeaderSize = 8192 # Maximum size, in bytes, of each request's headers #httpClientCodecMaxChunkSize = 8192 # Maximum length of the content or each chunk } } data { writers = "console, file, graphite" # The lists of DataWriters to which Gatling write simulation data (currently supported : "console", "file", "graphite", "jdbc") reader = file # The DataReader used by the charting engine for reading simulation results console { #light = false # When set to true, displays a light version without detailed request stats } file { #bufferSize = 8192 # FileDataWriter's internal data buffer size, in bytes } jdbc { db { #url = "jdbc:mysql://localhost:3306/temp" # The JDBC URL used by the JDBC DataWriter #username = "root" # The database user used by the JDBC DataWriter #password = "123123q" # The password for the specified user } #bufferSize = 20 # The size for each batch of SQL inserts to send to the database create { #createRunRecordTable = "CREATE TABLE IF NOT EXISTS `RunRecords` ( `id` INT NOT NULL AUTO_INCREMENT , `runDate` DATETIME NULL , `simulationId` VARCHAR(45) NULL , `runDescription` VARCHAR(45) NULL , PRIMARY KEY (`id`) )" #createRequestRecordTable = "CREATE TABLE IF NOT EXISTS `RequestRecords` (`id` int(11) NOT NULL AUTO_INCREMENT, `runId` int DEFAULT NULL, `scenario` varchar(45) DEFAULT NULL, `userId` VARCHAR(20) NULL, `name` varchar(50) DEFAULT NULL, `requestStartDate` bigint DEFAULT NULL, `requestEndDate` bigint DEFAULT NULL, `responseStartDate` bigint DEFAULT NULL, `responseEndDate` bigint DEFAULT NULL, `status` varchar(2) DEFAULT NULL, `message` varchar(4500) DEFAULT NULL, `responseTime` bigint DEFAULT NULL, PRIMARY KEY (`id`) )" #createScenarioRecordTable = "CREATE TABLE IF NOT EXISTS `ScenarioRecords` (`id` int(11) NOT NULL AUTO_INCREMENT, `runId` int DEFAULT NULL, `scenarioName` varchar(45) DEFAULT NULL, `userId` VARCHAR(20) NULL, `event` varchar(50) DEFAULT NULL, `startDate` bigint DEFAULT NULL, `endDate` bigint DEFAULT NULL, PRIMARY KEY (`id`) )" #createGroupRecordTable = "CREATE TABLE IF NOT EXISTS `GroupRecords` (`id` int(11) NOT NULL AUTO_INCREMENT, `runId` int DEFAULT NULL, `scenarioName` varchar(45) DEFAULT NULL, `userId` VARCHAR(20) NULL, `entryDate` bigint DEFAULT NULL, `exitDate` bigint DEFAULT NULL, `status` varchar(2) DEFAULT NULL, PRIMARY KEY (`id`) )" } insert { #insertRunRecord = "INSERT INTO RunRecords (runDate, simulationId, runDescription) VALUES (?,?,?)" #insertRequestRecord = "INSERT INTO RequestRecords (runId, scenario, userId, name, requestStartDate, requestEndDate, responseStartDate, responseEndDate, status, message, responseTime) VALUES (?,?,?,?,?,?,?,?,?,?,?)" #insertScenarioRecord = "INSERT INTO ScenarioRecords (runId, scenarioName, userId, event, startDate, endDate) VALUES (?,?,?,?,?,?)" #insertGroupRecord = "INSERT INTO GroupRecords (runId, scenarioName, userId, entryDate, exitDate, status) VALUES (?,?,?,?,?,?)" } } graphite { #light = false # only send the all* stats host = "10.35.34.116" # The host where the Carbon server is located port = 2003 # The port to which the Carbon server listens to #protocol = "tcp" # The protocol used to send data to Carbon (currently supported : "tcp", "udp") #rootPathPrefix = "gatling" # The common prefix of all metrics sent to Graphite #bufferSize = 8192 # GraphiteDataWriter's internal data buffer size, in bytes } } }