Kini ọna ti o dara julọ lati ṣeto ati ṣeto iṣẹ akanṣe Gatling kan fun idanwo iṣe?
Nigbati o ba ṣe agbekalẹ ilana kan, o yẹ ki a ronu nipa iduroṣinṣin ati ifaagun, nitorinaa bawo ni a ṣe ṣeto awọn paati jẹ pataki pupọ.
Ninu ẹkọ yii, a yoo fihan bi a ṣe le ṣẹda ilana idanwo iṣẹ lati ori lilo Gatling ati maven.
Awọn ibeere-tẹlẹ:
Fun ẹkọ yii o nilo lati fi sori ẹrọ atẹle:
Ni akọkọ, a ṣẹda iṣẹ ipilẹ nipasẹ ṣiṣe maven Gatling archetype:
mvn archetype:generate -DarchetypeGroupId=io.gatling.highcharts -DarchetypeArtifactId=gatling-highcharts-maven-archetype
Nigbati o ba ṣe aṣẹ ti o wa loke, yoo bẹrẹ gbigba awọn igbẹkẹle lati ayelujara.
Nigbati o ba ṣetan, pese awọn iye fun 'groupId', 'artifactId', ati 'version'.
Eto mi dabi awọn atẹle:
Nigbati o ṣii iṣẹ naa, iwọ yoo ṣe akiyesi pe diẹ ninu awọn faili aiyipada ati awọn folda wa.
Labẹ awọn orisun, a ni
awọn ara package yii ni awọn isanwo ibeere. Fun apẹẹrẹ, o le ni awọn awoṣe ibeere fun ọpọlọpọ awọn ibeere.
data package yii ni data ti o nilo lati jẹun si awọn idanwo rẹ, bii CSVs.
Ni afikun si awọn folda meji ti o wa loke, awọn faili Gatling.conf, logback.xml ati awọn faili recorder.conf wa. A kii yoo jiroro iwọnyi ninu ẹkọ yii.
Gatling maven archetype tun ṣẹda ohun ipilẹ Scala mẹta, ṣugbọn a kii yoo lo wọn, nitorinaa lọ siwaju ki o paarẹ awọn nkan naa.
Ni afikun, a yoo ṣẹda awọn idii mẹrin, atunto , awọn ibeere , awọn oju iṣẹlẹ , ati iṣeṣiro :
Ninu package atunto, ṣẹda nkan Scala ti a pe ni Config. Eyi yoo mu ọpọlọpọ awọn atunto fun iṣẹ wa bii Awọn URL ohun elo, awọn olumulo aiyipada, ati bẹbẹ lọ…
package io.devqa.config object Config {
val app_url = 'http://example-app.com'
val users = Integer.getInteger('users', 10).toInt
val rampUp = Integer.getInteger('rampup', 1).toInt
val throughput = Integer.getInteger('throughput', 100).toInt }
Apakan awọn ibeere ni awọn ibeere iṣẹ oriṣiriṣi. Fun apẹẹrẹ, a le ni ibeere ti o gba ami aṣẹ aṣẹ. Ibeere miiran le lo àmi lati ibeere ti tẹlẹ lati ṣẹda olumulo kan ati bẹbẹ lọ.
Iwọnyi jẹ awọn ibeere kọọkan ati ti ya sọtọ ti a firanṣẹ si awọn opin opin oriṣiriṣi.
GbaTokenRequest
package io.devqa.requests import io.gatling.core.Predef._ import io.gatling.http.Predef._ import io.devqa.config.Config.app_url object GetTokenRequest {
val get_token = http('RequestName').get(app_url + '/token')
.check(status is 200)
.check(jsonPath('$..token').saveAs('token')) }
ṢẹdaUserRequest
package io.devqa.requests import io.devqa.config.Config.app_url import io.gatling.core.Predef._ import io.gatling.http.Predef._ object CreateUserRequest {
val sentHeaders = Map('Authorization' -> 'bearer ${token}')
val create_user = exec(http('Create User Request')
.post(app_url + '/users')
.headers(sentHeaders)
.formParam('name', 'John')
.formParam('password', 'John5P4ss')
.check(status is 201)
.check(regex('Created').exists)) }
Apakan iṣẹlẹ naa mu awọn oju iṣẹlẹ iṣowo. Fun apẹẹrẹ, lati ṣẹda olumulo kan, a ni akọkọ lati ni ami auth ati lẹhinna fi ami naa sii bi akọsori pẹlu awọn ipilẹ fọọmu lati ṣẹda olumulo kan. ie a lo idahun ti ibere akọkọ lati jẹun si ibeere keji. Eyi “ẹwọn awọn ibeere” jẹ ohun wọpọ ni idanwo API.
ṢẹdaUserScenario
package io.devqa.scenarios import io.devqa.requests.{CreateUserRequest, GetTokenRequest} import io.gatling.core.Predef.scenario object CreateUserScenario {
val createUserScenario = scenario('Create User Scenario')
.exec(GetTokenRequest.get_token)
.exec(CreateUserRequest.create_user) }
Lakotan, a ni Awọn iṣeṣiro ninu apopọ awọn iṣeṣiro. O le ronu ti awọn iṣeṣiro bi awọn profaili fifuye oriṣiriṣi. Fun apẹẹrẹ, a le ni iṣeṣiro fifuye deede tabi iṣeṣiro iwasoke.
Awọn iṣeṣiro nilo lati jẹ awọn kilasi Scala ati pe wọn gbọdọ fa kilasi Iṣiro Gatling.
package io.devqa.simulations import io.devqa.scenarios.CreateUserScenario import io.gatling.core.Predef.Simulation import io.gatling.core.Predef._ import io.devqa.config.Config._ class CreateUserSimulation extends Simulation {
private val createUserExec = CreateUserScenario.createUserScenario
.inject(atOnceUsers(users))
setUp(createUserExec) }
Ise agbese rẹ yẹ ki o dabi awọn atẹle:
A tun nilo lati yipada faili pom.xml wa lati ni anfani lati kọja awọn ipele, gẹgẹbi awọn olumulo ati ṣiṣe nipasẹ awọn idanwo iṣẹ wa ni asiko asiko.
Faili pom.xml yẹ ki o dabi:
4.0.0
testing-excellence
gatling-framework
1.0-SNAPSHOT
1.8
1.8
UTF-8
2.3.0
2.2.4
1.3.2
CreateUserSimulation
io.gatling.highcharts
gatling-charts-highcharts
${gatling.version}
test
com.typesafe
config
${typesafe-config.version}
io.gatling
gatling-maven-plugin
${gatling-plugin.version}
io.devqa.simulations.${simulation}
-Denv=${env}
-Dusers=${users}
-Drampup=${rampup}
-Dduration=${duration}
-Dthroughput=${throughput}
true
Lakotan, lati ṣiṣẹ kilasi kikopa, a nṣiṣẹ aṣẹ wọnyi
mvn clean gatling:execute -Dusers=1
Aṣẹ ti o wa loke yoo ṣiṣe ṢẹdaUUSerSimulation pẹlu olumulo 1.