আরএসটি এপির জন্য স্বয়ংক্রিয় পরীক্ষণ [বন্ধ]


84

আমি একটি REST এপিআই এর জন্য একটি স্বয়ংক্রিয় পরীক্ষার স্যুট লিখতে চাই। আমরা নতুন পরিষেবাদিগুলি সম্পূর্ণ করার সাথে সাথে আমরা পূর্বের তৈরি সমস্ত পরিষেবা প্রত্যাশার সাথে কাজ করছে তা নিশ্চিত করে দেখতে চাই। এটি সম্পাদন করার জন্য সেরা সরঞ্জামগুলির জন্য কোনও পরামর্শ? আমি জানি অ্যাপিগির মতো সরঞ্জামগুলি রয়েছে যা আপনাকে একবারে 1 টি পরিষেবা পরীক্ষা করার অনুমতি দেয় তবে আমরা বাটনটির ক্লিক দিয়ে সমস্ত পরিষেবা পরীক্ষা করার উপায় চাই।


4
আপনি vREST ব্যবহার করে দেখতে পারেন। এটি ইউনিট টেস্টিং এবং উপহাস উভয়ই রয়েছে।
পঙ্কজ জাঙ্গিদ

4
জেএমটিটার হ'ল রিস্ট এপিআই পরীক্ষার সেরা সরঞ্জাম - যারা জেমেটার ব্যবহার করে একটি REST এপিআই পরীক্ষা করার জন্য কিছু বিশদ পদক্ষেপের সন্ধান করছেন তাদের জন্য এই মন্তব্য যুক্ত করা। testautomationguru.com/how-to-test-rest-api-using-jmeter
vins

কিছুই ফ্রিজবিকে মারধর করে না - REST এপিআই পরীক্ষার জন্য নিখুঁত এবং সবচেয়ে শক্তিশালী হাতিয়ার
Piyush Chordia

4
আরএমএইটারের একটি মাত্রাতিরিক্ত দক্ষতা রয়েছে, কেবলমাত্র একটি আরএসটি এপিআইয়ের মৌলিক কার্যকরী পরীক্ষার জন্য, একটি ভয়ঙ্কর ইউআই আছে বলে উল্লেখ করা উচিত নয়। এটি কার্য সম্পাদন / লোড পরীক্ষার জন্য।
কেভিন এম

4
জেমিটার লোড টেস্টিংয়ে বেশি মনোযোগ নিবদ্ধ করে, সেরা বিকল্পটি খুঁজে পেতে আপনার 12 দুর্দান্ত ওয়েব পরিষেবা পরীক্ষার সরঞ্জামগুলি পরীক্ষা করা উচিত । এই তালিকা থেকে কিছু সরঞ্জাম, উদাহরণস্বরূপ SOAPUI বা HttpMaster এর কাছে REST API এন্ডপয়েন্টগুলির জন্য বেশ শালীন অটোমেশন সমর্থন রয়েছে।
জোকি

উত্তর:


36

আমার কাজে আমরা সম্প্রতি জাভাতে লেখা কয়েকটি টেস্ট স্যুট একসাথে রেখেছি যাতে আমরা তৈরি কিছু RESTful API গুলি পরীক্ষা করি। আমাদের পরিষেবাগুলি নির্ভর করে এমন অন্যান্য RESTful API গুলি ডেকে আনতে পারে। আমরা এটি দুটি স্যুট বিভক্ত।


  • স্যুট 1 - প্রতিটি পরিষেবা বিচ্ছিন্নভাবে পরীক্ষা করা
    • কোনও পিয়ার পরিষেবাদিগুলিকে মক করুন API রিস্টিটো ব্যবহারের উপর নির্ভর করে । অন্যান্য বিকল্পের মধ্যে রয়েছে রেস্ট-ড্রাইভার , ওয়্যারমক এবং বিটাম্যাক্স
    • আমরা যে পরিষেবাটি পরীক্ষা করছি সেটির পরীক্ষা করে এবং উপহাসগুলি সমস্তই একটি একক JVM- এ চালিত হয়
    • জেটিতে পরিষেবা চালু করে

