डाकिया: एक ही समय में कई अनुरोध कैसे करें


182

मैं पोस्टमैन गूगल क्रोम एक्सटेंशन से डेटा पोस्ट करना चाहता हूं ।

मैं अलग-अलग डेटा के साथ 10 अनुरोध करना चाहता हूं और यह उसी समय होना चाहिए।

क्या पोस्टमैन में ऐसा करना संभव है?

यदि हाँ, तो क्या कोई मुझे समझा सकता है कि यह कैसे प्राप्त किया जा सकता है?

जवाबों:


182

मुझे लगता है कि समवर्ती परीक्षणों को चलाने के लिए डाकिया में ऐसी कोई सुविधा नहीं है।

अगर मैं तुम होते तो मैं अपाचे जेमीटर पर विचार करता जो कि इस तरह के परिदृश्यों के लिए उपयोग किया जाता है।

पोस्टमैन के बारे में, केवल एक चीज जो आपकी आवश्यकताओं को पूरा कर सकती है, वह है - पोस्टमैन रनर। यहां छवि विवरण दर्ज करें वहां आप विवरण निर्दिष्ट कर सकते हैं:

  • पुनरावृत्तियों की संख्या,
  • विभिन्न टेस्ट रन के लिए डेटा के साथ सीएसवी फ़ाइल अपलोड करें, आदि।

रन केवल समवर्ती नहीं होंगे।

उम्मीद है की वो मदद करदे। लेकिन जेमीटर (आप इसे प्यार करेंगे) पर विचार करें।


7
रे की टिप्पणी में साइट के बाद से Wordpress.com पर चले गए, यहाँ एक काम कर लिंक है
आरोनिनस

93

पोस्टमैन ऐसा नहीं करता है, लेकिन आप कई curlअनुरोधों को बश में अतुल्यकालिक रूप से चला सकते हैं :

curl url1 & curl url2 & curl url3 & ...

&प्रत्येक अनुरोध के बाद जोड़ना याद रखें जिसका अर्थ है कि अनुरोध को async नौकरी के रूप में चलना चाहिए।

डाकिया हालांकि आपके अनुरोध के लिए कर्ल स्निपेट उत्पन्न कर सकता है: https://learning.getpostman.com/docs/postman/sending_api_requests/generate_code_snippets/


3
यह शानदार है - सच्चे async व्यवहार के लिए इतना सरल, महान परीक्षण।
घुकिल

यह सबसे अच्छा समाधान है
शोबी

39

मुझे नहीं पता कि यह सवाल अभी भी प्रासंगिक है, लेकिन अब पोस्टमैन में ऐसी संभावना है। उन्होंने कुछ महीने पहले इसे जोड़ा था।

आप सभी की जरूरत है .js फ़ाइल को सरल बनाने और इसे नोड के माध्यम से चलाने के लिए। Js. यह इस तरह दिख रहा है:

var path = require('path'),
  async = require('async'), //https://www.npmjs.com/package/async
  newman = require('newman'),

  parametersForTestRun = {
    collection: path.join(__dirname, 'postman_collection.json'), // your collection
    environment: path.join(__dirname, 'postman_environment.json'), //your env
  };

parallelCollectionRun = function(done) {
  newman.run(parametersForTestRun, done);
};

// Runs the Postman sample collection thrice, in parallel.
async.parallel([
    parallelCollectionRun,
    parallelCollectionRun,
    parallelCollectionRun
  ],
  function(err, results) {
    err && console.error(err);

    results.forEach(function(result) {
      var failures = result.run.failures;
      console.info(failures.length ? JSON.stringify(failures.failures, null, 2) :
        `${result.collection.name} ran successfully.`);
    });
  });

फिर बस इसे .js फ़ाइल (cmd में 'नोड fileName.js') चलाएँ।

अधिक जानकारी यहाँ


9
क्या कमांड-लाइन टूल न्यूमैन का उपयोग किए बिना पोस्टमैन यूआई के साथ समवर्ती अनुरोध परीक्षण प्राप्त करने का एक तरीका है?
फिला

