Using javafaker or other class to generate values

I’m attempting to use java Faker () to generate some test data (rather than storing big CSV files). As it stands now, I get the same value for all test iterations (I have some .repeat steps in my scenario).

Example:

import com.github.javafaker.Faker

class TestSimulation extends Simulation {

val faker = new Faker()

faker.name().fullName() // passed into some request body

It seems like this should be a ThreadLocal (or DynamicValue), but I’m not Scala savvy enough to get it working.

Thanks

Try using an anonymous function, something like …

exec(_.set(“fullName”, “${faker.name.fullName}”))

.formParam(“fullName”, “${fullName}”)

Aidy

So I came up with an idea to fake a feeder/iterator:

`
class FakeStreetAddress extends Feeder[String] {
override def next(): Map[String, String] = {
Map(“street_address” → faker.address().zipCode)
}

override def hasNext: Boolean = true
}

`

Then I can set .feed(new FakeStreetAddress).

This works, but is really quite verbose to create a feed for each field I’d like to fake.

I tried your suggestion (frankly not totally understanding what “_.set()” does), and got this error:

missing parameter type for expanded function ((x$1) => x$1.set("full_name", "${faker.name().fullName()}"))

Oops typo, make that:

`
class FakeStreetAddress extends Feeder[String] {
override def next(): Map[String, String] = {
Map(“street_address” → faker.address().streetAddress(true))
}

override def hasNext: Boolean = true
}
`

Hi,

Have a look at the documentation, you’ll see that we provide an example for EXACTLY what you’re trying to do : http://gatling.io/docs/2.1.7/session/feeder.html#feeders .

Cheers,

Pierre

Duh RTFM missed that first paragraph in the feeders section.

For posterity:

val fakeData = Iterator.continually( Map("full_name" -> faker.name.fullName, "street_address" -> faker.address.streetAddress(true), "zip_code" -> faker.address.zipCode, "state" -> faker.address.stateAbbr, "city" -> String.format("%s%s", faker.address.cityPrefix, faker.address.citySuffix) ) ) <snip> .feed(fakeData) <snip> .body( StringBody( """{ "street_address": "${street_address}", }""" ) )

Thanks!