እንደ CI አገልግሎት ለገንቢዎች ሙከራን ጫን

እንደ CI አገልግሎት ለገንቢዎች ሙከራን ጫን

የብዝሃ-ምርት ሶፍትዌር አቅራቢዎች ብዙ ጊዜ ከሚያጋጥሟቸው ችግሮች አንዱ የኢንጂነሮች ብቃት ማባዛት ነው - ገንቢዎች ፣ ሞካሪዎች እና የመሰረተ ልማት አስተዳዳሪዎች - በሁሉም ቡድን ማለት ይቻላል። ይህ ውድ በሆኑ መሐንዲሶች ላይም ይሠራል - በጭነት ሙከራ መስክ ልዩ ባለሙያዎች.

መሐንዲሶች ቀጥተኛ ተግባራቸውን ከማድረግ እና ልዩ ልምዳቸውን በመጠቀም የጭነት መፈተሻ ሂደትን ለመገንባት ዘዴን ከመምረጥ እና በሎድ ፕሮፋይሎች መሰረት አውቶሜትሮችን ከመፃፍ ይልቅ ብዙውን ጊዜ መሐንዲሶች የሙከራ መሠረተ ልማቶችን ከባዶ ማሰማራት፣ የመጫኛ መሳሪያዎችን ማዋቀር እና መክተት አለባቸው። እራሳቸው በ CI ስርዓቶች ውስጥ, የሪፖርቶችን ክትትል እና ማተምን ያዘጋጃሉ.

በፖዚቲቭ ቴክኖሎጅ ውስጥ በምንጠቀምባቸው ሙከራዎች ለአንዳንድ ድርጅታዊ ችግሮች መፍትሄዎችን ማግኘት ይችላሉ። ሌላ መጣጥፍ. እና በዚህ ውስጥ "የጭነት ሙከራን እንደ አገልግሎት" (የጭነት ሙከራ እንደ አገልግሎት) ጽንሰ-ሀሳብ በመጠቀም የጭነት ሙከራዎችን ወደ አንድ የጋራ የሲአይኤ ቧንቧ መስመር የማዋሃድ እድል እናገራለሁ. በ CI ቧንቧው ውስጥ የጭነት ምንጮችን እንዴት እና የትኞቹ ዶከር ምስሎች መጠቀም እንደሚችሉ ይማራሉ; የግንባታ አብነት በመጠቀም የጭነት ምንጮችን ከ CI ፕሮጀክትዎ ጋር እንዴት ማገናኘት እንደሚቻል; የጭነት ሙከራዎችን ለማስኬድ እና ውጤቶቹን ለማተም የሙከራ ማሳያ ቧንቧው ምን እንደሚመስል። ጽሑፉ በ CI ውስጥ ላሉ የሶፍትዌር መሞከሪያ መሐንዲሶች እና አውቶሜሽን መሐንዲሶች ስለ ጭነት ስርዓታቸው አርክቴክቸር እያሰቡ ሊሆን ይችላል።

የፅንሰ-ሐሳቡ ይዘት

የጭነት ሙከራን እንደ አገልግሎት ጽንሰ-ሐሳብ የሚያመለክተው የጭነት መሳሪያዎችን Apache JMeter, Yandex.Tank እና የራስዎን ማዕቀፎች በዘፈቀደ የማያቋርጥ ውህደት ስርዓት ውስጥ የማዋሃድ ችሎታን ነው. ማሳያው ለ GitLab CI ይሆናል፣ ግን መርሆቹ ለሁሉም CI ስርዓቶች የተለመዱ ናቸው።

የጭነት ሙከራ እንደ አገልግሎት ለጭነት ሙከራ የተማከለ አገልግሎት ነው። የጭነት ሙከራዎች የሚካሄዱት በተለዩ የወኪል ገንዳዎች ውስጥ ነው፣ ውጤቶቹ በራስ-ሰር በ GitLab Pages፣ Influx DB እና Grafana ወይም በሙከራ ሪፖርት ማቅረቢያ ስርዓቶች (TestRail፣ ReportPortal፣ ወዘተ) ላይ ይታተማሉ። አውቶሜሽን እና ልኬት በተቻለ መጠን በቀላሉ ይተገበራሉ - በ GitLab CI ፕሮጀክት ውስጥ የተለመደው gitlab-ci.yml አብነት በመጨመር እና በመለካት።

የዚህ አቀራረብ ጠቀሜታ መላው የ CI መሠረተ ልማት ፣ የጭነት ወኪሎች ፣ የመጫኛ ምንጮች ምስሎች ፣ የሙከራ ቧንቧዎች እና የሕትመት ዘገባዎች በማዕከላዊ አውቶሜሽን ዲፓርትመንት (ዴቭኦፕስ መሐንዲሶች) የተያዙ ሲሆኑ የጭነት መሞከሪያ መሐንዲሶች ጥረታቸውን በሙከራ ልማት ላይ ማተኮር ይችላሉ ። እና የመሠረተ ልማት ጉዳዮችን ሳያካትት ውጤቶቻቸውን ትንተና.

