blob: 12cb1d152af0a2ca8455690b71aa09bc16eb0879 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import io.gatling.app.Gatling
import io.gatling.core.config.GatlingPropertiesBuilder
import java.nio.file.Path
import java.nio.file.Paths
import java.util.Objects.requireNonNull
/**
* Start this object to run example simulations included into this project.
*
* After start choose a simulation by number entering it from keyboard.
*/
object GatlingRunner extends App {
val props = new GatlingPropertiesBuilder()
.resourcesDirectory(IDEPathHelper.mavenResourcesDirectory.toString)
.resultsDirectory(IDEPathHelper.resultsDirectory.toString)
.binariesDirectory(IDEPathHelper.mavenBinariesDirectory.toString)
Gatling.fromMap(props.build)
}
object IDEPathHelper {
private val projectRootDir = Paths.get(requireNonNull(getClass.getResource("gatling.conf"), "Couldn't locate gatling.conf").toURI).getParent.getParent.getParent
private val mavenTargetDirectory = projectRootDir.resolve("target")
private val mavenSrcTestDirectory = projectRootDir.resolve("src").resolve("test")
val mavenSourcesDirectory: Path = mavenSrcTestDirectory.resolve("scala")
val mavenResourcesDirectory: Path = mavenSrcTestDirectory.resolve("resources")
val mavenBinariesDirectory: Path = mavenTargetDirectory.resolve("test-classes")
val resultsDirectory: Path = mavenTargetDirectory.resolve("gatling")
val recorderConfigFile: Path = mavenResourcesDirectory.resolve("recorder.conf")
}