# multiple scenarios with multiple protocols

**URL:** <https://community.gatling.io/t/multiple-scenarios-with-multiple-protocols/1264>\
**Category:** Gatling (Open-Source)\
**Created:** [August 11, 2014, 2:56pm UTC](https://community.gatling.io/t/multiple-scenarios-with-multiple-protocols/1264 "2014-08-11T14:56:18Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![E\_Ulrich\_Kriegel](https://avatars.discourse-cdn.com/v4/letter/e/8797f3/32.png) [@E\_Ulrich\_Kriegel](https://community.gatling.io/u/E_Ulrich_Kriegel)\
**Post date:** [August 11, 2014, 2:56pm UTC](https://community.gatling.io/t/multiple-scenarios-with-multiple-protocols/1264/1 "2014-08-11T14:56:18Z")

</div>

Hi there,  
at first congratulation for publishing RC2 and [gatling.io](http://gatling.io), they are really great.

Now my question. In the documentation, all simulations have the form setup(scenario.inject(…)).protocols().

However, the system we want to test, accesses different REST-Apis with different URLs in parallel. Is there a way to model this behavior with Gatling, i.e. to “bind” a protocol to a scenario ?

Thanks in advance

Ulrich

---

<div class="post-metadata">

**Author:** ![Alex\_Bagehot](https://avatars.discourse-cdn.com/v4/letter/a/d78d45/32.png) [@Alex\_Bagehot](https://community.gatling.io/u/Alex_Bagehot)\
**Post date:** [August 11, 2014, 3:05pm UTC](https://community.gatling.io/t/multiple-scenarios-with-multiple-protocols/1264/2 "2014-08-11T15:05:15Z")

</div>

Hi, this works:  
[http://gatling.io/docs/2.0.0-RC2/http/http\_protocol.html#bootstrapping](http://gatling.io/docs/2.0.0-RC2/http/http_protocol.html#bootstrapping)

but looking at the next section we may need to update the example:  
[http://gatling.io/docs/2.0.0-RC2/http/http\_protocol.html#base-url](http://gatling.io/docs/2.0.0-RC2/http/http_protocol.html#base-url)

setUp(scn.protocol **Config** (httpConf)…)

16:01:36.436 [ERROR] i.g.a.ZincCompiler$ - x.scala:96: value protocolConfig is not a member of io.gatling.core.structure.PopulatedScenarioBuilder

16:01:36.438 [ERROR] i.g.a.ZincCompiler$ - scn.inject(i) .protocolConfig(httpConf)

16:01:36.438 [ERROR] i.g.a.ZincCompiler$ - ^

16:01:36.460 [ERROR] i.g.a.ZincCompiler$ - one error found

---

<div class="post-metadata">

**Author:** ![Pierre\_DAL-PRA](https://avatars.discourse-cdn.com/v4/letter/p/ecccb3/32.png) [@Pierre\_DAL-PRA](https://community.gatling.io/u/Pierre_DAL-PRA)\
**Post date:** [August 11, 2014, 3:10pm UTC](https://community.gatling.io/t/multiple-scenarios-with-multiple-protocols/1264/3 "2014-08-11T15:10:55Z")

</div>

Indeed.  
Just fixed it, thanks for reporting Alex !

Cheers,

Pierre

---

<div class="post-metadata">

**Author:** ![E\_Ulrich\_Kriegel](https://avatars.discourse-cdn.com/v4/letter/e/8797f3/32.png) [@E\_Ulrich\_Kriegel](https://community.gatling.io/u/E_Ulrich_Kriegel)\
**Post date:** [August 11, 2014, 3:24pm UTC](https://community.gatling.io/t/multiple-scenarios-with-multiple-protocols/1264/4 "2014-08-11T15:24:57Z")

</div>

Hanks Alex,  
but how can i get rid of the compilation error?

---

<div class="post-metadata">

**Author:** ![Pierre\_DAL-PRA](https://avatars.discourse-cdn.com/v4/letter/p/ecccb3/32.png) [@Pierre\_DAL-PRA](https://community.gatling.io/u/Pierre_DAL-PRA)\
**Post date:** [August 11, 2014, 3:27pm UTC](https://community.gatling.io/t/multiple-scenarios-with-multiple-protocols/1264/5 "2014-08-11T15:27:16Z")

</div>

Replace _protocolConfig_ by _protocols_ and it’ll compile (and works ;-))

Cheers,

Pierre

---

<div class="post-metadata">

**Author:** ![E\_Ulrich\_Kriegel](https://avatars.discourse-cdn.com/v4/letter/e/8797f3/32.png) [@E\_Ulrich\_Kriegel](https://community.gatling.io/u/E_Ulrich_Kriegel)\
**Post date:** [August 11, 2014, 3:36pm UTC](https://community.gatling.io/t/multiple-scenarios-with-multiple-protocols/1264/6 "2014-08-11T15:36:00Z")

</div>

Nope

GATLING\_HOME is set to /Users/ukriegel/tmp/gatling-charts-highcharts-2.0.0-RC2  
17:29:31.899 [WARN] i.g.c.c.GatlingConfiguration$ - Beware, property gatling.http.ahc.allowPoolingConnection is still defined but it was removed  
17:29:37.682 [ERROR] i.g.a.ZincCompiler$ - /Users/ukriegel/tmp/gatling-charts-highcharts-2.0.0-RC2/user-files/simulations/katwarn/gabriel/KatwarnStartSimulation.scala:13: value protocols is not a member of io.gatling.core.structure.ScenarioBuilder  
17:29:37.686 [ERROR] i.g.a.ZincCompiler$ - setUp(GetDeviceScenario.scn.protocols(profileApi).inject(constantUsersPersecond) during (duration seconds))  
17:29:37.687 [ERROR] i.g.a.ZincCompiler$ - ^  
17:29:39.432 [ERROR] i.g.a.ZincCompiler$ - one error found  
Compilation failed

I use Gatling-RC2, GetDeviceScenario is a Singleton defined

---

<div class="post-metadata">

**Author:** ![E\_Ulrich\_Kriegel](https://avatars.discourse-cdn.com/v4/letter/e/8797f3/32.png) [@E\_Ulrich\_Kriegel](https://community.gatling.io/u/E_Ulrich_Kriegel)\
**Post date:** [August 11, 2014, 3:39pm UTC](https://community.gatling.io/t/multiple-scenarios-with-multiple-protocols/1264/7 "2014-08-11T15:39:00Z")

</div>

Hi Pierre, unfortunately it does not compile.  
Here comes a schematic of my code

package katwarn.gabriel

import io.gatling.core.Predef.\_

import io.gatling.http.Predef.\_

import scala.concurrent.duration.\_

class TestSimulation extends Simulation {

val userPerSecond : Int = 1

val duration : Int = 1

val url = http.baseURL("…")

val scn = scenario(“test”)

.feed(ssv("…").circular)

.exec(

http("…")

.get("/foo")

.headers(HeaderMapHelper.createHeaderMap(“HEAD”, null, “${foo}”, “${baz}”, “${bar}”))

.signatureCalculator(ProfileHmacSignatureCalculator)

.check(status.saveAs(“status”), status.in(Seq(200,404))))

setUp(scn.protocols(url).inject(constantUsersPersecond) during (duration seconds))

}

I still get “value protocols is not a member of io.gatling.core.structure.ScenarioBuilder”

---

<div class="post-metadata">

**Author:** ![Pierre\_DAL-PRA](https://avatars.discourse-cdn.com/v4/letter/p/ecccb3/32.png) [@Pierre\_DAL-PRA](https://community.gatling.io/u/Pierre_DAL-PRA)\
**Post date:** [August 11, 2014, 3:39pm UTC](https://community.gatling.io/t/multiple-scenarios-with-multiple-protocols/1264/8 "2014-08-11T15:39:39Z")

</div>

Sorry, I forgot to mention that the call to _protocols_ has to be **after** you configured your injection profile.

`setUp(GetDeviceScenario.scn.inject(constantUsersPersecond).protocols(profileApi) during (duration seconds)) // compiles`

---

<div class="post-metadata">

**Author:** ![Pierre\_DAL-PRA](https://avatars.discourse-cdn.com/v4/letter/p/ecccb3/32.png) [@Pierre\_DAL-PRA](https://community.gatling.io/u/Pierre_DAL-PRA)\
**Post date:** [August 11, 2014, 3:43pm UTC](https://community.gatling.io/t/multiple-scenarios-with-multiple-protocols/1264/9 "2014-08-11T15:43:20Z")

</div>

For the record, that’s because _protocols_ is defined on _PopulatedScenarioBuilder_, which is the what you get after you called _inject(…)_ : [https://github.com/gatling/gatling/blob/master/gatling-core/src/main/scala/io/gatling/core/structure/ScenarioBuilder.scala](https://github.com/gatling/gatling/blob/master/gatling-core/src/main/scala/io/gatling/core/structure/ScenarioBuilder.scala)

Cheers,

Pierre

---

<div class="post-metadata">

**Author:** ![E\_Ulrich\_Kriegel](https://avatars.discourse-cdn.com/v4/letter/e/8797f3/32.png) [@E\_Ulrich\_Kriegel](https://community.gatling.io/u/E_Ulrich_Kriegel)\
**Post date:** [August 11, 2014, 4:00pm UTC](https://community.gatling.io/t/multiple-scenarios-with-multiple-protocols/1264/10 "2014-08-11T16:00:28Z")

</div>

Hi Pierre,  
imho you made a typo - for me the following compiles

setup(GetDeviceScenario.scn.inject(constantUsersPerSec(userPerSecond) during (duration seconds)).protocols(profileApi))

---

<div class="post-metadata">

**Author:** ![Pierre\_DAL-PRA](https://avatars.discourse-cdn.com/v4/letter/p/ecccb3/32.png) [@Pierre\_DAL-PRA](https://community.gatling.io/u/Pierre_DAL-PRA)\
**Post date:** [August 11, 2014, 4:04pm UTC](https://community.gatling.io/t/multiple-scenarios-with-multiple-protocols/1264/11 "2014-08-11T16:04:31Z")

</div>

Woops, my bad.  
Indeed, in the middle of your injection profile definition, this wouldn’t work well…

Glad you got it working though 🙂
