Tsarin Gwajin Ayyuka tare da Gatling da Maven

Wace hanya ce mafi kyau don tsarawa da tsara aikin Gatling don gwajin gwaji?

Lokacin zayyana tsari, ya kamata muyi tunani game da dorewa da fadadawa, saboda haka yadda muke tsara abubuwan yana da mahimmanci.

A cikin wannan darasin, za mu nuna yadda za a ƙirƙiri tsarin gwajin aiki daga farawa ta amfani da Gatling da maven.




Tsarin Gwanin Maven Gatling

Abubuwan da ake buƙata:

Don wannan karatun kuna buƙatar shigar da waɗannan masu zuwa:


  • Java 1.8
  • Maven 3.5
  • IntelliJ tare da Scala Plugin an girka

Da farko, muna ƙirƙirar tushe ta hanyar gudanar da maƙalar Gatling archetype:

mvn archetype:generate -DarchetypeGroupId=io.gatling.highcharts -DarchetypeArtifactId=gatling-highcharts-maven-archetype

Lokacin da kuka aiwatar da umarnin da ke sama, zai fara sauke abubuwan dogaro.

Lokacin da aka sa ka, samar da kimomi don 'groupId', 'artifactId', da 'version'.

Saituna yana kama da mai zuwa:


Lokacin da kuka buɗe aikin, zaku lura akwai wasu tsoffin fayiloli da manyan fayiloli.

A karkashin albarkatun, muna da


jikin wannan kunshin yana ɗaukar nauyin biyan kuɗi. Misali, zaku iya samun samfuran buƙatun don buƙatu daban-daban.

bayanai wannan kunshin yana riƙe da bayanan da kuke buƙatar ciyarwa don gwajin ku, kamar su CSVs.

Baya ga manyan fayilolin guda biyu da ke sama, akwai fayilolin Gatling.conf, logback.xml da rikodin.conf. Ba za mu tattauna waɗannan a cikin wannan koyawa ba.

Gatling maven archetype shima yana ƙirƙirar abu uku na Scala, amma ba zamuyi amfani dasu ba, don haka ci gaba da share abubuwan.


Bugu da kari, za mu kirkiro fakiti hudu, daidaitawa , buƙatun , al'amuran , da kwaikwayo :

Sanya Kunshin

A cikin fakitin saitin, ƙirƙirar abu na Scala da ake kira Config. Wannan zai riƙe abubuwa daban-daban don aikinmu kamar URLs na aikace-aikace, masu amfani da tsoho, da sauransu…

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 }

Buƙatun Buƙatu

Kunshin buƙatun yana riƙe buƙatun aiki daban. Misali, muna iya samun buƙatun da ke samun alamar izini. Wani buƙatun na iya amfani da alamar daga buƙata ta baya don ƙirƙirar mai amfani da sauransu.


Waɗannan buƙatun mutum ne da keɓaɓɓu waɗanda aka aika zuwa ƙarshen ƙarshen ra'ayi.

Takaddama

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

CreateUserRequest

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

Yanayin Yanayi

Kunshin yanayin yana riƙe da yanayin kasuwanci. Misali, don ƙirƙirar mai amfani, da farko dole ne mu sami alamar auth sannan kuma aika alamar a matsayin taken kai tsaye tare da sifofin tsari don ƙirƙirar mai amfani. watau muna amfani da amsar buƙata ta farko don ciyarwa zuwa buƙata ta biyu. Wannan “sarƙar buƙatun” ya zama gama gari a gwajin API.

CreateUserScenario

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

Shirye-shiryen kwaikwayo

A ƙarshe, muna da Abubuwan kwaikwayo a cikin fakitin kwaikwayon. Kuna iya tunanin kwaikwaiyo azaman bayanan martaba daban-daban. Misali, zamu iya samun kwatancen kayan aiki na yau da kullun ko karuwar karu.

Abubuwan kwaikwayo suna buƙatar zama azuzuwan Scala kuma dole ne su faɗaɗa ajin Samarwa 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) }

Ya kamata aikinku yayi kama da masu zuwa:

Har ila yau, muna buƙatar gyara fayil ɗinmu na pom.xml don samun damar wuce sigogi, kamar masu amfani da ƙididdigar gwajin gwajinmu a lokacin aiki.

fayil din pom.xml

Fayil ɗin pom.xml yakamata yayi kama:


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





A ƙarshe, don aiwatar da rukunin kwaikwaiyo, muna gudanar da wannan umarnin

mvn clean gatling:execute -Dusers=1

Umurnin da ke sama zai gudana theirƙirarSimulation tare da mai amfani 1.