ለማብራሪያ ቀላልነት፣ በሙከራ ላይ ያለው የዒላማ አፕሊኬሽን ወይም አገልጋይ አስቀድሞ ተዘርግቶ እና ተዋቅሯል ብለን እንገምታለን (በራስ ሰር ስክሪፕቶች በ Python፣ SaltStack፣ Ansible፣ ወዘተ ለዚህ ጥቅም ላይ ሊውሉ ይችላሉ)። ከዚያ አጠቃላይ የጭነት ሙከራ እንደ አገልግሎት ጽንሰ-ሀሳብ በሦስት ደረጃዎች ይጣጣማል። ዝግጅት, ሙከራ, ሪፖርቶችን ማተም. በስዕሉ ላይ ተጨማሪ ዝርዝሮች (ሁሉም ስዕሎች ጠቅ ሊደረጉ የሚችሉ ናቸው)

እንደ CI አገልግሎት ለገንቢዎች ሙከራን ጫን

በጭነት ሙከራ ውስጥ መሰረታዊ ፅንሰ-ሀሳቦች እና ትርጓሜዎች

የጭነት ሙከራዎችን ሲያካሂዱ, ለማክበር እንሞክራለን የ ISTQB ደረጃዎች እና ዘዴ፣ ተገቢውን የቃላት አጠቃቀም እና የሚመከሩ መለኪያዎችን ይጠቀሙ። በጭነት ሙከራ ውስጥ ዋና ዋና ጽንሰ-ሐሳቦችን እና ትርጓሜዎችን አጭር ዝርዝር እሰጣለሁ.

የመጫኛ ወኪል - አፕሊኬሽኑ የሚጀመርበት ምናባዊ ማሽን - የጭነት ምንጭ (Apache JMeter ፣ Yandex.Tank ወይም በራስ የተጻፈ የጭነት ሞጁል)።

የሙከራ ግብ (ዒላማ) - ሊጫን የሚችል አገልጋይ ወይም መተግበሪያ በአገልጋዩ ላይ የተጫነ።

የሙከራ ሁኔታ (የሙከራ ጉዳይ) - የመለኪያ እርምጃዎች ስብስብ-በተጠቀሱት መለኪያዎች ላይ በመመስረት የተጠቃሚ እርምጃዎች እና ለእነዚህ እርምጃዎች የሚጠበቁ ምላሾች ፣ ከቋሚ የአውታረ መረብ ጥያቄዎች እና ምላሾች ጋር።

የመገለጫ ወይም የጭነት እቅድ (መገለጫ) - ውስጥ ISTQB ዘዴ (ክፍል 4.2.4, ገጽ 43) የመጫኛ መገለጫዎች ለአንድ የተወሰነ ፈተና ወሳኝ የሆኑትን መለኪያዎች እና በፈተናው ወቅት የጭነት መለኪያዎችን ለመለወጥ አማራጮችን ይገልፃሉ. በሥዕሉ ላይ የመገለጫ ምሳሌዎችን ማየት ይችላሉ.

እንደ CI አገልግሎት ለገንቢዎች ሙከራን ጫን

ሙከራ - አስቀድሞ የተወሰነ የመለኪያዎች ስብስብ ያለው ስክሪፕት።

የሙከራ እቅድ (የሙከራ እቅድ) - የሙከራዎች ስብስብ እና የመጫኛ መገለጫ.

ቴስትራን (ቴስተሩን) - አንድ ሙከራን ሙሉ በሙሉ ከተፈጸመ የጭነት ሁኔታ እና ከተቀበለው ሪፖርት ጋር የማሄድ ድግግሞሽ።

የአውታረ መረብ ጥያቄ (ጥያቄ) — ከአንድ ወኪል ወደ ኢላማ የተላከ የኤችቲቲፒ ጥያቄ።

የአውታረ መረብ ምላሽ (ምላሽ) - ከዒላማው ወደ ተወካዩ የተላከ የኤችቲቲፒ ምላሽ።
የኤችቲቲፒ ምላሽ ኮድ (የኤችቲቲፒ ምላሽ ሁኔታ) - ከመተግበሪያው አገልጋይ መደበኛ የምላሽ ኮድ።
ግብይት የተሟላ የጥያቄ-ምላሽ ዑደት ነው። አንድ ግብይት ጥያቄ (ጥያቄ) መላክ ከጀመረበት ጊዜ አንስቶ ምላሽ (ምላሽ) መቀበል እስኪጠናቀቅ ድረስ ይቆጠራል.

የግብይት ሁኔታ - የጥያቄ-ምላሽ ዑደቱን በተሳካ ሁኔታ ማጠናቀቅ ይቻል እንደሆነ። በዚህ ዑደት ውስጥ ምንም ስህተት ከነበረ, አጠቃላይ ግብይቱ እንዳልተሳካ ይቆጠራል.

