REST భరోసా ట్యుటోరియల్: ఉదాహరణతో API ని ఎలా పరీక్షించాలి

విశ్రాంతి హామీ ఏమిటి?

మిగిలిన హామీ జావా లైబ్రరీలను ఉపయోగించి REST API లను పరీక్షించడానికి మిమ్మల్ని అనుమతిస్తుంది మరియు మావెన్‌తో బాగా కలిసిపోతుంది. ఇది చాలా సమర్థవంతమైన మ్యాచింగ్ టెక్నిక్‌లను కలిగి ఉంది, కాబట్టి మీరు ఆశించిన ఫలితాలను నొక్కి చెప్పడం కూడా చాలా సూటిగా ఉంటుంది. JSON నిర్మాణాలు ఎంత క్లిష్టంగా ఉన్నా అభ్యర్థన మరియు ప్రతిస్పందన యొక్క దాదాపు ప్రతి భాగం నుండి డేటాను పొందడానికి రెస్ట్ అస్యూర్డ్ పద్ధతులు ఉన్నాయి.

టెస్టింగ్ కమ్యూనిటీ కోసం, API ఆటోమేషన్ టెస్టింగ్ ఇంకా కొత్తది మరియు సముచితమైనది. JSON సంక్లిష్టతలు API పరీక్షను అన్వేషించకుండా ఉంచుతాయి. కానీ అది పరీక్ష ప్రక్రియలో తక్కువ ప్రాముఖ్యతనివ్వదు. రెస్ట్ అస్యూర్డ్.యో ఫ్రేమ్‌వర్క్ దీన్ని కోర్ జావా బేసిక్స్ ఉపయోగించి చాలా సులభతరం చేసింది, ఇది నేర్చుకోవడం చాలా కావాల్సిన విషయం.

ఈ ట్యుటోరియల్‌లో, మీరు నేర్చుకుంటారు,

విశ్రాంతి హామీ ఎందుకు అవసరం?

మీరు మీ గూగుల్ మ్యాప్ వీక్షణను తెరిచి, మీరు వెళ్లాలనుకుంటున్న ప్రదేశం కోసం వెతుకుతున్నారని ఊహించుకోండి, మీరు వెంటనే రెస్టారెంట్లను దగ్గరగా చూస్తారు, మీరు ప్రయాణానికి ఎంపికలను చూస్తారు; కొన్ని ప్రముఖ ట్రావెల్ ప్రొవైడర్ల నుండి, మరియు మీ చేతివేళ్ల వద్ద చాలా ఎంపికలను చూడండి. అవి గూగుల్ ఉత్పత్తులు కాదని మనందరికీ తెలుసు, అప్పుడు గూగుల్ దానిని ఎలా చూపించగలదు. వారు ఈ ప్రొవైడర్ల యొక్క బహిర్గత API లను ఉపయోగిస్తారు. ఇప్పుడు, ఈ రకమైన సెటప్‌ని పరీక్షించమని మిమ్మల్ని అడిగితే, UI నిర్మించడానికి లేదా అభివృద్ధికి ముందే, API లను పరీక్షించడం చాలా ముఖ్యమైనది మరియు వాటిని పదేపదే పరీక్షించడం, వివిధ డేటా కాంబినేషన్‌లతో ఇది ఆటోమేషన్‌కు చాలా అనుకూలమైన కేసుగా మారుతుంది.

ఇంతకుముందు, మేము దీనిని సాధించడానికి గాడి, రూబీ వంటి డైనమిక్ భాషలను ఉపయోగిస్తున్నాము మరియు ఇది సవాలుగా ఉంది. అందువల్ల API పరీక్ష క్రియాత్మక పరీక్ష ద్వారా అన్వేషించబడలేదు.

