首页 > 解决方案 > 如何在具有 chromedriver 层的 AWS Lambda 上运行量角器测试

问题描述

我有 nodejs lambda 函数。我想对其进行量角器测试。

我的处理程序文件如下 -

'use strict';
module.exports.runtest = (event, context, callback) => {

  var npm = require('npm');
  var path = require('path');
  var childProcess = require('child_process');
  var args = ['conf.js'];

  npm.load({}, function() {
    var child = childProcess
    .fork(path.join(npm.root, 'protractor/bin/protractor'), args)
    .on('close', function(errorCode) {
      const response = {
        statusCode: 200,
        body: JSON.stringify({
          message: `Selenium Test executed on BrowserStack!  Child process Error Code: ${errorCode}`,
        }),
      };
      callback(null, response);
    });
    process.on('SIGINT', child.kill);
  });
};

当我调用我的 lambda 函数时,它会给出以下错误:

 [15:53:49] I/launcher - Running 1 instances of WebDriver [15:53:49] I/direct - Using ChromeDriver directly... [15:53:49] E/direct - Error code: 135 [15:53:49] E/direct - Error message: Could not find chromedriver at /var/task/node_modules/webdriver-manager/selenium/chromedriver_92.0.4515.107.exe. Run 'webdriver-manager update' to download binaries...

如何在 lambda 函数上运行“webdriver-manager update”?

如果没有,我如何使用我已经在我的 lambda 函数中添加的“chromedriver and headless chromium”层运行测试?

标签: node.jsaws-lambdaprotractorselenium-chromedriver

解决方案


推荐阅读