የምላሽ ጊዜ (ዘግይቶ) - ጥያቄ (ጥያቄ) መላክ ካለቀበት ጊዜ አንስቶ ምላሽ (ምላሽ) ለመቀበል መጀመሪያ ድረስ ያለው ጊዜ።

የመጫኛ መለኪያዎች - የተጫነው አገልግሎት ባህሪያት እና በጭነት መፈተሽ ሂደት ውስጥ የሚወሰኑት የጭነት ወኪሉ.

የጭነት መለኪያዎችን ለመለካት መሰረታዊ መለኪያዎች

በአሰራር ዘዴው ውስጥ በብዛት ጥቅም ላይ ከዋሉት እና የሚመከሩ ጥቂቶቹ ISTQB (ገጽ 36፣52) መለኪያዎች ከዚህ በታች ባለው ሠንጠረዥ ውስጥ ይታያሉ። ለተወካዩ እና ለዒላማው ተመሳሳይ መለኪያዎች በተመሳሳይ መስመር ላይ ተዘርዝረዋል.

ለጭነት ወኪሉ መለኪያዎች
በጭነት ውስጥ እየተሞከረ ያለው የታለመው ስርዓት ወይም መተግበሪያ መለኪያዎች

ՔԱՆԱԿ  vCPU እና ትውስታ ራንደም አክሰስ ሜሞሪ,
ዲስክ - የጭነት ወኪሉ "ብረት" ባህሪያት
ሲፒዩ, ማህደረ ትውስታ, የዲስክ አጠቃቀም - የሲፒዩ ፣ የማህደረ ትውስታ እና የዲስክ ጭነት ተለዋዋጭነት
በፈተና ሂደት ውስጥ. ብዙውን ጊዜ የሚለካው በመቶኛ ነው።
ከፍተኛው የሚገኙ እሴቶች

የአውታረ መረብ ልቀት (በጭነት ወኪል) - የመተላለፊያ ይዘት
በአገልጋዩ ላይ የአውታረ መረብ በይነገጽ ፣
የጭነት ወኪሉ የተጫነበት.
ብዙውን ጊዜ የሚለካው በባይት በሰከንድ (bps)
የአውታረ መረብ ልቀት(በዒላማ ላይ) - የአውታረ መረብ በይነገጽ ባንድዊድዝ
በዒላማው አገልጋይ ላይ. ብዙውን ጊዜ የሚለካው በባይት በሰከንድ (bps)

ምናባዊ ተጠቃሚዎች- ምናባዊ ተጠቃሚዎች ብዛት;
የጭነት ሁኔታዎችን መተግበር እና
እውነተኛ የተጠቃሚ ድርጊቶችን መኮረጅ
ምናባዊ ተጠቃሚዎች ሁኔታ፣ ያለፉ/ያልተሳካ/ጠቅላላ - የተሳካላቸው ቁጥር እና
የቨርቹዋል ተጠቃሚዎች ያልተሳካ ሁኔታ
ለጭነት ሁኔታዎች, እንዲሁም አጠቃላይ ቁጥራቸው.

በአጠቃላይ ሁሉም ተጠቃሚዎች ማጠናቀቅ ችለዋል ተብሎ ይጠበቃል
በጭነት መገለጫው ውስጥ የተገለጹት ሁሉም ተግባሮችዎ።
ማንኛውም ስህተት ማለት እውነተኛ ተጠቃሚ ማድረግ አይችልም ማለት ነው።
ከስርዓቱ ጋር ሲሰሩ ችግርዎን ይፍቱ

ጥያቄዎች በሰከንድ (ደቂቃ)- በሰከንድ (ወይም ደቂቃ) የአውታረ መረብ ጥያቄዎች ብዛት።

የጭነት ወኪሉ አስፈላጊ ባህሪ ምን ያህል ጥያቄዎችን እንደሚያመጣ ነው።
እንደ እውነቱ ከሆነ ይህ በምናባዊ ተጠቃሚዎች የመተግበሪያውን መዳረሻ መኮረጅ ነው።
ምላሾች በሰከንድ (ደቂቃ)
- በሰከንድ (ወይም ደቂቃ) የአውታረ መረብ ምላሾች ብዛት።

የታለመው አገልግሎት አስፈላጊ ባህሪ: ምን ያህል
ለጥያቄዎች ምላሽ ማመንጨት እና መላክ
የመጫኛ ወኪል

የኤችቲቲፒ ምላሽ ሁኔታ- የተለያዩ የምላሽ ኮዶች ብዛት
በጭነት ወኪሉ ከተቀበለው የመተግበሪያ አገልጋይ.
ለምሳሌ 200 እሺ ማለት የተሳካ ጥሪ ማለት ነው።
እና 404 - ሀብቱ አልተገኘም

