【问题标题】:How do I import jwt.io Java library to JMeter如何将 jwt.io Java 库导入 JMeter
【发布时间】:2021-11-14 22:56:41
【问题描述】:

我正在尝试将 jjwt Java 库导入 JMeter,但出现以下错误;

错误 o.a.j.p.j.s.JSR223Sampler:JSR223 脚本 JSR223 中的问题 采样器,消息:javax.script.ScriptException: groovy.lang.MissingPropertyException:没有这样的属性:类的io: 脚本4

我正在尝试使用 jjwt Java 库 https://github.com/jwtk/jjwt ... 可以在 https://jwt.io/ 网站上找到。我已将文件添加到 JMeter 类路径并使用 JSR223 采样器在 Groovy 中编写脚本......但它似乎不接受它。我猜这是因为它需要 .jar 文件,但库是 .java 文件,也许?

任何关于如何导入这个 jjwt 库的理论将不胜感激。

这里还有一个帖子; How to generate JWT token on JMETER using a RSA 256 private key Required library or jar file? 讨论了这种方法并表明它应该可以工作。

【问题讨论】:

  • 请提供足够的代码,以便其他人更好地理解或重现问题。

标签: java import jar jmeter jwt


【解决方案1】:

.java 文件是“文本”文件,它们需要将compiled 转换为 .class 文件,然后才能在 JVM 中运行它们。您可以从 Maven Central 下载预构建的 .jar(确保同时获取所有 dependencies),或者如果您更喜欢“硬”方式:

  1. Install Apache Maven

  2. 在某处创建一个名为pom.xml 的文件,内容如下

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
    
        <groupId>org.example</groupId>
        <artifactId>jwt</artifactId>
        <version>1.0-SNAPSHOT</version>
    
        <properties>
            <maven.compiler.source>8</maven.compiler.source>
            <maven.compiler.target>8</maven.compiler.target>
        </properties>
    
        <dependencies>
            <dependency>
                <groupId>io.jsonwebtoken</groupId>
                <artifactId>jjwt-api</artifactId>
                <version>0.11.2</version>
            </dependency>
            <dependency>
                <groupId>io.jsonwebtoken</groupId>
                <artifactId>jjwt-impl</artifactId>
                <version>0.11.2</version>
                <scope>runtime</scope>
            </dependency>
            <dependency>
                <groupId>io.jsonwebtoken</groupId>
                <artifactId>jjwt-jackson</artifactId> <!-- or jjwt-gson if Gson is preferred -->
                <version>0.11.2</version>
                <scope>runtime</scope>
            </dependency>
    
            <dependency>
                <groupId>org.bouncycastle</groupId>
                <artifactId>bcprov-jdk15on</artifactId>
                <version>1.60</version>
                <scope>runtime</scope>
            </dependency>
        </dependencies>
    
    </project>
    
  3. 在终端应用程序中打开该文件夹

  4. 执行mvn dependency:copy-dependencies命令

  5. target/dependency 文件夹中的所有内容复制到 JMeter 安装的“lib”文件夹(或 JMeter Classpath 中的其他位置)

  6. 重启JMeter

  7. JSR223 Sampler 添加到您的测试计划中,并使用jjwt 库函数将您的Groovy 代码放在那里。

【讨论】:

  • 为其他尝试此操作的人添加一些信息...我完成了上述所有步骤,但 JMeter 抛出以下错误:“org.codehaus.groovy.GroovyBugError: BUG! 阶段异常源单元 'Script1.groovy' 中的'语义分析' 不支持的类文件主要版本 61" 经过一番阅读,似乎 JDK17 在这里表现不佳,我降级到 JDK8,现在一切似乎都可以工作了!跨度>
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-23
  • 2011-05-18
  • 2017-01-10
  • 1970-01-01
  • 1970-01-01
  • 2012-07-01
相关资源
最近更新 更多