邮差:如何同时提出多个要求

我想POST数据从邮递员谷歌Chrome扩展。

我想用不同的数据提出10个请求,它应该是在同一时间。

在Postman中可以这样做吗?

如果是,谁能给我解释一下这是如何实现的?

456381 次浏览

我猜在postman中没有运行并发测试的特性。

如果我是你,我会考虑Apache jMeter,它正是用于这样的场景。

关于邮差,唯一能或多或少满足你需求的是——邮差跑手。 enter image description here 在这里您可以指定详细信息:

  • 迭代次数,
  • 上传包含不同测试运行数据的CSV文件等。

这些运行不是并发的,而是连续的。

希望这能有所帮助。但是一定要考虑jMeter(你会喜欢它的)。

我不知道这个问题是否还有意义,但是现在在《邮差》中存在这样的可能性。他们几个月前加的。

你所需要的只是创建一个简单的.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文件(在cmd中'node fileName.js')。

更多细节在这里

Postman不会这样做,但你可以在Bash中异步运行多个curl请求:

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

记住在每个请求之后添加&,这意味着请求应该作为异步作业运行。

但是,Postman可以为您的请求生成curl片段:https://learning.getpostman.com/docs/postman/sending_api_requests/generate_code_snippets/

在一个文件夹中并行运行所有Collection:

'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
});

在postman的collection runner中,你不能同时进行异步请求,所以使用Apache JMeter代替。它允许您添加多个线程并添加同步计时器

不确定人们是否还在寻找简单的解决方案,但您可以在Postman中运行“Collection Runner”的多个实例。只需创建一个带有一些请求的运行器,并多次单击“运行”按钮来调出多个实例。

如果你只做GET请求,你需要在你的Chrome浏览器中另一个简单的解决方案,只需安装“打开多个url”扩展:

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

我刚刚运行1500 url的一次,确实滞后谷歌一点,但它的工作。

最简单的方法是get =>谷歌Chrome“TALEND API TESTER" 去帮助+在创建场景中输入 ...或者点击这个链接=>https://help.talend.com/r/en-US/Cloud/api-tester-user-guide/creating-scenario < / p >

我能够同时发送几个POST API调用。

您可以运行postman Runner的多个实例,并在每个实例中使用不同的数据文件运行相同的收集。

Runner选项现在位于面板的右下方

enter image description here

如果您需要生成更多连续的请求(而不是快速单击SEND按钮)。你可以使用Runner。请注意这不是真的“平行请求”;发电机。

新建运行器标签

enter image description here

现在你可以“拖放”;你的请求来自Collection,并且只检查你想通过Runner生成的请求,设置10次迭代(生成10个请求)并延迟到0(以使它尽可能快)。

enter image description here