តើអ្វីជាវិធីល្អបំផុតដើម្បីរៀបចំនិងរៀបចំគម្រោងហ្គេតលីងសម្រាប់ការសាកល្បងការសម្តែង?
នៅពេលរចនាគ្រោងការណ៍យើងគួរគិតអំពីការរក្សាបាននិងភាពអាចពង្រីកបានដូច្នេះរបៀបដែលយើងរៀបចំសមាសធាតុមានសារៈសំខាន់ណាស់។
នៅក្នុងការបង្រៀននេះយើងនឹងបង្ហាញពីរបៀបបង្កើតក្របខ័ណ្ឌនៃការសាកល្បងការសំដែងពីទទេដោយប្រើហ្គេតលីនិងមេ។
តម្រូវការជាមុន៖
សម្រាប់ការបង្រៀននេះអ្នកត្រូវដំឡើងដូចខាងក្រោមៈ
ដំបូងយើងបង្កើតគម្រោងមូលដ្ឋានមួយដោយដំណើរការ 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 គួរមានរាងដូច៖
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 ជាមួយអ្នកប្រើប្រាស់ម្នាក់។