జావా యొక్క ప్రాథమిక నేపథ్యం ఉన్నట్లయితే రెస్ట్ అస్యూర్డ్, API ల ఆటోమేషన్ టెస్టింగ్, యూజర్ ఫ్రెండ్లీ అనుకూలీకరణలతో సరళమైన https రిక్వెస్ట్‌లను పంపడం చాలా సులభం. API టెస్టింగ్, మరియు ఇంటిగ్రేషన్ టెస్టింగ్‌ని అర్థం చేసుకోవడం అవసరం, కానీ ఆటోమేషన్ రెస్ట్ అస్యూర్డ్ బ్యాకెండ్‌పై చాలా మంచి విశ్వాసాన్ని ఇస్తుంది, అయితే ఫ్రంట్-ఎండ్ టెస్టింగ్ కేవలం UI మరియు క్లయింట్ వైపు కార్యకలాపాలపై దృష్టి పెట్టగలదు. రెస్ట్ అస్యూర్డ్ అనేది అనేక అదనపు పద్ధతులు మరియు లైబ్రరీలు జోడించబడిన ఓపెన్ సోర్స్, ఇది API ఆటోమేషన్‌కు గొప్ప ఎంపిక.

రెస్ట్ అస్యూర్డ్.యో సెటప్ కోసం స్టెప్ బై స్టెప్ గైడ్

దశ 1) జావాను ఇన్‌స్టాల్ చేయండి. దీనిని చూడండి మార్గదర్శి

దశ 2) ప్రారంభించడానికి IDE ని డౌన్‌లోడ్ చేయండి: గ్రహణం

దశ 3) మావెల్‌ని ఇన్‌స్టాల్ చేయండి మరియు మీ గ్రహణాన్ని సెటప్ చేయండి. చూడండి ఇక్కడ .

సెటప్ రెస్ట్ భరోసా

  1. మీ IDE లో మావెన్ ప్రాజెక్ట్‌ను సృష్టించండి. మేము Intellij ని ఉపయోగిస్తున్నాము, కానీ మీరు ఉపయోగిస్తున్న ఏ IDE లో అయినా మీరు ఇలాంటి నిర్మాణాన్ని పొందుతారు.
  2. మీ POM.xml ని తెరవండి

ప్రాజెక్ట్ నిర్మాణం



మిగిలిన భరోసా కోసం: జావా వెర్షన్ కోసం<9 users:

దిగువ ఆధారపడటాన్ని మీ POM.xml కి జోడించండి: | _+_ |

మిగిలిన భరోసా కోసం: జావా వెర్షన్ 9+ వినియోగదారుల కోసం: | _+ _ |

సమస్య పరిష్కరించు:

ఒకవేళ మీరు లోపాలను చూసినట్లయితే మరియు డిపెండెన్సీలు బాగా డౌన్‌లోడ్ అయ్యాయో లేదో ఖచ్చితంగా తెలియదు,

  1. అన్ని డిపెండెన్సీలను దిగుమతి చేసుకోవడానికి ఒక మావెన్ బిల్డ్‌ని నిర్వహించండి, మళ్లీ మీరు గురు 99 లో ఏర్పాటు చేసిన మావెన్‌లో సహాయం పొందుతారు.
  2. ఇంకా, మీరు లోపాలను చూస్తారు, తర్వాత మావెన్ క్లీన్ చేయండి, తర్వాత మావెన్ ఇన్‌స్టాల్ చేయండి మరియు అది ఎలాంటి లోపాలు లేకుండా నిర్మించాలి.
  3. మీరు మీ జావా క్లాస్‌లో కింది లైన్‌లను జోడించవచ్చు మరియు కంపైల్ లోపాలు లేవని చూడవచ్చు.
 io.rest-assured json-path 4.2.0 test io.rest-assured xml-path 4.2.0 test io.rest-assured json-schema-validator 4.2.0 test 

మొదటి సాధారణ విశ్రాంతి హామీ స్క్రిప్ట్

వాక్యనిర్మాణం:

రెస్ట్ అస్యూర్డ్.యో యొక్క వాక్యనిర్మాణం చాలా అందమైన భాగం, ఎందుకంటే ఇది చాలా BDD ఇష్టం మరియు అర్థమయ్యేలా ఉంటుంది. | _+_ |

వివరణ:

కోడ్వివరణ
ఇచ్చిన()'ఇచ్చిన' కీవర్డ్, నేపథ్యాన్ని సెట్ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది, ఇక్కడ, మీరు అభ్యర్థన శీర్షికలు, ప్రశ్న మరియు పాత్ పారామ్, బాడీ, కుకీలను పాస్ చేస్తారు. అభ్యర్థనలో ఈ అంశాలు అవసరం లేకపోతే ఇది ఐచ్ఛికం
ఎప్పుడు()'ఎప్పుడు' కీవర్డ్ మీ దృష్టాంతంలో ఆవరణను సూచిస్తుంది. ఉదాహరణకు, 'మీరు' పొందినప్పుడు/పోస్ట్ చేసినప్పుడు/వేసినప్పుడు, ఇంకేదైనా చేయండి.
పద్ధతి ()ఏదైనా CRUD కార్యకలాపాలతో దీన్ని ప్రత్యామ్నాయం చేయండి (పొందండి/పోస్ట్ చేయండి/ఉంచండి/తొలగించండి)
అప్పుడు ()మీ వాదన మరియు సరిపోలిక పరిస్థితులు ఇక్కడకు వెళ్లండి

ఇప్పుడు మీరు సెంటప్ మరియు సెంటాక్స్‌కు కొంత నేపథ్యాన్ని కలిగి ఉన్నారు, మా మొదటి సాధారణ పరీక్షను సృష్టిద్దాం. ఇప్పటివరకు నిర్మాణం మీకు కొత్తగా అనిపించినా ఫర్వాలేదు, మీరు ప్రతి పంక్తిని మరింతగా అర్థం చేసుకుంటే, మీరు దాన్ని అర్థం చేసుకుంటారు.

మీరు ఏమి తెస్తారు?

మీ బ్రౌజర్ తెరిచి నొక్కండి - https://demo.on2vhf.be/V4/sinkministatement.php?CUSTOMER_ID=68195&PASSWORD=1234!&Account_No=1 . మీరు దిగువన ఏదో చూస్తారని నిర్ధారించుకోండి.

ఒకవేళ మీరు అభ్యర్థన కోసం ప్రతిస్పందనను పొందడానికి ప్రయత్నించినప్పుడు బ్రౌజర్‌లో మీకు లోపం వస్తే,

  1. మీరు Https లేదా Http ఉపయోగించారా అని చూడండి. మీ బ్రౌజర్ అసురక్షిత వెబ్‌సైట్‌లను తెరవకుండా సెట్టింగ్‌లను కలిగి ఉండవచ్చు.
  2. వెబ్‌సైట్‌లను తెరవకుండా మీ బ్రౌజర్‌కి ఏదైనా ప్రాక్సీ లేదా ఫైర్‌వాల్ బ్లాక్ చేస్తుందో లేదో చూడండి.

* గమనిక - మీరు ఇక్కడ ఏ హెడర్‌లను ఉపయోగించలేదు, బాడీ లేదు మరియు కుకీ లేదు. ఇది ఒక URL మరియు మీరు API నుండి కంటెంట్‌ని పొందుతున్నారు మరియు ఇప్పటికే ఉన్న ఏదైనా కంటెంట్‌ను పోస్ట్ చేయడం లేదా అప్‌డేట్ చేయడం లేదు, కనుక ఇది GET కాల్‌గా మారుతుంది. మా మొదటి పరీక్షను బాగా అర్థం చేసుకోవడానికి దీన్ని గుర్తుంచుకోండి.

మీ పరీక్ష లక్ష్యం:

రెస్ట్ అస్యూర్డ్ ద్వారా బ్రౌజర్‌లో మీరు అందుకున్న అదే అవుట్‌పుట్‌ను మీ IDE కన్సోల్‌లో ప్రింట్ చేయడం స్క్రిప్ట్ లక్ష్యం.

దిగువ దశలతో దీన్ని కోడ్ చేద్దాం:

ప్రతిస్పందన బాడీని పొందడం

దశ 1) 'MyFirstRestAssuredClass' అనే పేరుతో ఒక క్లాస్‌ని సృష్టించండి

దశ 2) 'GetResponseBody' అనే పద్ధతిని సృష్టించండి

