Di vê tutoriya Gatling de, em nîşan didin ka t daxwazên posteyê ku daneyên bêhemdî di StringBody()
de hene dişînin.
Di piraniya senaryoyên ceribandina performansê de, hûn dixwazin daneya ku wekî daxwaza posteyê tê şandin, ji bo simulkirina danişînên cûda rast bikin. Ji bo vê, em dikarin feederên ku daneyên pelên CSV an nivîsa xwer dixwînin bikar bînin.
Heke we hîn Gatling li ser makîna xwe saz nekiribe, hûn dikarin nivîsa ku şirove dike bixwînin çawa Gatling wekî projeyek Maven saz dikin.
Ya yekem, ji me re pêdivî ye ku rêbazek ku rêzeyek bêhemdî li Scala çêdike:
object randomStringGenerator { def randomString(length: Int) = scala.util.Random.alphanumeric.filter(_.isLetter).take(length).mkString
}
Di vê mînakê de, em daxwaznameyek posta XML dişînin. Vê parametreyek log_session_id heye ku pêdivî ye ku di her daxwazê de cûda be:
val req = '
' + '
' +
'3
' +
'MY_APP
' +
'0000000000
' +
'b02edd23,ClientIP=10.211.55.3
' +
'ACTIVATION
' + ''
Em pêdivî ye ku awayek heye ku em daxwaznameya XML-ya jorîn wekî şandinek li StringBody()
bişînin li Gatling, lê di her daxwazê de, log_session_id
nirx divê rêzek bêhemdî be.
Ji bo vê, em hewce ne ku feeder bikar bînin.
var randomSession = Iterator.continually(Map('randsession' -> ( req.replace('0000000000', randomStringGenerator.randomString(10))))) val scn = scenario('Activate')
.feed(randomSession)
.exec(http('activate request')
.post('/login/activate')
.body(StringBody('''${randsession}'''))
Nivîsara tevahî ya ku ji bo şandina daxwaza posta bêhemdî li StringBody()
li Gatling:
import io.gatling.core.Predef._ import io.gatling.http.Predef._ import io.gatling.http.config.HttpProtocolBuilder.toHttpProtocol import io.gatling.http.request.builder.HttpRequestBuilder.toActionBuilder class Activate extends Simulation { object randomStringGenerator {
def randomString(length: Int) = scala.util.Random.alphanumeric.filter(_.isLetter).take(length).mkString } val req = '
' +
'
' +
'3
' +
'MY_APP
' +
'0000000000
' +
'b02edd23,ClientIP=10.211.55.3
' +
'ACTIVATION
' +
'' var randomSession = Iterator.continually(Map('randsession' -> ( req.replace('0000000000', randomStringGenerator.randomString(10))))) val httpConf = http
.baseURL('http://localhost:5000')
.acceptHeader('text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8')
.userAgentHeader('Mozilla/4.0(compatible;IE;GACv10. 0. 0. 1)') val scn = scenario('Activate')
.feed(randomSession)
.exec(http('activate request')
.post('/login/activate')
.body(StringBody('''${randsession}'''))
.check(status.is(200)))
.pause(5) setUp(
scn.inject(atOnceUsers(5)) ).protocols(httpConf) }