-
Bug
-
Resolution: Fixed
-
Major
-
Firefox: 60.8.0esr
RHEL: 3.10.0-1062.1.1.el7.x86_64
Python: 2.7.16
Java: 1.8.0_222
Jenkins: 2.194
Plugins:
Trilead API Plugin
Gradle Plugin
Folders Plugin
Branch API Plugin
Oracle Java SE Development Kit Installer Plugin
JavaScript GUI Lib: Handlebars bundle plugin
Script Security Plugin
Docker Commons Plugin
Structs Plugin
Pipeline: Step API
SCM API Plugin
Docker Pipeline
Pipeline: API
JUnit Plugin
JavaScript GUI Lib: Moment.js bundle plugin
Command Agent Launcher Plugin
bouncycastle API Plugin
Pipeline: Basic Steps
OWASP Markup Formatter Plugin
Token Macro Plugin
Pipeline: Stage View Plugin
Build Timeout
Credentials Plugin
Plain Credentials Plugin
Pipeline: Build Step
SSH Credentials Plugin
Credentials Binding Plugin
Timestamper
Pipeline: Model API
Pipeline: Supporting APIs
Durable Task Plugin
PAM Authentication plugin
Pipeline: Nodes and Processes
Matrix Project Plugin
Resource Disposer Plugin
GitHub API Plugin
Workspace Cleanup Plugin
Ant Plugin
JavaScript GUI Lib: ACE Editor bundle plugin
JSch dependency plugin
JavaScript GUI Lib: jQuery bundles (jQuery and jQuery UI) plugin
Pipeline: SCM Step
Git plugin
Pipeline: Groovy
Pipeline: Job
Apache HttpComponents Client 4.x API Plugin
Git client plugin
Display URL API
GitHub plugin
Mailer Plugin
Pipeline: REST API Plugin
Pipeline: Milestone Step
Jackson 2 API Plugin
Pipeline: Input Step
GIT server Plugin
Pipeline: Stage Step
Pipeline Graph Analysis Plugin
Pipeline: Declarative Extension Points API
Pipeline: Shared Groovy Libraries
Pipeline: Multibranch
Authentication Tokens API Plugin
Pipeline: Stage Tags Metadata
Pipeline: Declarative Agent API
Pipeline: Declarative
Lockable Resources plugin
Pipeline
GitHub Branch Source Plugin
Pipeline: GitHub Groovy Libraries
MapDB API Plugin
Subversion Plug-in
SSH Slaves plugin
Matrix Authorization Strategy Plugin
LDAP Plugin
Email Extension Plugin
Javadoc Plugin
Maven Integration plugin
Run Condition Plugin
Conditional BuildStep
Parameterized Trigger plugin
Build Pipeline Plugin
Mercurial plugin
SSH plugin
Pyenv Pipeline Plugin
WMI Windows Agents Plugin
ruby-runtime
External Monitor Job Type Plugin
pyenv plugin
Python Plugin
Python Wrapper Plugin
slave-status
Slave Utilization Plugin
Slave SetupPlugin
Slave squatter plugin
SSH Agent Plugin
JAXB plugin
Google APIs Client Library for Jenkins
jQuery plugin
Environment Dashboard Plugin
Bitbucket Plugin
Jython Plugin
Firefox: 60.8.0esr RHEL: 3.10.0-1062.1.1.el7.x86_64 Python: 2.7.16 Java: 1.8.0_222 Jenkins: 2.194 Plugins: Trilead API Plugin Gradle Plugin Folders Plugin Branch API Plugin Oracle Java SE Development Kit Installer Plugin JavaScript GUI Lib: Handlebars bundle plugin Script Security Plugin Docker Commons Plugin Structs Plugin Pipeline: Step API SCM API Plugin Docker Pipeline Pipeline: API JUnit Plugin JavaScript GUI Lib: Moment.js bundle plugin Command Agent Launcher Plugin bouncycastle API Plugin Pipeline: Basic Steps OWASP Markup Formatter Plugin Token Macro Plugin Pipeline: Stage View Plugin Build Timeout Credentials Plugin Plain Credentials Plugin Pipeline: Build Step SSH Credentials Plugin Credentials Binding Plugin Timestamper Pipeline: Model API Pipeline: Supporting APIs Durable Task Plugin PAM Authentication plugin Pipeline: Nodes and Processes Matrix Project Plugin Resource Disposer Plugin GitHub API Plugin Workspace Cleanup Plugin Ant Plugin JavaScript GUI Lib: ACE Editor bundle plugin JSch dependency plugin JavaScript GUI Lib: jQuery bundles (jQuery and jQuery UI) plugin Pipeline: SCM Step Git plugin Pipeline: Groovy Pipeline: Job Apache HttpComponents Client 4.x API Plugin Git client plugin Display URL API GitHub plugin Mailer Plugin Pipeline: REST API Plugin Pipeline: Milestone Step Jackson 2 API Plugin Pipeline: Input Step GIT server Plugin Pipeline: Stage Step Pipeline Graph Analysis Plugin Pipeline: Declarative Extension Points API Pipeline: Shared Groovy Libraries Pipeline: Multibranch Authentication Tokens API Plugin Pipeline: Stage Tags Metadata Pipeline: Declarative Agent API Pipeline: Declarative Lockable Resources plugin Pipeline GitHub Branch Source Plugin Pipeline: GitHub Groovy Libraries MapDB API Plugin Subversion Plug-in SSH Slaves plugin Matrix Authorization Strategy Plugin LDAP Plugin Email Extension Plugin Javadoc Plugin Maven Integration plugin Run Condition Plugin Conditional BuildStep Parameterized Trigger plugin Build Pipeline Plugin Mercurial plugin SSH plugin Pyenv Pipeline Plugin WMI Windows Agents Plugin ruby-runtime External Monitor Job Type Plugin pyenv plugin Python Plugin Python Wrapper Plugin slave-status Slave Utilization Plugin Slave SetupPlugin Slave squatter plugin SSH Agent Plugin JAXB plugin Google APIs Client Library for Jenkins jQuery plugin Environment Dashboard Plugin Bitbucket Plugin Jython Plugin
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.