దశ 3) ఇంతకు ముందు ఇచ్చిన స్ట్రక్చర్‌ని పోలి ఉంటుంది, ఎప్పుడు మరియు తరువాత, దిగువ కోడ్‌ని టైప్ చేయండి

ఇచ్చిన(). -> శీర్షికలు అవసరం లేదు, ప్రశ్న లేదా పాత్ పరామ్ లేదు.

ఎప్పుడు(). -> నిర్దిష్ట కండిషన్ సెటప్ లేదు

పొందండి (' https://demo.on2vhf.be/V4/sinkministatement.php?CUSTOMER_ID=68195&PASSWORD=1234!&Account_No=1 '). -> url మాత్రమే సరఫరా చేయాలి

అప్పుడు (). -> నిర్దిష్ట ప్రకటనలు అవసరం లేదు

లాగ్ (). అన్ని () -> ప్రతిస్పందన మొత్తం పొందిన తర్వాత, ప్రతిస్పందన లాగ్, హెడర్‌లు, ముఖ్యంగా అభ్యర్థన మీకు తిరిగి వచ్చే ప్రతిదీ. | _+_ |

ఇప్పుడు ఉపయోగించిన URL పొడవైనది మరియు తక్కువ చదవదగినది అని గమనించండి, మీరు నిశితంగా పరిశీలిస్తే, 3 ప్రశ్న పారామితులు ఉపయోగించబడుతున్నట్లు మీరు గమనించవచ్చు

  1. కస్టమర్_ఐడి
  2. పాస్వర్డ్
  3. ఖాతా సంఖ్య

హామీ ఇవ్వబడింది, ప్రతి భాగాన్ని (ప్రశ్న, మార్గం, శీర్షిక పరామ్) విడివిడిగా పాస్ చేయడంలో మాకు సహాయపడుతుంది, కోడ్‌ను మరింత చదవగలిగేలా మరియు నిర్వహించడం సులభం చేస్తుంది. అలాగే, మేము అవసరమైన విధంగా బాహ్య ఫైల్ నుండి డేటాను పారామీటరైజ్ చేయవచ్చు.

క్వెరీ పరామ్‌ను ఉపయోగించడం కోసం, మేము సింటాక్స్ యొక్క మా నిర్వచనానికి తిరిగి వెళ్తాము మరియు అవన్నీ ఇచ్చిన వాటిలో భాగంగా పాస్ చేయబడ్డాయని చూడండి. | _+_ |

** మేము 'అన్నీ' కి బదులుగా 'బాడీ'ని ఉపయోగించామని గమనించండి; ఇది ప్రతిస్పందన యొక్క శరీరాన్ని మాత్రమే తీయడానికి మాకు సహాయపడుతుంది.

అవుట్‌పుట్:

GetResponseBody కోసం అవుట్‌పుట్

ప్రతిస్పందన స్థితి కోడ్‌ని పొందడం

మేము స్క్రిప్ట్ చేసే తదుపరి పద్ధతి స్టేటస్ కోడ్‌ను పొందడం మరియు దానిని ధృవీకరించడానికి ఒక వాదన కూడా.

దశ 1) GetResponseStatus () అనే పద్ధతిని సృష్టించండి

దశ 2) పైన ఉపయోగించిన అదే అభ్యర్థన నిర్మాణాన్ని ఉపయోగించండి. కాపీ చేసి పేస్ట్ చేయండి.

దశ 3) దానిని లాగిన్ చేయడానికి బదులుగా, స్టేటస్ కోడ్ విలువను పొందడానికి మేము రెస్ట్ అస్యూర్డ్ యొక్క 'getStatusCode' అంతర్నిర్మిత పద్ధతిని ఉపయోగిస్తాము

దశ 4) మీ స్టేటస్ కోడ్ 200 అని నొక్కిచెప్పడానికి, మేము కీవర్డ్‌లను ఉపయోగిస్తాము - assertThat (). స్థితి కోడ్ (అంచనా కోడ్)

** గమనిక - URL అనేది సరళత కోసం ఉపయోగించే వేరియబుల్. URL మొత్తం API అభ్యర్థన URL ని కలిగి ఉంది | _+_ |

అవుట్‌పుట్:

GetResponseStatus కోసం అవుట్‌పుట్



వ్యాపార అవసరం

ఆటోమేషన్ యొక్క ప్రాథమిక నియమాలలో ఒకటి, మేము చెక్‌పాయింట్‌లను ఉంచాలి, తద్వారా అవసరమైన అన్ని షరతులు నెరవేరితేనే పరీక్ష కొనసాగుతుంది. API పరీక్షలో, అభ్యర్థన యొక్క స్టేటస్ కోడ్ 2XX ఫార్మాట్‌లో ఉందో లేదో తనిఖీ చేయడం అత్యంత ప్రాథమిక ధ్రువీకరణ.

పూర్తి కోడ్, ఇప్పటివరకు: | _+_ |

*గమనిక:

  1. ఈ దృష్టాంతంలో 200 విజయవంతమైన ప్రతిస్పందన. కొన్ని సమయాల్లో, మీరు కూడా విఫలం కావాల్సిన అవసరం ఉంది, ఆపై మీరు 4XX లేదా 5XX ఉపయోగించవచ్చు. చెల్లని పారామితులను సరఫరా చేయడం ద్వారా స్టేటస్ కోడ్‌ని మార్చడానికి ప్రయత్నించండి మరియు తనిఖీ చేయండి.
  2. మేము ఒక షరతును నొక్కిచెప్పినప్పుడు, లోపం తప్ప కన్సోల్‌లో ముద్రణ ఉండదు.

ప్రతిస్పందన యొక్క వివిధ భాగాలను పొందడానికి స్క్రిప్ట్

ప్రతిస్పందన బాడీ మరియు ప్రతిస్పందన స్థితి కోడ్‌ను పొందడం ఇప్పటికే పై విభాగంలో కవర్ చేయబడింది. ప్రతిస్పందన యొక్క వివిధ భాగాలను పొందడానికి, 'సారం' కీవర్డ్ చాలా ముఖ్యమైనదని గమనించడం విలువ.

శీర్షిక

రెస్ట్ అస్యూర్డ్ అనేది చాలా సూటిగా ఉండే భాష, మరియు హెడర్‌లను పొందడం కూడా అంతే సులభం. పద్ధతి పేరు శీర్షికలు (). మునుపటిలాగే, మేము కూడా దీన్ని చేయడానికి ఒక స్వతంత్ర పద్ధతిని సృష్టిస్తాము. | _+_ |

దయచేసి ఇక్కడ ఇవ్వబడిన () (ఎప్పుడు అలాంటి సందర్భాలలో, అదే ఉపయోగించడం ఐచ్ఛికం.

అవుట్‌పుట్:

GetResponseHeader కోసం అవుట్‌పుట్

వ్యాపార అవసరం:

కొన్ని సార్లు, మీరు తదుపరి అభ్యర్థన కోసం ఆథరైజేషన్ టోకెన్ లేదా సెషన్ కుకీని ఉపయోగించాల్సి ఉంటుంది మరియు ఎక్కువగా, ఈ వివరాలు ప్రతిస్పందన యొక్క హెడర్‌లుగా తిరిగి ఇవ్వబడతాయి.

ప్రతిస్పందన సమయం

బ్యాకెండ్ లేదా ఇతర డౌన్‌స్ట్రీమ్ సిస్టమ్‌ల నుండి ప్రతిస్పందన పొందడానికి అవసరమైన సమయాన్ని పొందడానికి, రెస్ట్ అస్యూర్డ్ ప్రతిస్పందనను తిరిగి ఇవ్వడానికి తీసుకున్న సమయాన్ని పొందడానికి తగిన టైమ్‌నిట్ తో 'timeIn' అనే పద్ధతిని అందిస్తుంది. | _+_ |

అవుట్‌పుట్:

GetResponseTime కోసం అవుట్‌పుట్

వ్యాపార అవసరం:

API లను పరీక్షించడంలో చాలా ముఖ్యమైన లక్షణం అప్లికేషన్ యొక్క పనితీరును కొలవడానికి వారి ప్రతిస్పందన సమయం. మీ ఇంటర్నెట్ వేగం, ఆ సమయంలో API పనితీరు, సర్వర్ లోడ్ మరియు సమయాన్ని ప్రభావితం చేసే ఇతర అంశాలపై ఆధారపడి మీ కాల్ కోసం తీసుకున్న సమయం ఎక్కువ లేదా తక్కువ సమయం పట్టవచ్చని గమనించండి.

కంటెంట్-రకం

'కంటెంట్‌టైప్ ()' పద్ధతిని ఉపయోగించి ప్రతిస్పందన యొక్క కంటెంట్-రకాన్ని మీరు పొందవచ్చు. | _+_ |

అవుట్‌పుట్

GetContentType కోసం అవుట్‌పుట్

వ్యాపార అవసరం:

కొన్ని సమయాలలో కంటెంట్-రకం పొందడం అనేది ఏవైనా క్రాస్-ఆరిజిన్ బెదిరింపులకు భద్రతా అంతరాలు లేవని నిర్ధారించడానికి లేదా API ప్రమాణాల ప్రకారం కంటెంట్ పాస్ చేయబడిందని నిర్ధారించడానికి అవసరం.

వ్యక్తిగత JSON మూలకాన్ని పొందండి

ఇచ్చిన ప్రతిస్పందన నుండి, మీరు మొత్తం మొత్తాన్ని లెక్కించమని అడగబడతారు, మీరు ప్రతి మొత్తాన్ని పొందాలి మరియు దాన్ని సంకలనం చేయాలి.

దశలు:

దశ 1) కీ 'స్టేట్‌మెంట్‌'లతో మొత్తం ఫీల్డ్ శ్రేణిలో ఉంది, ఇది కీ' రిజల్ట్‌'తో జాబితాలో ఉంటుంది