ያቆበቆበ (የምላሽ ጊዜ) - ከመጨረሻው ጊዜ
ምላሽ (ምላሽ) ለመቀበል ከመጀመሩ በፊት ጥያቄ (ጥያቄ) በመላክ ላይ።
ብዙውን ጊዜ በሚሊሰከንዶች (ሚሴ) ይለካል

የግብይት ምላሽ ጊዜ- የአንድ ሙሉ ግብይት ጊዜ;
የጥያቄ-ምላሽ ዑደት ማጠናቀቅ.
ይህ ጥያቄውን መላክ ከጀመረበት ጊዜ ጀምሮ ያለው ጊዜ ነው (ጥያቄ)
ምላሽ (ምላሽ) መቀበል እስኪጠናቀቅ ድረስ.

የግብይት ጊዜ በሰከንዶች (ወይም ደቂቃዎች) ውስጥ ሊለካ ይችላል.
በብዙ መንገዶች: ዝቅተኛውን ግምት ውስጥ ያስገቡ,
ከፍተኛ፣ አማካኝ እና ለምሳሌ፣ 90ኛ ፐርሰንታይል
ዝቅተኛው እና ከፍተኛው ንባቦች እጅግ በጣም ብዙ ናቸው።
የስርዓት አፈጻጸም ሁኔታ.
ዘጠናኛው ፐርሰንታይል በብዛት ጥቅም ላይ የሚውለው፣
አብዛኞቹ ተጠቃሚዎች እንደሚያሳየው,
በስርዓት አፈፃፀም ደረጃ ላይ በምቾት የሚሰራ

ግብይቶች በሰከንድ (ደቂቃ) - የተጠናቀቀው ብዛት
ግብይቶች በሰከንድ (ደቂቃ) ፣
ማለትም ማመልከቻው ምን ያህል መቀበል እንደቻለ እና
ጥያቄዎችን ማካሄድ እና ምላሾችን መስጠት.
እንደ እውነቱ ከሆነ, ይህ የስርአቱ መተላለፊያ ነው

የግብይት ሁኔታ , አልፏል / አልተሳካም / ጠቅላላ - ቁጥር
የተሳካ, ያልተሳካ እና አጠቃላይ የግብይቶች ብዛት.

ለእውነተኛ ተጠቃሚዎች አልተሳካም።
ግብይቱ በእርግጥ ትርጉም ይኖረዋል
ከተጫነው ስርዓት ጋር ለመስራት አለመቻል

የመፈተሻ ንድፍ ንድፍ

የጭነት ሙከራ ጽንሰ-ሐሳብ በጣም ቀላል እና ቀደም ሲል የጠቀስኳቸውን ሶስት ዋና ዋና ደረጃዎችን ያቀፈ ነው- አዘጋጅ-የሙከራ-ሪፖርት, ማለትም የሙከራ ግቦችን ማዘጋጀት እና ለጭነት ምንጮች መለኪያዎችን ማዘጋጀት, ከዚያም የጭነት ሙከራዎችን ማካሄድ እና, በመጨረሻም, የሙከራ ሪፖርት ማመንጨት እና ማተም.

እንደ CI አገልግሎት ለገንቢዎች ሙከራን ጫን

የመርሃግብር ማስታወሻዎች፡-

  • QA.Tester የጭነት ሙከራ ባለሙያ ነው፣
  • ዒላማ በጭነት ውስጥ ያለውን ባህሪ ለማወቅ የሚፈልጉት የዒላማ መተግበሪያ ነው።

በሥዕላዊ መግለጫው ውስጥ የአካል ክፍሎች ፣ ደረጃዎች እና ደረጃዎች ምደባ

ደረጃዎች እና ደረጃዎች
ምን እየተደረገ ነው
መግቢያው ላይ ምን አለ
ውጤቱ ምንድነው?

አዘጋጅ: ለሙከራ ዝግጅት ደረጃ

LoadParameters
ማዋቀር እና ማስጀመር
ተጠቃሚ
ጭነት መለኪያዎች,
የመለኪያዎች ምርጫ እና
የሙከራ እቅድ ዝግጅት
(መገለጫ ጫን)
ብጁ አማራጮች ለ
የጭነት ወኪል አጀማመር
የሙከራ እቅድ
የሙከራ ዓላማ

VM
የደመና ማሰማራት
ምናባዊ ማሽን በ
አስፈላጊ ባህሪያት
ለጭነት ወኪል የVM ቅንብሮች
ራስ-ሰር ስክሪፕቶች ለ
ቪኤም መፍጠር
VM ተዋቅሯል።
ደመናው።

ኢንቪ
የስርዓተ ክወና ዝግጅት እና ዝግጅት
አካባቢ ለ
የጭነት ወኪል ሥራ
የአካባቢ ቅንብሮች ለ
የጭነት ወኪል
ራስ-ሰር ስክሪፕቶች ለ
የአካባቢ ቅንብሮች
የተዘጋጀ አካባቢ;
ስርዓተ ክወና፣ አገልግሎቶች እና መተግበሪያዎች፣
ለሥራ አስፈላጊ
የጭነት ወኪል

የጭነት ወኪሎች
መጫን, ማዋቀር እና መለኪያ
የመጫኛ ወኪል.
ወይም ዶከር ምስል ከ በማውረድ ላይ
አስቀድሞ የተዋቀረ የጭነት ምንጭ
የምንጭ ዶክ ምስልን ጫን
(YAT፣ JM ወይም በራስ የተጻፈ ማዕቀፍ)
ቅንብሮች
የጭነት ወኪል
አዘጋጅ እና ዝግጁ
ወደ ሥራ ጭነት ወኪል

ሙከራ: የጭነት ሙከራዎች አፈፃፀም ደረጃ. ምንጮች ለ GitLab CI በተዘጋጁ የወኪል ገንዳዎች ውስጥ የተሰማሩ የጭነት ወኪሎች ናቸው።

ሸክም
የጭነት ወኪሉን በመጀመር ላይ
ከተመረጠው የሙከራ እቅድ ጋር
እና የመጫን መለኪያዎች
የተጠቃሚ አማራጮች
ለመጀመር
የጭነት ወኪል
የሙከራ እቅድ
የሙከራ ዓላማ
የማስፈጸሚያ ምዝግብ ማስታወሻዎች
የጭነት ሙከራዎች
የስርዓት ምዝግብ ማስታወሻዎች
በግብ መለኪያዎች እና ጭነት ወኪል ላይ ያሉ ለውጦች ተለዋዋጭነት

ወኪሎችን አሂድ
ወኪል ማስፈጸሚያ
የፈተና ስክሪፕቶች ጭነቶች
በአሰራሩ ሂደት መሰረት
የመጫኛ መገለጫ
የመጫኛ ወኪል መስተጋብር
ለሙከራ ዓላማ
የሙከራ እቅድ
የሙከራ ዓላማ

ምዝግብ ማስታወሻዎች
"ጥሬ" የምዝግብ ማስታወሻዎች ስብስብ
በጭነት ሙከራ ወቅት;
የጭነት ወኪል እንቅስቃሴ መዝገቦች ፣
የሙከራ ዒላማው ሁኔታ
እና ወኪሉን የሚያንቀሳቅሰው ቪኤም

የማስፈጸሚያ ምዝግብ ማስታወሻዎች
የጭነት ሙከራዎች
የስርዓት ምዝግብ ማስታወሻዎች

ልኬቶች
በሙከራ ጊዜ "ጥሬ" መለኪያዎችን መሰብሰብ

የግብ መለኪያዎች ለውጦች ተለዋዋጭነት
እና የጭነት ወኪል

ሪፖርት፡ የፈተና ሪፖርት ዝግጅት ደረጃ

ጄኔሬተር
ማቀነባበር ተሰብስቧል
የመጫኛ ስርዓት እና
የክትትል ስርዓት "ጥሬ"
መለኪያዎች እና ምዝግብ ማስታወሻዎች
ውስጥ ሪፖርት ምስረታ
የሰው ሊነበብ የሚችል ቅጽ
ከኤለመንቶች ጋር ይቻላል
ተንታኞች
የማስፈጸሚያ ምዝግብ ማስታወሻዎች
የጭነት ሙከራዎች
የስርዓት ምዝግብ ማስታወሻዎች
በመለኪያዎች ውስጥ ያሉ ለውጦች ተለዋዋጭነት
ዒላማ እና ጭነት ወኪል
የተስተካከሉ "ጥሬ" ምዝግብ ማስታወሻዎች
ተስማሚ በሆነ ቅርጸት
ወደ ውጫዊ ማከማቻ ሰቀላዎች
የማይንቀሳቀስ ጭነት ሪፖርት፣
ሰው-ሊነበብ የሚችል

አትም
የሪፖርቱ ህትመት
ስለ ጭነት
በውጭ ውስጥ መሞከር
አገልግሎት
የተሰራ "ጥሬ"
ምዝግብ ማስታወሻዎች ተስማሚ በሆነ ቅርጸት
ወደ ውጭ ለማውረድ
ማከማቻዎች
በውጭ ተቀምጧል
ላይ የማከማቻ ሪፖርቶች
ጭነት, ተስማሚ
ለሰብአዊ ትንተና

በ CI አብነት ውስጥ የጭነት ምንጮችን ማገናኘት

ወደ ተግባራዊ ክፍል እንሂድ። በኩባንያው ውስጥ ባሉ አንዳንድ ፕሮጀክቶች ላይ እንዴት ማሳየት እፈልጋለሁ አዎንታዊ ቴክኖሎጂዎች የጭነት ሙከራን እንደ አገልግሎት ተግባራዊ አድርገናል.