আমি অবশ্যই এটি করার সুপারিশ করব। এটি আমাদের জন্য সত্যই ভাল কাজ করেছে। প্রধান সুবিধা হ'ল:

  • পিয়ার পরিষেবাগুলি উপহাস করা হয়েছে, সুতরাং আপনার কোনও জটিল ডেটা সেটআপ করার দরকার নেই। প্রতিটি পরীক্ষার আগে আপনি কীভাবে পিয়ার সার্ভিসগুলি আচরণ করতে চান তা নির্ধারণ করতে কেবল রিস্টিটো ব্যবহার করেন, ঠিক যেমন আপনি মকিতোর সাথে ইউনিট পরীক্ষায় ক্লাস করা হয়েছিল।
  • আপনি যদি বিদ্রূপাত্মক পিয়ার পরিষেবাগুলি কল করা হয় তবে তাদের জিজ্ঞাসা করতে পারেন। সত্যিকারের পিয়ার পরিষেবাদিগুলির মাধ্যমে আপনি সহজেই এই দাবিগুলি করতে পারবেন না।
  • স্যুটটি অতি দ্রুত গতিযুক্ত কারণ মশকরা পরিষেবাগুলি প্রাক-ক্যান-ইন-মেমরি প্রতিক্রিয়াগুলি সরবরাহ করে। সুতরাং স্যুটটি চালাতে বয়স না নিয়ে আমরা ভাল কভারেজ পেতে পারি।
  • স্যুটটি তার নিজের জেভিএম-এর বিচ্ছিন্ন হিসাবে নির্ভরযোগ্য এবং পুনরাবৃত্তিযোগ্য, সুতরাং স্যুটটি একই সময়ে চালিত হওয়ার সাথে সাথে ভাগ করা পরিবেশ নিয়ে মাতামাতি করার জন্য অন্যান্য স্যুট / লোকদের নিয়ে চিন্তা করার দরকার নেই এবং পরীক্ষাগুলি ব্যর্থ হওয়ার কারণ ঘটায়।

  • স্যুট 2 - সম্পূর্ণ শেষ থেকে শেষ
    • স্যুট বেশ কয়েকটি মেশিন জুড়ে মোতায়েন পূর্ণ পরিবেশের বিরুদ্ধে চলে
    • পরিবেশে টমক্যাটে এপিআই মোতায়েন
    • পিয়ার পরিষেবাদিগুলি সম্পূর্ণ 'লাইভ হিসাবে' সম্পূর্ণ মোতায়েন রয়েছে

এই স্যুটটির জন্য পিয়ার পরিষেবাদিতে ডেটা সেট আপ করা দরকার যার অর্থ পরীক্ষাগুলি সাধারণত লিখতে আরও বেশি সময় নেয়। পিয়ার সার্ভিসে ডেটা সেট আপ করার জন্য যতটা সম্ভব আমরা রিস্ট ক্লায়েন্ট ব্যবহার করি।

এই স্যুটটিতে টেস্টগুলি সাধারণত লিখতে বেশি সময় নেয়, তাই আমরা আমাদের বেশিরভাগ কভারেজ স্যুট ১ এ রাখি That এমনটি বলা হচ্ছে যে এই স্যুটটিতে এখনও স্পষ্ট মূল্য রয়েছে কারণ স্যুট ১-এ আমাদের বিদ্রূপগুলি সত্যিকারের পরিষেবার মতো আচরণ করবে না।



25

ফ্রেসবি হ'ল নোড.জেএস এবং জেসমিনের উপর নির্মিত একটি REST এপিআই পরীক্ষামূলক কাঠামো যা এপিআইয়ের শেষ পয়েন্টগুলিকে সহজ, দ্রুত এবং মজাদার করে তোলে। http://frisbyjs.com

উদাহরণ:

var frisby = require('../lib/frisby');

var URL = 'http://localhost:3000/';
var URL_AUTH = 'http://username:password@localhost:3000/';

frisby.globalSetup({ // globalSetup is for ALL requests
  request: {
    headers: { 'X-Auth-Token': 'fa8426a0-8eaf-4d22-8e13-7c1b16a9370c' }
  }
});

