Гетлинг - Како да испратите барање за објава во StringBody () со случајни податоци

Во ова упатство за Гетлинг, ние покажуваме како да испраќате барања за објава што содржат случајни податоци во StringBody() |

Во повеќето сценарија за тестирање на перформанси, сакате да ги рандомизирате податоците што се испраќаат како барање за пошта за да симулирате различни сесии. За ова, можеме да користиме фидери кои читаат податоци од CSV-датотеки или обичен текст.

Ако сè уште не сте го поставиле Гетлинг на вашата машина, можете да го прочитате објавувањето што го објаснува како да го поставите Гетлинг како проект на Мавен.


Генератор на случајни жици Скала

Прво, потребен ни е метод што генерира случајна низа во Скала:

object randomStringGenerator { def randomString(length: Int) = scala.util.Random.alphanumeric.filter(_.isLetter).take(length).mkString
}

XML барање како тело за објава

Во овој пример, испраќаме барање за објавување XML. Ова содржи параметар log_session_id кој треба да биде различен во секое барање:


val req = ' ' + ' ' +
'3 ' +
'MY_APP ' +
'0000000000 ' +
'b02edd23,ClientIP=10.211.55.3 ' +
'ACTIVATION ' + ''

Треба да имаме начин да го испратиме горното XML барање како објава во StringBody() во Гетлинг, но во секое барање, log_session_id вредноста треба да биде случајна низа.

За ова, треба да користиме колибри.

Внесувач во StringBody ()

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}'''))

Целосната скрипта за испраќање на барање за случајно објавување во StringBody() во Гетлинг:

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) }