Ninu ẹkọ Gatling yii, a fihan bi t firanṣẹ awọn ibeere ifiweranṣẹ eyiti o ni data laileto ninu StringBody()
.
Ninu ọpọlọpọ awọn oju iṣẹlẹ idanwo iṣẹ, o fẹ sọtọ data ti a firanṣẹ bi ibeere ifiweranṣẹ lati ṣedasilẹ awọn akoko oriṣiriṣi. Fun eyi, a le lo awọn ifunni ti o ka data lati awọn faili CSV tabi ọrọ lasan.
Ti o ko ba ṣeto Gatling lori ẹrọ rẹ sibẹsibẹ, o le ka ifiweranṣẹ ti o ṣalaye bii o ṣe le ṣeto Gatling bi iṣẹ akanṣe Maven.
Ni akọkọ, a nilo ọna kan eyiti o ṣe agbejade okun laileto ni Scala:
object randomStringGenerator { def randomString(length: Int) = scala.util.Random.alphanumeric.filter(_.isLetter).take(length).mkString
}
Ninu apẹẹrẹ yii, a n firanṣẹ ifiweranṣẹ ifiweranṣẹ XML kan. Eyi ni paramita log_session_id eyiti o nilo lati yatọ si ni ibeere kọọkan:
val req = '
' + '
' +
'3
' +
'MY_APP
' +
'0000000000
' +
'b02edd23,ClientIP=10.211.55.3
' +
'ACTIVATION
' + ''
A nilo lati ni ọna ti fifiranṣẹ ibeere XML ti o wa loke bi ifiweranṣẹ ninu StringBody()
ni Gatling, ṣugbọn ninu ibeere kọọkan, awọn log_session_id
iye yẹ ki o jẹ okun laileto.
Fun eyi, a nilo lati lo awọn ifunni.
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}'''))
Iwe afọwọkọ kikun lati firanṣẹ ibeere ifiweranṣẹ laileto ni StringBody()
ni 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) }