frisby.create('GET user johndoe')
  .get(URL + '/users/3.json')
  .expectStatus(200)
  .expectJSONTypes({
    id: Number,
    username: String,
    is_admin: Boolean
  })
  .expectJSON({
    id: 3,
    username: 'johndoe',
    is_admin: false
  })
  // 'afterJSON' automatically parses response body as JSON and passes it as an argument
  .afterJSON(function(user) {
    // You can use any normal jasmine-style assertions here
    expect(1+1).toEqual(2);

    // Use data from previous result in next test
    frisby.create('Update user')
      .put(URL_AUTH + '/users/' + user.id + '.json', {tags: ['jasmine', 'bdd']})
      .expectStatus(200)
    .toss();
  })
.toss();

আমি এই নিবন্ধটি ভোট দিয়েছি, আমি এটি আমার প্রতিদিনের কাজে ব্যবহার করেছি এবং এখন এটির সমস্ত ফ্রিসবিগুলি প্রায় ছড়িয়ে দেওয়া হচ্ছে। আমি আমার ব্লগে এ সম্পর্কে ভাগ করে নিয়েছি: কিউবিক্রেস.কম
পিয়ুশ চর্ডিয়া

4
ফ্রিসবি মারা গেছেন github.com/vlucas/frisby/issues/347
আর্নস্ট আর্নস্ট

ফ্রিসবি শুরু করা সহজ এবং এমনকি উন্নত এপিআই প্রবাহ পরীক্ষা করার জন্য যথেষ্ট শক্তিশালী। দুঃখের সাথে রিপোর্টের আউটপুটটি পছন্দসই হওয়ার জন্য অনেক কিছু ছেড়ে যায়। যখন API ব্যর্থ হয় ত্রুটি বার্তাগুলি প্রায় অকেজো হয়ে যায় the যা আশ্চর্যের বিষয় যে আপনি নিজে যখন পরীক্ষা চালান তখন আউটপুটটি বেশ ভাল। এটা একটা লজ্জাজনক ব্যপার.
ক্যাস্পার হোল্ডাম

4
যদি কেউ আমার পথে এভাবে হোঁচট খায় তবে উপরের মতামত হিসাবে মন্তব্য করা হয়েছে বলে ফ্রিসবি মারা গেছে বলে মনে হয় না। গিটটির সাম্প্রতিক আপডেট রয়েছে। github.com/vlucas/frisby
এস। হাস্টন

21

আমি আমার এক সহকর্মীর সাথে এই কারণে পাইরেস্টেস্ট ফ্রেমওয়ার্কটি শুরু করার জন্য সহযোগিতা করেছি: https://github.com/svanoort/pyrestest

যদিও আপনি পাইথনের পরীক্ষাগুলি নিয়ে কাজ করতে পারেন, তবে সাধারণ পরীক্ষার ফর্ম্যাটটি ওয়াইএএমএলে থাকে।

একটি বেসিক REST অ্যাপ্লিকেশনের জন্য নমুনা পরীক্ষার স্যুট - এইচপিটিএস স্থিতি কোডগুলি যাচাই করে এপিআইগুলি সঠিকভাবে প্রতিক্রিয়া জানিয়েছে তা যাচাই করে, যদিও আপনি এটি প্রতিক্রিয়া সংস্থাগুলিও পরীক্ষা করতে পারেন:

---
- config:
    - testset: "Tests using test app"

- test: # create entity
    - name: "Basic get"
    - url: "/api/person/"
- test: # create entity
    - name: "Get single person"
    - url: "/api/person/1/"
- test: # create entity
    - name: "Get single person"
    - url: "/api/person/1/"
    - method: 'DELETE'
- test: # create entity by PUT
    - name: "Create/update person"
    - url: "/api/person/1/"
    - method: "PUT"
    - body: '{"first_name": "Gaius","id": 1,"last_name": "Baltar","login": "gbaltar"}'
    - headers: {'Content-Type': 'application/json'}
- test: # create entity by POST
    - name: "Create person"
    - url: "/api/person/"
    - method: "POST"
    - body: '{"first_name": "Willim","last_name": "Adama","login": "theadmiral"}'
    - headers: {Content-Type: application/json}

প্রমাণীকরণের সাথে, আপনি নীচে শিরোনাম সহ github.com/svanoort/pyresttest/blob/master/quickstart.md থেকে প্রাপ্ত প্রতিটি পরীক্ষায় নীচে যুক্ত করুন; - auth_username: "foobar" - auth_password: "সিক্রেট" - প্রত্যাশিত_স্ট্যাটাস: [200]
agfe2

