RobotFrameWork引用java库(jar文件)

该方法是用python自己扩建库,在扩建库的时候用python引用自有jar包中的方法
纯Java实现robot远程库扩展
创建本地库或远程库看这里

下面正式开始
一、安装JPype
JPype是一个能够让 python 代码方便地调用 Java 代码的工具
下载地址:https://pypi.org/project/JPype1/(现在最新版本0.6.3)
pip安装:pip install JPype1
安装JPype之前需要先安装VCForPython27

二、创建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')
		#上面那句也可以如下写成绝对地址,写成绝对地址时可以将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()
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值