तो इस कोड की कोशिश की और यह SAME collection_A चलाने के लिए काम किया; लेकिन क्या होगा अगर मेरे पास 2 अलग संग्रह (collection_A और collection_B) है जो मैं समानांतर में चलाना चाहता हूं? विकल्प पैरामीटर कैसे बदलेगा? क्या आपने यह कोशिश की है? बॉक्स से बाहर जो प्रयोगशाला प्रदान करती है, वह लोड टेस्टिंग केस के मामले में अधिक प्रतीत होती है, लेकिन मैं समानांतर में कई संग्रह चलाना चाहता हूं; जैसे संग्रह_ ए और संग्रह बी समानांतर में; कोई उपाय?
हवासील

4
मैं इसके बजाय एक बैश स्क्रिप्ट लिखने के लिए बहुत कुछ करूंगा .js फ़ाइल
ttfreeman

4

निश्चित नहीं है कि लोग अभी भी इसके लिए सरल समाधान ढूंढ रहे हैं, लेकिन आप पोस्टमैन में "संग्रह धावक" के कई उदाहरणों को चलाने में सक्षम हैं। बस कुछ अनुरोधों के साथ एक धावक बनाएं और कई बार लाने के लिए "रन" बटन पर क्लिक करें।


यह प्रश्न के अनुसार समानांतर अनुरोध नहीं चलाएगा
वैभव शर्मा

4
वैभव; प्रत्येक परीक्षण धावक उदाहरण समानांतर में चलेगा।
RJFalconer

4

समानांतर में एक फ़ोल्डर में सभी संग्रह चलाएँ:

'use strict';

global.Promise = require('bluebird');
const path = require('path');
const newman =  Promise.promisifyAll(require('newman'));
const fs = Promise.promisifyAll(require('fs'));
const environment = 'postman_environment.json';
const FOLDER = path.join(__dirname, 'Collections_Folder');


let files = fs.readdirSync(FOLDER);
files = files.map(file=> path.join(FOLDER, file))
console.log(files);

Promise.map(files, file => {

    return newman.runAsync({
    collection: file, // your collection
    environment: path.join(__dirname, environment), //your env
    reporters: ['cli']
    });

}, {
   concurrency: 2
});

4

डाकिया के संग्रह धावक में आप एक साथ अतुल्यकालिक अनुरोध नहीं कर सकते हैं, इसलिए इसके बजाय अपाचे जेमीटर का उपयोग करें। यह आपको कई थ्रेड्स जोड़ने और इसे सिंक्रनाइज़ टाइमर जोड़ने की अनुमति देता है


2

यदि आप केवल GET अनुरोध कर रहे हैं और आपको अपने Chrome ब्राउज़र के भीतर से एक और सरल समाधान की आवश्यकता है, तो बस "एकाधिक URL खोलें" एक्सटेंशन स्थापित करें:

https://chrome.google.com/webstore/detail/open-multiple-urls/oifijhaokejakekmnjmphonojcfkpbbh?hl=en

मैंने अभी एक बार में 1500 url चलाए हैं, Google को थोड़ा सा पीछे किया है लेकिन यह काम करता है।


-7

सरल GUI दृष्टिकोण के लिए, प्रत्येक अनुरोध को अलग टैब में चलाना चाहते हैं खोलें। फिर आप प्रत्येक टैब पर एक क्लिक रन पर जा सकते हैं।


1
प्रश्न समानांतर अनुरोधों को चलाने के बारे में है
वैभव शर्मा

यह समानांतर में थोड़ा कंपित है।
रोनाल्ड

2
यदि आपका अनुरोध 0.05s लेता है, तो सौभाग्य स्विचिंग टैब और एक ही समय में बटन पर क्लिक करें ....
जस्टिनस

यह सरल या उचित नहीं है।
चीफट्विपेंसिल्स
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.