Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在node.js中获得运行进程计数_Javascript_Node.js_Selenium - Fatal编程技术网

Javascript 如何在node.js中获得运行进程计数

Javascript 如何在node.js中获得运行进程计数,javascript,node.js,selenium,Javascript,Node.js,Selenium,情景: 我有一个可以被多个用户访问的服务器。ex服务器: 它有一个按钮,点击它,它运行一个selenium自动化测试 我想获取多个用户当前运行的测试列表 例如:如果有5个用户访问该服务器,并点击该按钮2次,则表示运行的自动测试为10次 如何在node.js express中获得高于计数的值,比如有多少进程正在运行 My server.js: var express = require('express'); var app = express(); app.get('/', function

情景:

我有一个可以被多个用户访问的服务器。ex服务器:

它有一个按钮,点击它,它运行一个selenium自动化测试

我想获取多个用户当前运行的测试列表

例如:如果有5个用户访问该服务器,并点击该按钮2次,则表示运行的自动测试为10次

如何在node.js express中获得高于计数的值,比如有多少进程正在运行

My server.js:

var express = require('express');
var app = express();


app.get('/', function (req, res) {
   res.send(
    '<form action="/server" method="POST">' +
    '  <input type="submit" name="server" value="Run Script" />' +
    '</form>');
});

app.post('/server', function (req, res) {
  var fork = require('child_process').fork;
  var child = fork('./test');
  res.send('Test Started....');

});

var server = app.listen(8081, function () {
   var host = server.address().address
   var port = server.address().port

   console.log("Example app listening at http://%s:%s", host, port)

您可以维护单击按钮的全局计数

global.total_tests = 0; // note this line
var express = require('express');
var app = express();


app.post('/server', function (req, res) {
    var fork = require('child_process').fork;
    var child = fork('./test');
    res.send('Test Started....');
    total_tests++; // note this line
});
我希望这有帮助。
谢谢。

未测试,但以下内容应与您的测试结果类似

不确定您是否要访问计数器,因此执行了另一个路由/计数器,以将当前计数器回声输出

var express = require('express');
var app = express();

var counter = 0;


app.get('/', function (req, res) {
   res.send(
    '<form action="/server" method="POST">' +
    '  <input type="submit" name="server" value="Run Script" />' +
    '</form>');
});

app.get('/counter', function (req, res) {
  res.end("Counter = " + counter);
});

app.post('/server', function (req, res) {
  var fork = require('child_process').fork;
  var child = fork('./test');
  counter ++;
  child.on("close", function () { counter --; });
  res.send('Test Started....');
});

var server = app.listen(8081, function () {
   var host = server.address().address
   var port = server.address().port

   console.log("Example app listening at http://%s:%s", host, port)

我建议按照中的建议使用。

当您使用fork increase counter创建时,只需保留一个计数即可,。当您的child.on“close”被激活时,减少计数器。@Keith-请给我示例代码。那会有很大帮助。