Người đưa thư: Cách thực hiện nhiều yêu cầu cùng một lúc


182

Tôi muốn POST dữ liệu từ tiện ích mở rộng Postman Google Chrome.

Tôi muốn thực hiện 10 yêu cầu với dữ liệu khác nhau và nó phải đồng thời.

Có thể làm như vậy trong Postman?

Nếu có, bất cứ ai có thể giải thích cho tôi làm thế nào điều này có thể đạt được?

Câu trả lời:


182

Tôi đoán không có tính năng như vậy trong postman để chạy thử nghiệm đồng thời.

Nếu tôi là bạn, tôi sẽ xem xét Apache jMeter được sử dụng chính xác cho các tình huống như vậy.

Về Postman, điều duy nhất có thể ít nhiều đáp ứng nhu cầu của bạn là - Postman Runner. nhập mô tả hình ảnh ở đây Ở đó bạn có thể chỉ định các chi tiết:

  • Số lần lặp lại,
  • tải lên tệp csv với dữ liệu cho các lần chạy thử khác nhau, v.v.

Việc chạy sẽ không đồng thời, chỉ liên tiếp.

Mong rằng sẽ giúp. Nhưng hãy xem xét jMeter (bạn sẽ thích nó).


7
Trang web trong nhận xét của Ray đã được chuyển sang Wordpress.com, đây là một liên kết hoạt động
Aaroninus

93

Người đưa thư không làm điều đó nhưng bạn có thể chạy nhiều curlyêu cầu không đồng bộ trong Bash:

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

Hãy nhớ thêm &sau mỗi yêu cầu, điều đó có nghĩa là yêu cầu đó sẽ chạy như một công việc không đồng bộ.

Tuy nhiên, người đưa thư có thể tạo đoạn trích cho yêu cầu của bạn: https://learning.getpostman.com/docs/postman/seinating_api_Vquests/generate_code_snippets/


3
Điều này thật tuyệt vời - một thử nghiệm đơn giản, tuyệt vời cho hành vi không đồng bộ thực sự.
ghukill

Đây là giải pháp tốt nhất
Shobi

39

Tôi không biết câu hỏi này có còn phù hợp không, nhưng hiện tại có khả năng như vậy trong Postman. Họ đã thêm nó một vài tháng trước.

Tất cả những gì bạn cần là tạo tệp .js đơn giản và chạy nó qua node.js. Nó trông như thế này:

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

Sau đó, chỉ cần chạy tệp .js này ('node fileName.js' trong cmd).

Thêm chi tiết tại đây


9
Có cách nào để đạt được thử nghiệm yêu cầu đồng thời với người đưa thư ui mà không cần sử dụng công cụ dòng lệnh newman không?
phil

Vì vậy, đã thử mã này và nó hoạt động để chạy bộ sưu tập SAME_A; nhưng nếu tôi có 2 bộ sưu tập khác nhau (bộ sưu tập_A và bộ sưu tập_B) mà tôi muốn chạy song song thì sao? Làm thế nào các tham số tùy chọn thay đổi? Bạn đã thử nó chưa? Những gì phòng thí nghiệm cung cấp ngoài hộp dường như là nhiều hơn cho trường hợp sử dụng thử nghiệm tải nhưng tôi muốn chạy song song nhiều bộ sưu tập; như bộ sưu tập_A và bộ sưu tập B song song; bất kỳ ý tưởng?
bồ nông

4
Tôi muốn viết một tập lệnh bash hơn tập tin .js đó
ttfreeman

4

Không chắc chắn nếu mọi người vẫn đang tìm kiếm các giải pháp đơn giản cho việc này, nhưng bạn có thể chạy nhiều phiên bản của "Bộ sưu tập chạy" trong Postman. Chỉ cần tạo một người chạy với một số yêu cầu và nhấp vào nút "Chạy" nhiều lần để hiển thị nhiều trường hợp.


Điều này sẽ không chạy yêu cầu song song như được hỏi trong câu hỏi
Vaibhav Sharma

4
Vaibhav; mỗi phiên bản chạy thử sẽ chạy song song.
RJFalconer

4

Chạy song song tất cả Bộ sưu tập trong một thư mục:

'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

Trong trình chạy bộ sưu tập của người đưa thư, bạn không thể thực hiện các yêu cầu không đồng bộ đồng thời, thay vào đó, hãy sử dụng Apache JMeter . Nó cho phép bạn thêm nhiều luồng và thêm bộ đếm thời gian đồng bộ hóa với nó



-7

Đối với cách tiếp cận GUI đơn giản hơn, hãy mở mọi yêu cầu bạn muốn chạy trong các tab khác nhau. Sau đó, bạn có thể đi đến mỗi tab một lần nhấp chạy.


1
Câu hỏi sắp chạy các yêu cầu song song
Vaibhav Sharma

Đó là song song chỉ hơi so le.
Ronald

2
Nếu yêu cầu của bạn mất 0,05 giây, thì chúc may mắn chuyển đổi tab và nhấp vào nút cùng lúc ....
Justinas

Điều này không đơn giản hoặc hợp lý.
ChiefTwoP Pencil
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.