如何使用Java编写自定义的RobotFrameworkLib
本文包括2个章节
1、RobotFrdamwork中如何调用javaLib库
2、使用java编写自定义的Lib
我们来看一个jython语言来执行测试案例的例子。
${str}SetVariableaaBBccDDeeFF
${result}ConvertToUppercase${str}
log${result}
com.github.hi-fi
robotframework-dblibrary
3.1.1
ConnectToDatabase
com.mysql.jdbc.Driver
jdbc:mysql://localhost:3306/world
root
连接mysql数据库
oracle.jdbc.driver.OracleDriver
system
12345678
连接oracle数据库
org.h2.Driver
sa
连接h2数据库库
org.robotframework
javalib-core
1.2.1
String...aliasParam)throwsSQLException,InstantiationException,IllegalAccessException,ClassNotFoundException{
Class.forName(driverClassName).newInstance();
setConnection(DriverManager.getConnection(connectString,dbUser,dbPassword),alias);
}
0.9.1
com.github.ombre42
jrobotremoteserver
2.0-BETA
com.googlecode.robotframework-maven-plugin
robotframework-maven-plugin
1.1.1
test
run
BUILDING:True
src/test/resources
true
注解名称
使用描述
packagecom.example.keywords;importorg.robotframework.javalib.annotation.ArgumentNames;importorg.robotframework.javalib.annotation.RobotKeyword;importorg.robotframework.javalib.annotation.RobotKeywords;
并且这里我们通过RemoteServer的方式来启动。packagecom.example;importjava.io.IOException;importjava.io.InputStream;importjava.io.StringWriter;importjava.nio.charset.Charset;importorg.apache.commons.io.IOUtils;importorg.robotframework.javalib.library.AnnotationLibrary;importorg.robotframework.remoteserver.RemoteServer;publicclassMyRemoteLibraryextendsAnnotationLibrary{publicMyRemoteLibrary(){//关键字类的路径
}/***远程接口服务的启动
publicstaticvoidmain(String[]args)throwsException{
RemoteServer.configureLogging();
server.addLibrary(MyRemoteLibrary.class,8270);
server.start();
}/***定义Library的说明信息
*/
privateStringgetIntro(){try{
IOUtils.copy(introStream,writer,Charset.defaultCharset());returnwriter.toString();
}catch(Exceptione){thrownewRuntimeException(e);
Startingtest:RobotFrameworkTest1.TestSuite11.TestCase001
2018082210:04:23.328:INFO:ConvertrobotFrameworkToLowercase
2018082210:04:23.330:INFO:robotframework
2018082210:04:23.337:INFO:ConvertrobotframeworkToUppercase
2018082210:04:23.340:INFO:ROBOTFRAMEWORK
Endingtest:RobotFrameworkTest1.TestSuite11.TestCase001