2

আমি কার্যকরী এবং স্বয়ংক্রিয় পরীক্ষার জন্য SOAP UI ব্যবহার করেছি। SOAP UI আপনাকে একটি বোতামের ক্লিকের উপর পরীক্ষা চালানোর অনুমতি দেয়। টেড ইয়ং দ্বারা তৈরি একটি বসন্ত নিয়ামক পরীক্ষার পৃষ্ঠাও রয়েছে। আমি আমাদের নিবন্ধে রেস্ট ইউনিট পরীক্ষা তৈরি করতে এই নিবন্ধটি ব্যবহার করেছি।



2

এপিআইগুলির জন্য স্বয়ংক্রিয় পরীক্ষণ করার একটি সমস্যা হ'ল অনেকগুলি সরঞ্জামের জন্য আপনি আপনার টেস্ট স্যুটটি চালানোর আগে এপিআই সার্ভারটি চালু এবং চলমান থাকা প্রয়োজন। একটি ইউনিট পরীক্ষার কাঠামো থাকা একটি আসল সুবিধা হতে পারে যা সম্পূর্ণ স্বয়ংক্রিয় পরীক্ষামূলক পরিবেশে API গুলি চালাতে এবং জিজ্ঞাসা করতে সক্ষম।

নোড.জেএস / এক্সপ্রেসের সাথে প্রয়োগ করা API গুলিগুলির জন্য ভাল এমন একটি বিকল্প স্বয়ংক্রিয় পরীক্ষার জন্য মোচা ব্যবহার করা use ইউনিট পরীক্ষার পাশাপাশি, পৃথক পরীক্ষার স্যুটে বিভক্ত এপিআইগুলির বিরুদ্ধে কার্যকরী পরীক্ষাগুলি লেখার পক্ষে সহজ। আপনি স্থানীয় পরীক্ষার পরিবেশে স্বয়ংক্রিয়ভাবে এপিআই সার্ভার শুরু করতে পারেন এবং একটি স্থানীয় পরীক্ষা ডেটাবেস সেট আপ করতে পারেন। মেক, এনএমপি এবং একটি বিল্ড সার্ভার ব্যবহার করে আপনি একটি "মেক টেস্ট" টার্গেট এবং একটি ইনক্রিমেন্টাল বিল্ড তৈরি করতে পারেন যা প্রতিবার কোনও সংগ্রহের জন্য আপনার খণ্ডে জমা দেওয়ার সময় পুরো টেস্ট স্যুটটি চালিত করে। সত্যিকারের অনুরাগী বিকাশকারীদের জন্য, এটি এমন একটি দুর্দান্ত এইচটিএমএল কোড-কভারেজ প্রতিবেদন তৈরি করবে যা আপনাকে দেখায় যে আপনার কোড বেসের কোন অংশগুলি পরীক্ষাগুলির আওতায় রয়েছে। যদি এটি আকর্ষণীয় মনে হয় তবে এখানে একটি ব্লগ পোস্ট যা সমস্ত প্রযুক্তিগত বিবরণ সরবরাহ করে।

যদি আপনি নোড ব্যবহার না করে থাকেন তবে ভাষার জন্য ডিফাক্টো ইউনিট টেস্টিং কাঠামোটি যাই হোক না কেন (jUnit, শসা / ক্যাপাইবার, ইত্যাদি) - স্থানীয় পরীক্ষার পরিবেশে সার্ভার স্পিনিং করার জন্য এবং এইচটিটিপি কোয়েরি চালানোর জন্য এর সমর্থনটি দেখুন। যদি এটি একটি বিশাল প্রকল্প হয় তবে স্বয়ংক্রিয় এপিআই টেস্টিং এবং ক্রমাগত একীকরণের কাজ করার প্রচেষ্টাটি খুব দ্রুত পরিশোধ হয়ে যাবে pay

আশা করি এইটি কাজ করবে.


2

রানস্কোপ একটি ক্লাউড ভিত্তিক পরিষেবা যা পরীক্ষার একটি সেট ব্যবহার করে ওয়েব API গুলি পর্যবেক্ষণ করতে পারে। পরীক্ষাগুলি নির্ধারিত এবং / বা প্যারামিটারাইজড ওয়েব হুকের মাধ্যমে চালানো যেতে পারে। বিশ্বব্যাপী ক্লায়েন্ট বেসের প্রতিক্রিয়া সময়গুলি গ্রহণযোগ্য হয় তা নিশ্চিত করতে বিশ্বজুড়ে ডেটা কেন্দ্রগুলি থেকেও পরীক্ষাগুলি কার্যকর করা যেতে পারে।

