Cartero: cómo hacer múltiples solicitudes al mismo tiempo


182

Quiero PUBLICAR datos de la extensión Postman Google Chrome.

Quiero hacer 10 solicitudes con datos diferentes y debería ser al mismo tiempo.

¿Es posible hacer eso en Postman?

En caso afirmativo, ¿alguien puede explicarme cómo se puede lograr esto?

Respuestas:


182

Supongo que no hay tal característica en cartero como para ejecutar pruebas concurrentes.

Si fuera usted, consideraría Apache jMeter, que se usa exactamente para tales escenarios.

Con respecto a Postman, lo único que podría satisfacer más o menos tus necesidades es Postman Runner. ingrese la descripción de la imagen aquí Allí puede especificar los detalles:

  • número de iteraciones,
  • cargar el archivo csv con datos para diferentes ejecuciones de prueba, etc.

Las corridas no serán concurrentes, solo consecutivas.

Espero que ayude. Pero considera jMeter (te encantará).


77
El sitio en el comentario de Ray ha migrado desde entonces a Wordpress.com, aquí hay un enlace de trabajo
Aaroninus

93

Postman no hace eso, pero puede ejecutar varias curlsolicitudes de forma asincrónica en Bash:

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

Recuerde agregar un &después de cada solicitud, lo que significa que la solicitud debe ejecutarse como un trabajo asíncrono.

Sin embargo, Postman puede generar fragmentos curl para su solicitud: https://learning.getpostman.com/docs/postman/sending_api_requests/generate_code_snippets/


3
Esto es brillante: una prueba tan simple y excelente para el verdadero comportamiento asíncrono.
ghukill

Esta es la mejor solución
Shobi

39

No sé si esta pregunta sigue siendo relevante, pero existe tal posibilidad en Postman ahora. Lo agregaron hace unos meses.

Todo lo que necesita es crear un archivo .js simple y ejecutarlo a través de node.js. Se parece a esto:

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

Luego simplemente ejecute este archivo .js ('node fileName.js' en cmd).

Más detalles aquí


9
¿Hay alguna manera de lograr pruebas de solicitud concurrentes con la interfaz de usuario del cartero también sin usar la herramienta de línea de comandos newman?
Phil

Así que probé este código y funcionó para ejecutar SAME collection_A; pero ¿qué pasa si tengo 2 colecciones diferentes (colección_A y colección_B) que quiero ejecutar en paralelo? ¿Cómo cambiaría el parámetro de opciones? ¿Has probado esto? Lo que ese laboratorio proporciona de fábrica parece ser más para un caso de uso de prueba de carga, pero quiero ejecutar varias colecciones en paralelo; como colección_A y colección B en paralelo; ¿alguna idea?
pelican

44
Preferiría escribir un script bash que ese archivo .js
ttfreeman

4

No estoy seguro de si la gente sigue buscando soluciones simples para esto, pero puede ejecutar varias instancias del "Corredor de la colección" en Postman. Simplemente cree un corredor con algunas solicitudes y haga clic en el botón "Ejecutar" varias veces para que aparezcan varias instancias.


Esto no ejecutará una solicitud paralela como se hizo en la pregunta
Vaibhav Sharma

44
Vaibhav; cada instancia del corredor de prueba se ejecutará en paralelo.
RJFalconer

4

Ejecute todas las colecciones en una carpeta en paralelo:

'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

En el corredor de la colección del cartero no puede realizar solicitudes asincrónicas simultáneas, por lo tanto, utilice Apache JMeter . Le permite agregar múltiples hilos y agregar temporizador de sincronización



-7

Para un enfoque GUI más simple, abra cada solicitud que desee ejecutar en diferentes pestañas. Luego puede ir a cada pestaña con un clic.


1
La pregunta está a punto de ejecutar solicitudes paralelas
Vaibhav Sharma

Está en paralelo solo un poco escalonado.
Ronald

2
Si su solicitud tarda 0.05s, entonces buena suerte cambiando de pestaña y haciendo clic en el botón al mismo tiempo ...
Justinas

Esto no es simple ni razonable.
ChiefTwoPencils
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.