በመጀመሪያ፣ በእኛ DevOps መሐንዲሶች እገዛ፣ የጭነት ሙከራዎችን ለማካሄድ በ GitLab CI ውስጥ የወኪል ስብስብ ፈጠርን። እንደ የመሰብሰቢያ ገንዳዎች ካሉ ከሌሎች ጋር በአብነት ውስጥ እንዳናደናግር፣ ለእነዚህ ወኪሎች መለያዎችን ጨምረናል፣ መለያዎች: ጭነት. ሌሎች ለመረዳት የሚቻል መለያዎችን መጠቀም ይችላሉ። ብለው ይጠይቃሉ። በምዝገባ ወቅት GitLab CI ሯጮች።

የሚፈለገውን ኃይል በሃርድዌር እንዴት ማግኘት ይቻላል? የመጫኛ ወኪሎች ባህሪያት - በቂ ቁጥር vCPU, RAM እና Disk - ዶከር, Python (ለ Yandex.Tank), GitLab CI ወኪል, Java (ለ Apache JMeter) በተወካዩ ላይ መሮጥ ያለበት እውነታ ላይ በመመርኮዝ ሊሰላ ይችላል. . ለጃቫ በJMeter ስር ቢያንስ 512 ሜባ ራም እና እንደ ከፍተኛ ገደብ እንዲጠቀሙ ይመከራል። 80% የሚገኝ ማህደረ ትውስታ.

ስለዚህ፣ ካለን ልምድ በመነሳት ቢያንስ 4 vCPUs፣ 4GB RAM፣ 60GB SSD ለሎድ ወኪሎች እንዲጠቀሙ እንመክራለን። የኔትወርክ ካርዱ ፍሰት የሚወሰነው በጭነት መገለጫው መስፈርቶች ላይ ነው.

በዋናነት ሁለት የጭነት ምንጮችን እንጠቀማለን - Apache JMeter እና Yandex.Tank docker ምስሎች.

Yandex.Tank ከ Yandex ለጭነት ሙከራ ክፍት ምንጭ መሳሪያ ነው። የእሱ ሞዱል አርክቴክቸር በPhantom ከፍተኛ አፈጻጸም ያልተመሳሰለ ምት ላይ የተመሰረተ የኤችቲቲፒ ጥያቄ ጀነሬተር ላይ የተመሰረተ ነው። ታንኩ በ SSH ፕሮቶኮል በኩል በሙከራ ላይ ያለው የአገልጋይ ሀብቶች አብሮገነብ ቁጥጥር አለው ፣ በተገለጹት ሁኔታዎች ፈተናውን በራስ-ሰር ማቆም ይችላል ፣ ውጤቱን በኮንሶል እና በግራፍ መልክ ያሳያል ፣ ሞጁሎችዎን ማገናኘት ይችላሉ ። ተግባራዊነትን ለማስፋት ወደ እሱ. በነገራችን ላይ ታንኩ ገና ዋና ባልሆነ ጊዜ ነበር የተጠቀምነው። በጽሁፉ ውስጥ "Yandex.Tank እና የጭነት ሙከራ አውቶማቲክ» በ 2013 የጭነት ሙከራን እንዴት እንደሠራን ታሪኩን ማንበብ ይችላሉ PT መተግበሪያ ፋየርዎል ከድርጅታችን ምርቶች አንዱ ነው።

Apache JMeter ከ Apache ክፍት ምንጭ ጭነት መሞከሪያ መሳሪያ ነው። ሁለቱንም የማይንቀሳቀሱ እና ተለዋዋጭ የድር መተግበሪያዎችን ለመሞከር በእኩልነት ጥቅም ላይ ሊውል ይችላል። JMeter እጅግ በጣም ብዙ ፕሮቶኮሎችን እና ከመተግበሪያዎች ጋር የሚገናኙባቸው መንገዶችን ይደግፋል፡ HTTP፣ HTTPS (Java፣ NodeJS፣ PHP፣ ASP.NET፣ ወዘተ)፣ SOAP/REST Webservices፣ FTP፣ TCP፣ LDAP፣ SMTP(S)፣ POP3( S) ) እና IMAP(S)፣ በJDBC በኩል ያሉ የውሂብ ጎታዎች፣ የሼል ትዕዛዞችን ማስፈጸም እና ከጃቫ ነገሮች ጋር መስራት ይችላሉ። JMeter የሙከራ ዕቅዶችን ለመፍጠር፣ ለማረም እና ለማስፈጸም IDE አለው። በማንኛውም የጃቫ ተኳሃኝ ስርዓተ ክወና (ሊኑክስ፣ ዊንዶውስ፣ ማክ ኦኤስ ኤክስ) ላይ ለትእዛዝ መስመር ስራ CLI አለ። መሣሪያው በተለዋዋጭ የኤችቲኤምኤል ሙከራ ሪፖርት ማመንጨት ይችላል።