রানস্কোপের বিনামূল্যে স্তরটি প্রতি মাসে 10 কে অনুরোধ সমর্থন করে।

দাবি অস্বীকার: আমি রানস্কোপের পক্ষে বিকাশকারী অ্যাডভোকেট।


1

বিশ্রামের পরিষেবাটি পরীক্ষার জন্য জাভ ডিএসএল-এর উপর ভিত্তি করে আমি অনেকগুলি অটোমেশন কেস প্রয়োগ করেছি RE https://code.google.com/p/rest-assured/

বাক্য গঠনটি সহজ, এটি জসন এবং এক্সএমএল সমর্থন করে। https://code.google.com/p/rest-assured/wiki/Usage

তার আগে, আমি SOAPUI চেষ্টা করেছিলাম এবং ফ্রি সংস্করণে কিছু সমস্যা ছিল। এছাড়াও কেসগুলি এক্সএমএল ফাইলগুলিতে রয়েছে যা প্রসারিত এবং পুনরায় ব্যবহার করা শক্ত, কেবল আমি পছন্দ করি না



0

প্রতি মিনিটে একবারের জন্য পিপিআই টেস্ট অটোমেশন হল একটি পরিষেবা যা রাইআরএপিআইয়ের মাধ্যমে উপলব্ধ । আপনি আপনার পরীক্ষার পরিস্থিতি তৈরি করেন এবং তাদের সম্পাদন করেন। একবার এই পরীক্ষাগুলি আপনি যা প্রত্যাশা করেছিলেন তা করলে আপনি তারপরে তফসিল করতে পারেন। প্রমাণীকরণের প্রয়োজনের জন্য পরীক্ষাগুলি একসাথে 'বেঁধে রাখা' যেতে পারে। উদাহরণস্বরূপ, আপনার কাছে একটি পরীক্ষা থাকতে পারে যা টুইটারে একটি OAuth অনুরোধ করে এবং একটি ভাগ করে নেওয়া টোকেন তৈরি করে যা অন্য কোনও পরীক্ষার দ্বারা ব্যবহার করা যেতে পারে। পরীক্ষাগুলিতে এইচটিসি স্থিতি কোডগুলি নিশ্চিত করার জন্য জাভাসনের মানদণ্ড বা জাভাস্ক্রিপ্ট বা স্কিমা বৈধতা ব্যবহার করে প্রতিক্রিয়াগুলির বিশদ পরিদর্শনও থাকতে পারে। একবার পরীক্ষাগুলি নির্ধারিত হয়ে গেলে, পরে কোনও নির্দিষ্ট পরীক্ষার বৈধতা ব্যর্থ হওয়ার সাথে সাথে বা প্রতিক্রিয়ার সময় বা প্রতিক্রিয়া আকারের জন্য প্রতিষ্ঠিত ব্যাপ্তির বাইরে চলে যাওয়ার সাথে সাথে সতর্কতাগুলি আপনাকে অবহিত করতে পারে।


লিঙ্কটি নষ্ট হয়ে গেছে বলে মনে হচ্ছে।
রাও

0

আমি নিজের নিজস্ব REST এপিআই পরীক্ষার কাঠামো তৈরি করতে টেস্টএনজি এবং অ্যাপাচি এইচটিটিপি ক্লাস ব্যবহার করেছি, আমি দুটি বছর সেলেনিয়ামে কাজ করার পরে এই ধারণাটি তৈরি করেছি।

আপনার সেলেনিয়াম ক্লাসের পরিবর্তে অ্যাপাচি এইচটিটিপি ক্লাস ব্যবহার করা বাদে সবকিছুই সমান।

একবার চেষ্টা করে দেখুন, এটি সত্যিই সুন্দর এবং ভাল, আপনি আপনার পরীক্ষার কাঠামোটিকে আপনার সম্পূর্ণ সম্ভাবনার সাথে কাস্টমাইজ করার সমস্ত শক্তি।


আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.