Skip to content

Commit

Permalink
Don't lose the information that the user defined an explicit simulati…
Browse files Browse the repository at this point in the history
…on id
  • Loading branch information
slandelle committed Sep 21, 2015
1 parent 219b5c5 commit 813deaa
Show file tree
Hide file tree
Showing 6 changed files with 17 additions and 16 deletions.
2 changes: 1 addition & 1 deletion gatling-app/src/main/scala/io/gatling/app/Gatling.scala
Expand Up @@ -93,7 +93,7 @@ private[app] class Gatling(selectedSimulationClass: SelectedSimulationClass)(imp

simulationParams.beforeSteps.foreach(_.apply())

val runMessage = RunMessage(selection.simulationClass.getName, selection.simulationId, nowMillis, selection.description)
val runMessage = RunMessage(selection.simulationClass.getName, selection.userDefinedSimulationId, selection.defaultSimulationId, nowMillis, selection.description)

val coreComponents = coreComponentsFactory.coreComponents(system, simulationParams, runMessage)

Expand Down
14 changes: 7 additions & 7 deletions gatling-app/src/main/scala/io/gatling/app/Selection.scala
Expand Up @@ -25,7 +25,7 @@ import io.gatling.commons.util.StringHelper._
import io.gatling.core.config.{ GatlingFiles, GatlingConfiguration }
import io.gatling.core.scenario.Simulation

case class Selection(simulationClass: Class[Simulation], simulationId: String, description: String)
case class Selection(simulationClass: Class[Simulation], userDefinedSimulationId: Option[String], defaultSimulationId: String, description: String)

object Selection {

Expand All @@ -44,13 +44,13 @@ object Selection {

// -- Ask for simulation ID and run description if required -- //
val muteModeActive = configuration.core.muteMode || configuration.core.simulationClass.isDefined
val defaultBaseName = defaultOutputDirectoryBaseName(simulation)
val defaultSimulationId = defaultOutputDirectoryBaseName(simulation)
val optionalDescription = configuration.core.runDescription

val simulationId = if (muteModeActive) defaultBaseName else askSimulationId(simulation, defaultBaseName)
val simulationId = if (muteModeActive) None else askSimulationId(simulation, defaultSimulationId)
val runDescription = optionalDescription.getOrElse(if (muteModeActive) "" else askRunDescription())

Selection(simulation, simulationId, runDescription)
Selection(simulation, simulationId, defaultSimulationId, runDescription)
}

private def loadSimulations: SimulationClasses = {
Expand Down Expand Up @@ -120,10 +120,10 @@ object Selection {
simulationClasses(readSimulationNumber)
}

private def askSimulationId(clazz: Class[Simulation], defaultBaseName: String): String = {
private def askSimulationId(clazz: Class[Simulation], defaultSimulationId: String): Option[String] = {
@tailrec
def loop(): String = {
println(s"Select simulation id (default is '$defaultBaseName'). Accepted characters are a-z, A-Z, 0-9, - and _")
println(s"Select simulation id (default is '$defaultSimulationId'). Accepted characters are a-z, A-Z, 0-9, - and _")
val input = StdIn.readLine().trim
if (input.matches("[\\w-_]*")) input
else {
Expand All @@ -133,7 +133,7 @@ object Selection {
}

val input = loop()
if (input.nonEmpty) input else defaultBaseName
if (input.nonEmpty) Some(input) else None
}

private def askRunDescription(): String = {
Expand Down
Expand Up @@ -25,6 +25,7 @@ import io.gatling.charts.stats.buffers.{ CountsBuffer, GeneralStatsBuffer, Perce
import io.gatling.commons.stats._
import io.gatling.commons.stats.assertion.Assertion
import io.gatling.commons.util.PathHelper._
import io.gatling.commons.util.StringHelper._
import io.gatling.core.config.GatlingConfiguration
import io.gatling.core.config.GatlingFiles.simulationLogDirectory
import io.gatling.core.stats._
Expand Down Expand Up @@ -98,7 +99,7 @@ class FileDataReader(runUuid: String)(implicit configuration: GatlingConfigurati
updateRunLimits(array(4).toLong, array(5).toLong)

case RawRunRecord(array) =>
runMessages += RunMessage(array(1), array(2), array(3).toLong, array(4).trim)
runMessages += RunMessage(array(1), array(2).trimToOption, array(3), array(4).toLong, array(5).trim)

case RawAssertionRecord(array) =>
val assertion: Assertion = {
Expand Down
Expand Up @@ -116,7 +116,6 @@ abstract class Simulation {
}

SimulationParams(
getClass.getName,
_populationBuilders,
_globalProtocols,
_globalPauseType,
Expand All @@ -130,7 +129,6 @@ abstract class Simulation {
}

case class SimulationParams(
name: String,
populationBuilders: List[PopulationBuilder],
globalProtocols: Protocols,
globalPauseType: PauseType,
Expand Down
Expand Up @@ -24,12 +24,14 @@ import io.gatling.core.stats.message.{ ResponseTimings, MessageEvent }
case class ShortScenarioDescription(name: String, userCount: Int)

case class RunMessage(
simulationClassName: String,
simulationId: String,
start: Long,
runDescription: String
simulationClassName: String,
userDefinedSimulationId: Option[String],
defaultSimulationId: String,
start: Long,
runDescription: String
) {

val simulationId = userDefinedSimulationId.getOrElse(defaultSimulationId)
val runId = simulationId + "-" + start
}

Expand Down
Expand Up @@ -58,7 +58,7 @@ object FileDataWriter {
def serialize(runMessage: RunMessage): Fastring = {
import runMessage._
val description = if (runDescription.isEmpty) " " else runDescription
fast"${RunRecordHeader.value}$Separator$simulationClassName$Separator$simulationId$Separator$start$Separator$description${Separator}2.0$Eol"
fast"${RunRecordHeader.value}$Separator$simulationClassName$Separator${userDefinedSimulationId.getOrElse("")}$Separator${defaultSimulationId}$Separator$start$Separator$description${Separator}2.0$Eol"
}
}

Expand Down

0 comments on commit 813deaa

Please sign in to comment.