RobotFrameWork引⽤java库(jar⽂件)该⽅法是⽤python⾃⼰扩建库,在扩建库的时候⽤python引⽤⾃有jar包中的⽅法
⼆、创建jar包
我得jar包是放在项⽬⽂件加下⾯的/javalibs/⽂件夹下的,你⾃⼰可以随意,引⽤时注意位置就⾏
//⾃⼰写jar包,我的jar包内容如下
package test.authentication;
public class Execute02 {
//这⾥的⽅法名不能修饰为静态的,否则在python中调⽤时报错
public String start(String timekey1,String cname1,String vcode1){
return timekey1+cname1+vcode1
}
}
三、创建python库,在python库函数中引⽤jar包
#coding=utf-8
from jpype import*
import os.path
class liveauth(object):
def__init__(self):
pass
def getliveparam(self,timekey='',cname='',vcode=''):
#这⾥传参,参数三个timekey,cname,vcode
#这⾥传参可以先写默认值,我这⾥的默认值都是''空,有默认值时robotframework调⽤时可以不传参
#也可以不要默认值,不哟啊默认值在调⽤时必须传参,不然会报错,
#不要默认值上⾯该这样写:getliveparam(self,timekey,cname,vcode)
"""
传⼊三个值timekey、cname、liveurl并返回加密值base64param
查看注释
Example:
| ${result} | getliveparam | timekey | cname | vcode |
"""
#获取jar包地址,os.path.abspath('.')返回当前⼯作地址,也就是robotframework项⽬⽂件夹
home = os.path.abspath('.')
jarpath = os.path.join(os.path.abspath('.'), home+'/javalibs/Execute02.jar')
java调用python模型#上⾯那句也可以如下写成绝对地址,写成绝对地址时可以将jar包放在任意位置,但jar位置变了这⾥就得改#jarpath = os.path.join(os.path.abspath('.'), 'D:/test/javalibs/Execute02.jar')
#启动java虚拟机
if not isJVMStarted():#如果jvm没启动才执⾏启动操作
startJVM(getDefaultJVMPath(),"-ea","-Djava.class.path=%s"% jarpath)
#获取类,这⾥是包名和类名,报名从第⼀层开始写
Execut = JClass('test.authentication.Execute02')
# 或者通过JPackage引⽤Test类
# com = JPackage('test.authentication').Execute02()
#调⽤相关⽅法函数
t = Execut()
res = t.start(timekey,cname,vcode)
#返回从java⽅法中获取的值
return res
#⽤完后记得关闭java虚拟机,当然python程序退出时JVM也会⾃动关闭
shutdownJVM()
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论