ក្របខ័ណ្ឌនៃការសាកល្បងអនុវត្តជាមួយហ្គេតលីងនិងម៉ាវេន

តើអ្វីជាវិធីល្អបំផុតដើម្បីរៀបចំនិងរៀបចំគម្រោងហ្គេតលីងសម្រាប់ការសាកល្បងការសម្តែង?

នៅពេលរចនាគ្រោងការណ៍យើងគួរគិតអំពីការរក្សាបាននិងភាពអាចពង្រីកបានដូច្នេះរបៀបដែលយើងរៀបចំសមាសធាតុមានសារៈសំខាន់ណាស់។

នៅក្នុងការបង្រៀននេះយើងនឹងបង្ហាញពីរបៀបបង្កើតក្របខ័ណ្ឌនៃការសាកល្បងការសំដែងពីទទេដោយប្រើហ្គេតលីនិងមេ។

ក្របខ័ណ្ឌតេស្តិ៍ហ្គូលីង

តម្រូវការជាមុន៖

សម្រាប់ការបង្រៀននេះអ្នកត្រូវដំឡើងដូចខាងក្រោមៈ

  • ចាវ៉ា ១.៨
  • Maven ៣.៥
  • IntelliJ ជាមួយ Scala Plugin ត្រូវបានតំឡើង

ដំបូងយើងបង្កើតគម្រោងមូលដ្ឋានមួយដោយដំណើរការ archetype maven Gatling៖

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

នៅពេលអ្នកប្រតិបត្តិពាក្យបញ្ជាខាងលើវានឹងចាប់ផ្តើមទាញយកភាពអាស្រ័យ។

នៅពេលត្រូវបានជម្រុញផ្តល់នូវតំលៃសំរាប់“ ក្រុម”,“ វត្ថុបុរាណ” និង“ ជំនាន់” ។

ការរៀបចំរបស់ខ្ញុំមើលទៅដូចខាងក្រោម៖

នៅពេលអ្នកបើកគម្រោងអ្នកនឹងសម្គាល់ឃើញថាមានឯកសារនិងថតឯកសារលំនាំដើមមួយចំនួន។

ក្រោមធនធានយើងមាន

សាកសព កញ្ចប់នេះផ្ទុកបន្ទុកសំណើ។ ឧទាហរណ៍អ្នកអាចមានគំរូសំណើសម្រាប់សំណើផ្សេងៗ។

ទិន្នន័យ កញ្ចប់នេះផ្ទុកទិន្នន័យដែលអ្នកត្រូវការដើម្បីផ្តល់ការធ្វើតេស្តរបស់អ្នកដូចជា CSVs ។

បន្ថែមលើសឺមីទាំងពីរខាងលើនេះមានឯកសារ Gatling.conf, logback.xml និងឯកសារ recorder.conf ។ យើងនឹងមិនពិភាក្សាអំពីបញ្ហាទាំងនេះនៅក្នុងឯកសារបង្រៀននេះទេ។

បុរាណវិទ្យាមេម៉ាតលីងក៏បង្កើតវត្ថុសាឡាលគោលបីដែរប៉ុន្តែយើងនឹងមិនប្រើវាទេដូច្នេះត្រូវបន្តលុបចោលវត្ថុទាំងនោះ។

លើសពីនេះទៀតយើងនឹងបង្កើតកញ្ចប់ចំនួនបួន, កំណត់រចនាសម្ព័ន្ធ , សំណើ , សេណារីយ៉ូ , និង ការពិសោធន៏

កំណត់រចនាសម្ព័ន្ធកញ្ចប់

នៅក្នុងកញ្ចប់កំណត់បង្កើតវត្ថុ Scala មួយហៅថា Config ។ វានឹងមានការកំណត់រចនាសម្ព័ន្ធផ្សេងៗគ្នាសម្រាប់គំរោងរបស់យើងដូចជា URL កម្មវិធី, អ្នកប្រើប្រាស់លំនាំដើម។ ល។

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 }

កញ្ចប់សំណើ

កញ្ចប់សំណើមានសំណើប្រតិបត្តិការផ្សេងៗគ្នា។ ឧទាហរណ៍យើងអាចមានសំណើដែលទទួលបានការអនុញ្ញាតនិមិត្តសញ្ញា។ សំណើរមួយទៀតអាចប្រើថូខឹនពីការស្នើសុំពីមុនដើម្បីបង្កើតអ្នកប្រើប្រាស់។ ល។

ទាំងនេះគឺជាសំណើឯកត្តជននិងឯកោដែលត្រូវបានផ្ញើទៅចំណុចបញ្ចប់ផ្សេងៗគ្នា។

GetTokenRequest

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

សេណារីយ៉ូកញ្ចប់

កញ្ចប់សេណារីយ៉ូមានសេណារីយ៉ូអាជីវកម្ម។ ឧទាហរណ៍ដើម្បីបង្កើតអ្នកប្រើដំបូងយើងត្រូវមានថូខឹនអនាមិកហើយបន្ទាប់មកផ្ញើថូខឹនជាបឋមកថារួមជាមួយប៉ារ៉ាម៉ែត្រសំណុំបែបបទដើម្បីបង្កើតអ្នកប្រើប្រាស់។ ពោលគឺយើងប្រើការឆ្លើយតបនៃសំណើទីមួយដើម្បីបំពេញតាមសំណើទី ២ ។ “ ការដាក់ច្រវាក់នៃសំណើរ” នេះគឺជារឿងធម្មតានៅក្នុងការធ្វើតេស្ត 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) }

កញ្ចប់រំភើប

ទីបំផុតយើងមានហ្វារនៅក្នុងកញ្ចប់ពិសោធន៏។ អ្នកអាចគិតពីការពិសោធន៏ដូចជាទម្រង់ផ្ទុកខុសគ្នា។ ឧទាហរណ៍យើងអាចមានពិសោធន៏បន្ទុកធម្មតាឬការពិសោធន៏ដូចការកើនឡើង។

ការពិសោធន៏នេះត្រូវការថ្នាក់ Scala ហើយពួកគេត្រូវពង្រីកថ្នាក់ Gatling Simulation ។

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

គម្រោងរបស់អ្នកគួរតែមានដូចខាងក្រោម៖

យើងក៏ត្រូវកែប្រែឯកសារ pom.xml របស់យើងផងដែរដើម្បីអាចឆ្លងកាត់ប៉ារ៉ាម៉ែត្រដូចជាអ្នកប្រើប្រាស់និងឆ្លងកាត់ការធ្វើតេស្តការអនុវត្តរបស់យើងនៅពេលរត់។

ឯកសារ pom.xml

ឯកសារ pom.xml គួរមានរាងដូច៖


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





ចុងបញ្ចប់ដើម្បីប្រតិបត្តិថ្នាក់ពិសោធយើងដំណើរការពាក្យបញ្ជាដូចខាងក្រោម

mvn clean gatling:execute -Dusers=1

ពាក្យបញ្ជាខាងលើនេះនឹងដំណើរការបង្កើត CreateUserSimulation ជាមួយអ្នកប្រើប្រាស់ម្នាក់។