Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-59288

Not able to connect to RobotFramework-SikuliLibrary

    Details

    • Type: Bug
    • Status: Closed (View Workflow)
    • Priority: Major
    • Resolution: Fixed
    • Component/s: python-plugin, robot-plugin
    • Environment:
    • Similar Issues:

      Description

      Robot Framework along with the Sikuli Library are being used to automate some GUI testing. Jenkins has been chose to help automate this process as well as the rest of our CI pipeline. Robot Framework and the Sikuli Library work completely fine via the CLI.

      My Jenkins build executes shell commands to run my robot script. The failed build describes an issue with connecting to the remote server Java process:

      Traceback (most recent call last):
      13:54:15  File "/tmp/jenkins6279614729324543791.py", line 3, in <module>
      13:54:15    remote.get_keyword_names()
      13:54:15  File "/usr/lib/python2.7/site-packages/robot/libraries/Remote.py", line 74, in get_keyword_names
      13:54:15    % (self._uri, error))
      13:54:15 RuntimeError: Connecting remote server at[ http://127.0.0.1:10000/|http://127.0.0.1:10000/] failed: <Fault 0: 'Failed to invoke method get_keyword_names in class org.robotframework.remoteserver.servlet.ServerMethods: java.lang.RuntimeException'>
      

       

      Test case 1: I simplified the build to only start the java process (e.g java -jar /<path to Sikuli library>/SikuliLibrary.jar 10000 /<Captured Images path>) and then execute a few python lines to reach the remote server to the SikuliLibrary, as show below.

      from robot.libraries.Remote import Remote
      remote = Remote('http://127.0.0.1:10000/')
      remote.get_keyword_names()
      

      The build still failed.

      Test Case 2: I started the server via Jenkins and ran the python lines via CLI. I was met with the same runtime error.

      Test Case 3: Reversing roles, I started the server via CLI and ran a python script via Jenkins. The build was successful.

      Test Case 4: Of course running the server and python commands via CLI resulted in a success. The result via CLI would display all the keywords associated to the Sikuli library, as shown below.

      ['openApplication', 'closeApplication', 'imageCount', 'changeScreenId', 'captureRegion', 'selectRegion', 'clickIn', 'setRoi', 'highlightRoi', 'mouseDown', 'getExtendedRegionFrom', 'getNumberOfScreens', 'addImagePath', 'wheelDown', 'getScreenCoordinates', 'getCurrentScreenId', 'clearAllHighlights', 'waitForImage', 'waitUntilScreenContain', 'getText', 'inputText', 'doubleClickIn', 'click', 'captureScreen', 'doubleClick', 'screenShouldContain', 'clearHighlight', 'mouseUp', 'readTextFromRegion', 'pasteText', 'setCaptureFolder', 'clickNth', 'waitForMultipleImages', 'dragAndDrop', 'highlight', 'highlightRegion', 'typeWithModifiers', 'pressSpecialKey', 'rightClickIn', 'resetRoi', 'captureRoi', 'clickRegion', 'mouseMove', 'waitUntilScreenNotContain', 'wheelUp', 'rightClick', 'setTimeout', 'dragAndDropByOffset', 'screenShouldNotContain', 'exists', 'getImageCoordinates', 'setCaptureMatchedImage', 'removeImagePath', 'getMatchScore', 'setShowActions', 'setOcrTextRead', 'setSlowMotionDelay', 'setWaitScanRate', 'setMinSimilarity', 'setMoveMouseDelay', 'stop_remote_server']

       

      Ultimately, I am just trying to run a robot script that tries to pull the SikuliLibrary. However, the python script for get_keyword_names cannot be invoked. 

      Thank you for taking the time to read.

        Attachments

          Activity

          Hide
          antle Anthony Le added a comment -

          XVFB was the solution. Sikuli requires a frame buffer to allow the connection.

          If you run a Jenkins build that involves Robot Framework with the Sikuli Library, then XVFB will resolve connection issues.

          Show
          antle Anthony Le added a comment - XVFB was the solution. Sikuli requires a frame buffer to allow the connection. If you run a Jenkins build that involves Robot Framework with the Sikuli Library, then XVFB will resolve connection issues.

            People

            • Assignee:
              antle Anthony Le
              Reporter:
              antle Anthony Le
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: