通过批处理文件运行Protractor

时间:2016-09-08 15:37:48

标签: batch-file selenium-webdriver cmd jasmine protractor

正如标题所示,我正在寻找一种通过批处理运行Protractor测试的方法,然后我会设置一个任务调度程序。我在这里发现了另一个与我的需求类似的问题,但它很快就结束了。

这是理想的情况:

  1. 计划任务启动运行webdriver服务器的批处理文件

    • 问题:一旦命令提示符打开并执行启动命令,我该如何打开第二个窗口才能启动到量角器命令?
  2. 该批处理文件A)调用以执行量角器配置的另一个批处理文件,如上所述。或者B)打开执行量角器命令的另一个命令提示符。

  3. 测试结束后,两个命令都会提示关闭。

  4. 我有超级非常基本的3行批处理来打开Web服务器但我仍然坚持下一步做什么来实际启动测试而不会破坏网络服务器。

    编辑:代码尝试

    包含

    的文件1
    cd "C:\Protractor\"
    call "C:\bat2.bat"
    webdriver-manager start
    

    File2包含

    START cmd /k
    cd "C:\Protractor\"
    protractor test.config.js
    

    此路由按预期打开了2个命令提示,但是当调用bat2时,它只会在第一个命令提示符下执行bat2函数,并且在第二个窗口中没有任何反应。一旦茉莉花规格在命令提示符1中超时,webdriver就会启动。根据线的流动理解。

    我也尝试将命令合并到一个文件中但获得相同的结果。我尝试过只使用一个命令提示符,但一旦webdriver启动服务器,就无法输入新命令。

    我想更简单的说,我如何在命令提示之间改变焦点并向每个命令发送相应的命令?

    有一个超出范围的第4步但是如果它很容易回答那么一切都会令人惊讶:在测试执行之后,本地会生成一个HTML报告文件。我想自动化将这些文件通过电子邮件发送到特定邮件组的过程。这是否可以通过批处理命令实现?

    提前感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

新版本的Protractor可以自己启动服务器。您无需创建单独的bat文件来启动服务器。

请参阅以下摘录自official Protractor documentation,其中显示了运行案例的各种选项。

1& 5将为你工作

exports.config = {
  // ---------------------------------------------------------------------------
  // ----- How to connect to Browser Drivers -----------------------------------
  // ---------------------------------------------------------------------------
  //
  // Protractor needs to know how to connect to Drivers for the browsers
  // it is testing on. This is usually done through a Selenium Server.
  // There are five options - specify one of the following:
  //
  // 1. seleniumServerJar - to start a standalone Selenium Server locally.
  // 2. seleniumAddress - to connect to a Selenium Server which is already
  //    running.
  // 3. sauceUser/sauceKey - to use remote Selenium Servers via Sauce Labs.
  // 4. browserstackUser/browserstackKey - to use remote Selenium Servers via BrowserStack.
  // 5. directConnect - to connect directly to the browser Drivers.
  //    This option is only available for Firefox and Chrome.

只需使用jar location&配置Protractor conf.js即可。端口详细信息,它将创建一个本地服务器并执行案例

// ---- 1. To start a standalone Selenium Server locally ---------------------
  // The location of the standalone Selenium Server jar file, relative
  // to the location of this config. If no other method of starting Selenium
  // Server is found, this will default to
  // node_modules/protractor/selenium/selenium-server...
  seleniumServerJar: null,
  // Can be an object which will be passed to the SeleniumServer class as args.
  // See a full list of options at
  // https://github.com/SeleniumHQ/selenium/blob/master/javascript/node/selenium-webdriver/remote/index.js
  // If you specify `args` or `port` in this object, it will overwrite the values
  // set via the deprecated config values `seleniumPort` and `seleniumArgs`.
  localSeleniumStandaloneOpts: {
    // The port to start the Selenium Server on, or null if the server should
    // find its own unused port.
    port: null,
    // Additional command line options to pass to selenium. For example,
    // if you need to change the browser timeout, use
    // seleniumArgs: ['-browserTimeout=60']
    args: []
  },

只要做到这一点,你应该都很好

START cmd /k
cd "C:\Protractor\"
protractor test.config.js