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?

pengguna3384231
sumber

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).

Yabko
sumber
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/

Daniel
sumber
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

Volodymyr Popelniuk
sumber
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.

Dan
sumber
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
});
Michael
sumber
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

ashwath hegde
sumber
-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.

Ronald
sumber
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