Skip to content

Robot Framework remote server written in node.js

Notifications You must be signed in to change notification settings

ghbolivar/rfremoteserver

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

54 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Build Status

rfremoteserver

NPM NPM

Robot Framework Remote Server written in Node.js, loosely based on https://github.com/mkorpela/RoboZombie and https://github.com/comick/node-robotremoteserver

Installation

npm install rfremoteserver

Usage

Create an Object like the following and pass it to an instance of RemoteServer.

var RemoteServer = require('rfremoteserver');

var SimpleKeywordLibrary = {
  get_files_in_directory: {
    docs: "returns files in a directory",
    args: ["dir"],
    impl: function(params, callback){
      var self = this;
      var ret = {}
      fs.readdir('.', function(err, files){
        ret.return = err || files;
        if (err) return self.fail(ret, callback);
        return RemoteServer.pass(ret, callback)
      });
    }
  }
};

var server = new RemoteServer({host: "localhost", port: 8270}, [SimpleKeywordLibrary]);
server.start_remote_server();

In the above example, the library is just a JavaScript object with each property being another JavaScript object. These properties are the keywords. They are also Objects and need to have three properties.

  • docs: String contain the keyword documentation

  • args: Array of the arguments that keyword accepts. use ["*args"] if your keyword accepts more than one argument.

  • impl: The actual keyword function. This function is what gets bound as an xmlrpc method callback hence its args are always params & callback. This function will need to call the callback function with an object that contains the following properties

      { 
        return: 'a return falue',
        status: 'PASS',    // or FAIL
        output: 'stdout'
      }
    

    There is two helper functions on RemoteServer pass and fail that set the status property

RemoteServer instance option Object should contain the following properties

  • host : hostname
  • port : port number to start listening on
  • timeout : the amount of time before the server forcibly timesout the keyword

Example test case file for Robot Framework to use the above remote keyword library

*** Variables ***
${PORT}    8270


*** Settings ***
Library    Remote    http://localhost:${PORT}

*** Test Cases ***

Test Keyword
    ${ret}=   File Should Exist  ${CURDIR}  testcases.txt
    Should Contain   ${files}  test

About

Robot Framework remote server written in node.js

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 99.5%
  • Makefile 0.5%