java - 如何将 jwt.io Java 库导入 JMeter
问题描述
我正在尝试将 jjwt Java 库导入 JMeter,但出现以下错误;
错误 oajpjsJSR223Sampler:JSR223 脚本 JSR223 采样器中的问题,消息:javax.script.ScriptException:groovy.lang.MissingPropertyException:没有这样的属性:io 类:Script4
我正在尝试使用 jjwt Java 库https://github.com/jwtk/jjwt ... 可以在https://jwt.io/网站上找到。我已将文件添加到 JMeter 类路径并使用 JSR223 采样器在 Groovy 中编写脚本......但它似乎不接受它。我猜这是因为它需要 .jar 文件,但库是 .java 文件,也许?
任何关于如何导入这个 jjwt 库的理论将不胜感激。
这里还有另一个帖子;如何使用 RSA 256 私钥在 JMETER 上生成 JWT 令牌所需的库或 jar 文件?讨论了这种方法并表明它应该有效。
解决方案
.java 文件是“文本”文件,需要先将它们编译成 .class 文件,然后才能在 JVM 中运行它们。您可以从Maven Central下载预构建的 .jar (确保也获取所有依赖项),或者如果您更喜欢“硬”方式:
在某处创建一个名为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>
在终端应用程序中打开该文件夹
将所有内容从
target/dependency
文件夹复制到 JMeter 安装的“lib”文件夹(或JMeter Classpath中的其他位置)重启 JMeter
将JSR223 Sampler添加到您的测试计划中,并使用 jjwt 库函数将您的Groovy代码放在那里。
推荐阅读
- maven - 如何通过 maven 依赖项下载 Jfrog 工件
- c - 在 CodeWare.com 上运行测试的问题
- python - 使用字符串作为python中的输入计算比较矩阵 - 硬
- flutter - Modal BottomSheet scrollControlled 不适用于列表
- kde - 无法更改 KDE 等离子快捷方式
- c++ - 有没有修改迅雷x2处理器核心频率的好方法?
- scala - 将函数作为参数传递,为什么我的场景中需要 => 符号?
- python - “str”对象没有属性“txt”
- flutter - 如何使用 GetX 更改 API 链接以保持相同的控制器和 UI
- java - MessageDigest MD5 生成 Multipart Huge 文件