当前位置: 首页 > 面试题库 >

RemoteServer-如何在Robotframework中使用Java关键字?

贺懿轩
2023-03-14
问题内容

我正在尝试实现JavaLibCore在robotframework中使用Java方法。我遵循了本教程:https :
//blog.codecentric.de/en/2016/01/robot-framework-tutorial-2016-remote-server-
keywords-in-java/

RemoteServer使用的类如下:https
:
//github.com/robotframework/jrobotremoteserver/blob/master/src/main/java/org/robotframework/remoteserver/RemoteServer.java

您能帮我找到解决以下错误的方法吗?非常感谢。

爪哇

关键字类别

package keywords;
import org.robotframework.javalib.annotation.ArgumentNames;
import org.robotframework.javalib.annotation.RobotKeyword;
import org.robotframework.javalib.annotation.RobotKeywords;

@RobotKeywords
public class MyKeyword {

    @RobotKeyword("Print Message")
    @ArgumentNames({"message"})
    public void printMessage(String message) {
        System.out.println("My message is : " + message);
    }

}

主班

import org.robotframework.javalib.library.AnnotationLibrary;
import org.robotframework.remoteserver.RemoteServer;

public class KeywordRemoteLibrary extends AnnotationLibrary {

    public static void main(String[] args) {
        RemoteServer.configureLogging();
        RemoteServer server = new RemoteServer("localhost", 8271);
        server.putLibrary("/keywords", KeywordRemoteLibrary.class);
        try {
            server.start();
        }
        catch(Exception e) {
            e.printStackTrace();
        }
    }

}

安慰

17:11:26.290 [main] INFO  org.eclipse.jetty.util.log - Logging initialized @1006ms to org.robotframework.remoteserver.logging.Jetty2Log4J
17:11:26.361 [main] INFO  org.robotframework.remoteserver.RemoteServer - Mapped path /keywords to library java.lang.Class.
17:11:26.362 [main] INFO  org.robotframework.remoteserver.RemoteServer - Robot Framework remote server starting
17:11:26.364 [main] INFO  org.eclipse.jetty.server.Server - jetty-9.4.25.v20191220; built: 2019-12-20T17:00:00.294Z; git: a9729c7e7f33a459d2616a8f9e9ba8a90f432e95; jvm 11.0.2+9
17:11:26.435 [main] INFO  org.eclipse.jetty.server.handler.ContextHandler - Started o.e.j.s.ServletContextHandler@421bba99{/,null,AVAILABLE}
17:11:26.460 [main] INFO  org.eclipse.jetty.server.AbstractConnector - Started ServerConnector@379614be{HTTP/1.1,[http/1.1]}{127.0.0.1:8271}
17:11:26.461 [main] INFO  org.eclipse.jetty.server.Server - Started @1178ms
17:11:26.461 [main] INFO  org.robotframework.remoteserver.RemoteServer - Robot Framework remote server started on port 0.

机器人框架代码

*** Settings ***
Library    Remote    http://localhost:8271

*** Test Cases ***
First Test Case
    Print Message    test

但是我在robotframework脚本上遇到错误:

在“ http:// localhost:8271 ”位置下不知道“远程”库。无法连接。


问题答案:

请在下面找到我的解决方案:

public class KeywordRemoteLibrary extends AnnotationLibrary {

static List<String> includePatterns = new ArrayList<String>() {{
    add("keywords/*.class");
}};

public KeywordRemoteLibrary() {
    super(includePatterns);
}

public static void main(String[] args) {
    RemoteServer server = new RemoteServer("127.0.0.1", 8270);
    server.putLibrary("/RPC2", new KeywordRemoteLibrary());
    try {
        server.start();
    }
    catch(Exception e) {
        e.printStackTrace();
    }
}
}


 类似资料:
  • 问题内容: 我读过“ 何时在Java中使用’volatile’? ”,但我仍然感到困惑。我怎么知道何时应该将变量标记为volatile?如果我弄错了,或者在需要的东西上省略了挥发物,或者在不需要的东西上放置了挥发物,该怎么办?确定多线程代码中哪些变量应该是易变的,有什么经验法则? 问题答案: 当你想让一个多线程访问一个成员变量但不需要复合原子性(不确定这是否是正确的术语)时,基本上就可以使用它。

  • 问题内容: 当ai遇到关键字时,我正在研究Java中的方法重写。在Internet和其他来源上进行了大量搜索之后,我得出结论,当实例变量的名称与构造函数的参数相同时,将使用关键字。我是对还是错? 问题答案: 是实例中当前实例的别名或名称。它对于消除实例变量与局部变量(包括参数)的区别很有用,但它本身可以用来简单地引用成员变量和方法,调用其他构造函数重载或简单地引用 实例 。适用用途的一些示例(并非

  • 问题内容: 我试图了解java关键字的this实际作用。我一直在阅读Sun的文档,但对于this实际操作仍然不甚了解。 java 关键字 问题答案: 关键字是对当前对象的引用。 另一种思考方式是关键字就像你用来引用自己的人称代词。对于相同的概念,其他语言使用不同的词。VB使用Me和Python约定(因为Python不使用关键字,只是每个方法的隐式参数)将被使用。 如果要引用本质上属于你的对象,你将

  • 问题内容: 我已经读过“ raise”的正式定义,但是我仍然不太明白它的作用。 简单来说,什么是“筹款”? 示例用法将有所帮助。 问题答案: 它有2个目的。 [yentup给出了第一个。 它用于引发错误。 它用于引发您自己的错误。 第二个方法是在异常处理程序中重新引发 当前 异常,以便可以在调用堆栈中进一步处理该异常。

  • 问题内容: 创建表时如何使用关键字? 假设我要创建两个表,并且我希望业余爱好表ID引用人员的ID? 我怎么做? 问题答案: 与此类似,创建兴趣表:

  • 考虑: 这段代码给出了一个错误,我理解为“有损转换”,但如果我在代码中使用关键字,如下所示,它工作正常。 在这里是如何工作的,降级是如何发生的?