บุรุษไปรษณีย์: วิธีการร้องขอหลายรายการในเวลาเดียวกัน


182

ฉันต้องการข้อมูล POST จากส่วนขยายบุรุษไปรษณีย์ของ Google Chrome

ฉันต้องการ 10 คำขอด้วยข้อมูลที่แตกต่างกันและควรจะพร้อมกัน

เป็นไปได้ไหมที่จะทำเช่นนี้ในบุรุษไปรษณีย์

ถ้ามีใครสามารถอธิบายให้ฉันฟังได้ว่าสิ่งนี้จะเกิดขึ้นได้อย่างไร?

คำตอบ:


182

ฉันเดาว่าไม่มีคุณสมบัติดังกล่าวในบุรุษไปรษณีย์ที่จะเรียกใช้การทดสอบพร้อมกัน

ถ้าฉันเป็นคุณฉันจะพิจารณาApache jMeterที่ใช้ตรงกับสถานการณ์ดังกล่าว

เกี่ยวกับบุรุษไปรษณีย์สิ่งเดียวที่สามารถตอบสนองความต้องการของคุณได้มากขึ้นคือ - บุรุษไปรษณีย์ ป้อนคำอธิบายรูปภาพที่นี่ มีคุณสามารถระบุรายละเอียด:

  • จำนวนการวนซ้ำ
  • อัปโหลดไฟล์ csv พร้อมข้อมูลสำหรับการทดสอบการทำงานอื่น ๆ

วิ่งจะไม่เกิดขึ้นพร้อมกันเพียงติดต่อกัน

หวังว่าจะช่วย แต่พิจารณา jMeter (คุณจะรักมัน)


7
ไซต์ในความคิดเห็นของ Ray ได้ย้ายไปยัง Wordpress.com แล้วนี่คือลิงค์ที่ใช้งานได้
Aaroninus

93

บุรุษไปรษณีย์ไม่ได้ทำเช่นนั้น แต่คุณสามารถเรียกใช้หลายcurlคำขอแบบอะซิงโครนัสใน Bash:

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

โปรดจำไว้ว่าให้เพิ่มคำสั่ง&หลังจากแต่ละคำขอซึ่งหมายความว่าคำขอนั้นควรทำงานเป็น async

อย่างไรก็ตามบุรุษไปรษณีย์สามารถสร้างข้อมูลโค้ดสำหรับคำขอของคุณ: https://learning.getpostman.com/docs/postman/sending_api_requests/generate_code_snippets/


3
นี่เป็นสิ่งที่ยอดเยี่ยม - เช่นการทดสอบที่ง่ายและยอดเยี่ยมสำหรับการทำงานของ async จริง
ghukill

นี่คือทางออกที่ดีที่สุด
Shobi

39

ฉันไม่รู้ว่าคำถามนี้ยังคงเกี่ยวข้องอยู่หรือไม่ แต่ตอนนี้มีความเป็นไปได้ที่บุรุษไปรษณีย์จะ พวกเขาเพิ่มเมื่อไม่กี่เดือนที่ผ่านมา

สิ่งที่คุณต้องมีก็คือสร้างไฟล์. js อย่างง่ายและรันผ่าน node.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 นี้ ('node fileName.js' ในหน่วย cmd)

รายละเอียดเพิ่มเติมที่นี่


9
มีวิธีการทดสอบคำขอพร้อมกันกับบุรุษไปรษณีย์ UI ด้วยโดยไม่ใช้เครื่องมือบรรทัดคำสั่ง newman หรือไม่
phil

ลองใช้รหัสนี้และใช้เพื่อเรียกใช้ SAME collection_A; แต่ถ้าฉันมีคอลเล็กชั่น 2 ชุดที่แตกต่างกัน (collection_A และ collection_B) ที่ฉันต้องการรันพร้อมกัน พารามิเตอร์ตัวเลือกจะเปลี่ยนแปลงอย่างไร คุณลองสิ่งนี้แล้วหรือยัง แล็บนั้นให้อะไรได้นอกกรอบดูเหมือนจะมีมากกว่าสำหรับกรณีทดสอบการใช้โหลด แต่ฉันต้องการเรียกใช้หลายคอลเลกชันพร้อมกัน เช่น collection_A และ collection B แบบขนาน ความคิดใด ๆ
นกกระทุง

4
ฉันอยากจะเขียนสคริปต์ทุบตีมากกว่าไฟล์. js
ttfreeman

4

ไม่แน่ใจว่าผู้คนยังคงมองหาวิธีแก้ปัญหาแบบง่าย ๆ อยู่หรือไม่ แต่คุณสามารถเรียกใช้ "คอลเลคชันนักวิ่ง" ในหลาย ๆ กรณีในบุรุษไปรษณีย์ เพียงแค่สร้างนักวิ่งด้วยคำขอและคลิกที่ปุ่ม "เรียกใช้" หลาย ๆ ครั้งเพื่อแสดงหลายอินสแตนซ์


สิ่งนี้จะไม่เรียกใช้คำขอแบบขนานตามที่ถามในคำถาม
Vaibhav Sharma

4
Vaibhav; อินสแตนซ์ของนักทดสอบแต่ละคนจะทำงานแบบขนาน
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

ในคอลเลคชั่นของบุรุษไปรษณีย์คุณไม่สามารถทำการร้องขอแบบอะซิงโครนัสได้พร้อมกันดังนั้นให้ใช้Apache JMeterแทน อนุญาตให้คุณเพิ่มหลายเธรดและเพิ่มตัวจับเวลาซิงโครไนซ์


2

หากคุณทำตามคำขอของ GET และต้องการโซลูชันที่เรียบง่ายจากภายในเบราว์เซอร์ Chrome เพียงติดตั้งส่วนขยาย "เปิดหลาย URL":

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

ฉันเพิ่งวิ่งไปแล้ว 1,500 URL ต่อครั้งทำให้ google ล่าช้าเล็กน้อย แต่ใช้งานได้


-7

สำหรับแนวทาง GUI ที่ง่ายกว่าให้เปิดทุกคำขอที่คุณต้องการเรียกใช้ในแท็บต่างๆ จากนั้นคุณสามารถไปที่แต่ละแท็บได้ด้วยคลิกเดียว


1
คำถามกำลังจะเรียกใช้คำขอแบบขนาน
Vaibhav Sharma

มันขนานกันเพียงเซเล็กน้อย
Ronald

2
หากคำขอของคุณใช้เวลา 0.05 วินาทีขอให้โชคดีเปลี่ยนแท็บและคลิกปุ่มในเวลาเดียวกัน ....
Justinas

นี่ไม่ใช่เรื่องง่ายหรือสมเหตุสมผล
ChiefTwoPencils
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.