በኩባንያችን ውስጥ ለአጠቃቀም ምቹነት፣ ሞካሪዎቹ ራሳቸው አካባቢን ለመለወጥ እና ለመጨመር እንዲችሉ በጊትላብ ሲአይ ላይ የጭነት ምንጮችን ወደ ውስጥ በማተም የዶክተሮች ምስሎችን ገንብተናል። ዶከር መዝገብ በአርቴፊሻል ፋብሪካ. ይህ ለጭነት ሙከራዎች በቧንቧዎች ውስጥ እነሱን ለማገናኘት ፈጣን እና ቀላል ያደርገዋል። በ GitLab CI በኩል ወደ መዝገብ ቤት እንዴት ዶከር መግፋት እንደሚቻል - ይመልከቱ መመሪያዎች.

ለ Yandex.Tank ይህን መሰረታዊ የዶክተር ፋይል ወስደናል፡-

Dockerfile 
1 | FROM direvius/yandex-tank
2 | ENTRYPOINT [""]

እና ለ Apache JMeter ይሄኛው፡-

Dockerfile 
1 | FROM vmarrazzo/jmeter
2 | ENTRYPOINT [""]

የእኛ ቀጣይነት ያለው ውህደት ስርዓት እንዴት እንደሚሰራ በጽሁፉ ውስጥ ማንበብ ይችላሉ "የእድገት ሂደቶችን በራስ-ሰር መስራት፡ የዴቭኦፕስ ሃሳቦችን በአዎንታዊ ቴክኖሎጂዎች እንዴት እንደተገበርናቸው».

አብነት እና የቧንቧ መስመር

የጭነት ሙከራዎችን ለማካሄድ አብነት ምሳሌ በፕሮጀክቱ ውስጥ ይገኛል ማሳያ ጭነት. በ readme ፋይል አብነቱን ለመጠቀም መመሪያዎችን ማንበብ ይችላሉ. በአብነት በራሱ (ፋይል .gitlab-ci.yml) እያንዳንዱ እርምጃ ምን ኃላፊነት እንዳለበት ማስታወሻዎች አሉ.

አብነቱ በጣም ቀላል ነው እና ከላይ ባለው ስዕላዊ መግለጫ ላይ የተገለጹትን የሶስት ደረጃዎች ጭነት ሙከራ ያሳያል፡ ሪፖርቶችን ማዘጋጀት፣ መሞከር እና ማተም። ለዚህ ተጠያቂው ደረጃዎች: ያዘጋጁ, ይፈትሹ እና ሪፖርት ያድርጉ.

  1. ደረጃ አዘጋጅ የሙከራ ዒላማዎችን አስቀድሞ ለማዋቀር ወይም መገኘታቸውን ለማረጋገጥ ጥቅም ላይ መዋል አለበት። ለጭነት ምንጮች አካባቢን ማዋቀር አያስፈልግም, እንደ ዶከር ምስሎች ቀድመው የተገነቡ እና በዶክተር መዝገብ ውስጥ የተለጠፉ ናቸው: የሚፈለገውን ስሪት በሙከራ ደረጃ ላይ ብቻ ይግለጹ. ግን እነሱን እንደገና መገንባት እና የእራስዎን የተሻሻሉ ምስሎችን መስራት ይችላሉ.
  2. ደረጃ ሙከራ የጭነት ምንጩን ለመለየት፣ ሙከራዎችን ለማካሄድ እና የሙከራ ቅርሶችን ለማከማቸት ያገለግላል። ማንኛውንም የመጫኛ ምንጭ መምረጥ ይችላሉ-Yandex.Tank, Apache JMeter, የራስዎን ወይም ሁሉንም አንድ ላይ. አላስፈላጊ ምንጮችን ለማሰናከል አስተያየት ይስጡ ወይም ስራውን ይሰርዙ። ለጭነት ምንጮች የመግቢያ ነጥቦች፡-
    • ለ Yandex.Tank የማስጀመሪያ መለኪያዎች በ ውስጥ ተገልጸዋል./ tests/yandextank.sh,
    • Apache JMeter የማስነሻ መለኪያዎች በፋይሉ ውስጥ ተገልጸዋል። ./ tests/jmeter.sh.

    ማስታወሻ፡ የመሰብሰቢያ ውቅር አብነት ከ CI ሲስተም ጋር መስተጋብር ለመፍጠር ጥቅም ላይ ይውላል እና በውስጡ የሙከራ አመክንዮ ማስቀመጥን አያመለክትም። ለሙከራዎች, የመግቢያ ነጥቡ ይገለጻል, የመቆጣጠሪያው ባሽ ስክሪፕት የሚገኝበት. ሙከራዎችን የማካሄድ ዘዴ፣ ሪፖርቶችን የማመንጨት ዘዴ እና የሙከራ ስክሪፕቶች እራሳቸው በQA መሐንዲሶች መተግበር አለባቸው። በማሳያው ውስጥ, ለሁለቱም የጭነት ምንጮች, የ Yandex ዋና ገጽ ጥያቄ እንደ ቀላሉ ፈተና ጥቅም ላይ ይውላል. ስክሪፕቶች እና የሙከራ መለኪያዎች በማውጫው ውስጥ አሉ። ./ ሙከራዎች.

  3. በመድረክ ላይ ሪፖርት በሙከራ ደረጃ የተገኙትን የፈተና ውጤቶች ወደ ውጫዊ ማከማቻዎች ለምሳሌ ወደ GitLab Pages ወይም ልዩ የሪፖርት ማቅረቢያ ስርዓቶች እንዴት ማተም እንዳለቦት መግለጽ ያስፈልግዎታል። GitLab Pages የ./public directory ባዶ እንዳይሆን እና ፈተናዎቹ ካለቀ በኋላ ቢያንስ ኢንዴክስ.html ፋይል እንዲይዝ ይፈልጋል። ስለ GitLab Pages አገልግሎት ልዩነቶች ማንበብ ትችላለህ። ማያያዣ.

    እንዴት ውሂብ ወደ ውጭ እንደሚላክ ምሳሌዎች፡-

    የማዋቀር መመሪያዎችን መለጠፍ፡-

