在python进行自动化测试的编码过程中,难免会遇到一些不能用python编写的功能,比如接口的加密,开发有现成的,python重写就显的非常麻烦,所以jpype就可以大显身手了,可以只要掌握了下面的方法,并且拿到开发接口的加密的jar包,就是万能的,希望对大家有所帮助。

#!/user/bin/env python
#coding=utf-8

from jpype import *

'''调用java的aes加密方法'''

def RCPEncryptUtil(json,token):

#java虚拟机的路径
jvmPath = r"E:\jdk1.8.0_65\jre\bin\server\jvm.dll"

#所有调用的方法的绝对路径
ext_classpath = r'E:\autoTest\rcpAutoTest_20190920\lib\xxx.jar'

#加载进方法,如果JVM没有启动,就启动JVM
if not isJVMStarted():           #这个判断非常重要,因为JVM在一个进程内就会自动关闭,后面在调用就会报错
    startJVM(jvmPath,"-ea", "-Djava.class.path=%s" % ext_classpath)
#完整的包名.类名
RcpClass = JClass("com.test.test")
rcp = RcpClass()
EncryptData= rcp.Method(json,token)

#shutdownJVM()
return EncryptData

while (True):

print(RCPEncryptUtil('mytest','mytest'))

用此方法得到的加密结果和开发使用java直接加密的结果一致,说明您已经成功