Tukang pos: Cara membuat beberapa permintaan sekaligus


182

Saya ingin data POST dari ekstensi Google Chrome Postman .

Saya ingin membuat 10 permintaan dengan data yang berbeda dan itu harus dilakukan secara bersamaan.

Apakah mungkin melakukannya di Postman?

Jika ya, adakah yang bisa menjelaskan kepada saya bagaimana ini bisa dicapai?

Jawaban:


182

Saya kira tidak ada fitur seperti itu di tukang pos untuk menjalankan tes bersamaan.

Jika saya jadi Anda saya akan mempertimbangkan Apache jMeter yang digunakan tepat untuk skenario seperti itu.

Mengenai Postman, satu-satunya hal yang bisa lebih atau kurang memenuhi kebutuhan Anda adalah - Postman Runner. masukkan deskripsi gambar di sini Di sana Anda dapat menentukan detailnya:

  • jumlah iterasi,
  • unggah file csv dengan data untuk berbagai percobaan, dll.

Berjalan tidak akan bersamaan, hanya berturut-turut.

Semoga itu bisa membantu. Tetapi pertimbangkan jMeter (Anda akan menyukainya).


7
Situs dalam komentar Ray sejak bermigrasi ke Wordpress.com, di sini adalah tautan yang berfungsi
Aaroninus

93

Tukang pos tidak melakukan itu tetapi Anda dapat menjalankan beberapa curlpermintaan secara tidak sinkron di Bash:

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

Ingatlah untuk menambahkan &setelah setiap permintaan yang berarti permintaan itu harus dijalankan sebagai pekerjaan async.

Namun tukang pos dapat menghasilkan cuplikan ikal untuk permintaan Anda: https://learning.getpostman.com/docs/postman/sending_api_requests/generate_code_snippets/


3
Ini brilian - tes sederhana dan bagus untuk perilaku async sejati.
ghukill

Ini adalah solusi terbaik
Shobi

39

Saya tidak tahu apakah pertanyaan ini masih relevan, tetapi ada kemungkinan di Postman sekarang. Mereka menambahkannya beberapa bulan lalu.

Yang Anda butuhkan hanyalah membuat file .js sederhana dan menjalankannya melalui node.js. Ini terlihat seperti ini:

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.`);
    });
  });

Kemudian jalankan saja file .js ini ('node fileName.js' dalam cmd).

Lebih detail di sini


9
Apakah ada cara untuk mencapai pengujian permintaan bersamaan dengan tukang pos ui juga tanpa menggunakan alat baris perintah newman?
phil

Jadi coba kode ini dan berhasil menjalankan SAMA collection_A; tetapi bagaimana jika saya memiliki 2 koleksi berbeda (collection_A dan collection_B) yang ingin saya jalankan secara paralel? Bagaimana perubahan parameter opsi? Sudahkah Anda mencoba ini? Apa yang disediakan oleh lab di luar kotak tampaknya lebih untuk kasus penggunaan pengujian beban tetapi saya ingin menjalankan beberapa koleksi secara paralel; seperti collection_A dan koleksi B secara paralel; ada ide?
pelican

4
Saya lebih suka menulis skrip bash daripada file .js
ttfreeman

4

Tidak yakin apakah orang masih mencari solusi sederhana untuk ini, tetapi Anda dapat menjalankan beberapa contoh "Collection Runner" di Postman. Cukup buat pelari dengan beberapa permintaan dan klik tombol "Jalankan" beberapa kali untuk memunculkan beberapa contoh.


Ini tidak akan menjalankan permintaan paralel seperti yang ditanyakan dalam pertanyaan
Vaibhav Sharma

4
Vaibhav; setiap instance test runner akan berjalan secara paralel.
RJFalconer

4

Jalankan semua Koleksi dalam folder secara paralel:

'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

Di pelari koleksi tukang pos Anda tidak bisa membuat permintaan asinkron secara simultan, jadi alih-alih gunakan Apache JMeter sebagai gantinya. Ini memungkinkan Anda untuk menambahkan banyak utas dan menambahkan penghitung waktu sinkronisasi



-7

Untuk pendekatan GUI yang lebih sederhana, buka setiap permintaan yang ingin Anda jalankan di tab yang berbeda. Kemudian Anda dapat pergi ke setiap tab klik menjalankan.


1
Pertanyaannya adalah untuk menjalankan permintaan paralel
Vaibhav Sharma

Secara paralel hanya sedikit terhuyung.
Ronald

2
Jika permintaan Anda memakan waktu 0,05, maka semoga sukses beralih tab dan mengklik tombol pada waktu yang sama ....
Justinas

Ini tidak sederhana atau masuk akal.
ChiefTwoPencils
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.