在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直接加密的结果一致,说明您已经成功