దశ 2) మిగిలిన హామీ, 'మార్గం' ఉపయోగించి API లోని విలువలను చేరుకోవడానికి ఒక యంత్రాంగాన్ని అందిస్తుంది

దశ 3) మొత్తాలను చేరుకోవడానికి మార్గం 'result.statements.AMOUNT'. సెలీనియంలో Xpath లాగా ఆలోచించండి.

దశ 4) సేకరణలో అన్ని మొత్తాలను పొందండి, ఆపై మొత్తం విలువలను లెక్కించడానికి అన్ని విలువలకు లూప్ చేయండి | _+_ |

గమనిక: మొత్తం విలువ స్ట్రింగ్ డేటా రకంలో ఉన్నందున, మేము పూర్ణాంకానికి మారుస్తాము మరియు దానిని సమ్మషన్ కోసం ఉపయోగిస్తాము.

అవుట్‌పుట్:

GetSpecificPartOfResponse కోసం అవుట్‌పుట్

సారాంశం:

  • రెస్ట్ అస్యూర్డ్ అనేది జావా లైబ్రరీల సమూహం, ఇది రెస్ట్ API పరీక్షను ఆటోమేట్ చేయడానికి మాకు వీలు కల్పిస్తుంది
  • రెస్ట్ అస్యూర్డ్ అనేది జావా ఆధారితమైనది, మరియు దానిని నేర్చుకోవడానికి కోర్ జావా పరిజ్ఞానం సరిపోతుంది
  • ఇది సంక్లిష్టమైన JSON నిర్మాణాల నుండి అభ్యర్థన మరియు ప్రతిస్పందన విలువలను పొందడంలో సహాయపడుతుంది
  • API అభ్యర్థనను వివిధ రకాల హెడర్, ప్రశ్న, పాత్ పారామ్ మరియు ఏదైనా సెషన్ లేదా కుకీలను సెట్ చేయడానికి అనుకూలీకరించవచ్చు.
  • ఇది ప్రకటన ప్రకటనలు మరియు షరతులను సెట్ చేయడంలో సహాయపడుతుంది.
  • ప్రతిస్పందన JSON రకం అయినప్పుడు రెస్ట్ అస్యూర్డ్ చాలా సహాయకారి అయితే, కంటెంట్ టైప్ ఐడి HTML లేదా సాదా టెక్స్ట్ అయితే దాని పద్ధతులు సజావుగా పనిచేయకపోవచ్చు.