python 自动化测试(6):jar包调用

时间:2022-07-24
本文章向大家介绍python 自动化测试(6):jar包调用,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

Python对jar包的使用

  • 前言
  • 依赖库
  • 使用

前言

编写自动化时,可能会遇到一些语言之间的调用。 例如: 在登录页面,获取短信验证码后通过java编写的加密方式存入数据库中;使用python编写自动化脚本调用对应jar包,jar包的内容时对应的解密方式,则可以将解密好的内容放入对应输入框内就可以自动化登录了。

依赖库

Jpype1

安装 简单的安装方式,使用 Pycharm 编辑器,File --> settings, 如图所示安装即可:

使用

1、首先需要一个打包好的jar包,可以自己写;也可以让开发帮助,根据个人情况而定。

2、将jar包放入自己合适的位置,能够访问到就行,绝对路径、相对路径都可以。

import os, jpype

get_sms_code_jar_loc_path = "C:\BianYi\WorkSpaces\python\AutoUpp\AutoUppCxpay\data\lib\getsmscode.jar"

class RunJar:
    """
        运行java文件
    """
    def open_java(self, get_name):
        jar_path = os.path.join(os.path.abspath("."), get_name)
        jpype.startJVM(jpype.getDefaultJVMPath(), "-Djava.class.path=%s" % jar_path)

    '''--获取短信验证码--'''
    def get_sms_code(self):
        self.open_java(get_sms_code_jar_loc_path)
        javaClass = jpype.JClass("com.txpay.MokwingTest.GetSmsCode")	# JClass 是对应java运行的主类名称,路径不能错,不然会报找不到执行的类异常,java.lang.RuntimeException: Class com.txpay.MokwingTest.GetSmsCode not found。
        sms_code = javaClass().getSmsCode()  # getSmsCode() 是jar包中具体执行的方法名称
        print(sms_code)
        return sms_code

    '''--关闭jvm--'''
    def close_jar(self):
        jpype.shutdownJVM()   # 调用此方法后,禁用对现有的java对象调用,终止后无法重新启动jvm


if __name__ == "__main__":
    RunJar().get_sms_code()