በማሳያ ምሳሌ ውስጥ ፣ የጭነት ሙከራዎች እና ሁለት የጭነት ምንጮች ያሉት የቧንቧ መስመር (አላስፈላጊውን ማሰናከል ይችላሉ) ይህንን ይመስላል።

እንደ CI አገልግሎት ለገንቢዎች ሙከራን ጫን

Apache JMeter እራሱን የኤችቲኤምኤል ሪፖርት ማመንጨት ይችላል፣ ስለዚህ መደበኛ መሳሪያዎችን በመጠቀም በ GitLab ገጾች ላይ ማስቀመጥ የበለጠ ትርፋማ ነው። የApache JMeter ዘገባ ይህን ይመስላል፡-

እንደ CI አገልግሎት ለገንቢዎች ሙከራን ጫን

ለ Yandex.Tank በማሳያ ምሳሌ ውስጥ, እርስዎ ብቻ ይመለከታሉ የውሸት የጽሁፍ ዘገባ ለ GitLab ገጾች ክፍል ውስጥ። በሙከራ ጊዜ ታንክ ውጤቱን ወደ InfluxDB የውሂብ ጎታ ማስቀመጥ ይችላል, እና ከዚያ ሊታዩ ይችላሉ, ለምሳሌ, በግራፋና ውስጥ (ውቅር በፋይሉ ውስጥ ይከናወናል). ./ tests/ምሳሌ-yandextank-test.yml). የታንክ ዘገባ በግራፋና ይህን ይመስላል፡-

እንደ CI አገልግሎት ለገንቢዎች ሙከራን ጫን

ማጠቃለያ

በጽሁፉ ውስጥ ስለ "የጭነት ሙከራ እንደ አገልግሎት" (የጭነት ሙከራ እንደ አገልግሎት) ጽንሰ-ሐሳብ ተናገርኩ. ዋናው ሃሳብ በቀላል .gitlab-ci.yml አብነት (ምሳሌ) ላይ በመመስረት ቀድሞ የተዋቀሩ የጭነት ወኪሎች ገንዳዎች መሠረተ ልማት ፣ የጭነት ምንጮችን የዶክተር ምስሎችን ፣ የሪፖርት ማቅረቢያ ስርዓቶችን እና የቧንቧ መስመርን መጠቀም ነው ። ማያያዣ). ይህ ሁሉ በትንሽ አውቶሜሽን መሐንዲሶች የተደገፈ እና በምርት ቡድኖች ጥያቄ የተደገመ ነው። ይህ በድርጅትዎ ውስጥ ተመሳሳይ እቅድ ለማዘጋጀት እና ለመተግበር እንደሚረዳዎት ተስፋ አደርጋለሁ። ለትኩረትዎ እናመሰግናለን!

PS በኩባንያችን ውስጥ እንደ አገልግሎት የጭነት ሙከራን ጽንሰ-ሀሳብ ተግባራዊ ለማድረግ ለስራ ባልደረቦቼ, ሰርጌይ ኩርባኖቭ እና ኒኮላይ ዩሴቭ, ለቴክኒካል ድጋፍ ትልቅ ምስጋናዬን ልነግርዎ እፈልጋለሁ.

ደራሲ: ቲሙር ጊልሙሊን - ምክትል የቴክኖሎጂ እና ልማት ሂደቶች ኃላፊ (ዴቭኦፕስ) በአዎንታዊ ቴክኖሎጂዎች

ምንጭ: hab.com

አስተያየት ያክሉ