Jmeter之二_JSR223取样器,断言等添加失败的解决办法


背景

最近在学习jmeter 但是发现在进行JSR223的相关取样器以及断言处理时出现了错误:

java.lang.NoClassDefFoundError:
Could not initialize class org.apache.jmeter.assertions.JSR223AssertionBeanInfo 错误信息如下图. 一直有点懵逼. 网上搜了很多资料也没有找到方法. 自己废了较大的力气才解决掉.

错误图


问题解决的思路与方式方法

在其他目录下重新解压缩了一下 jmeter 的介质
直接打开 jmeter.bat 然后 新建->线程组->添加 JSR223的相关取样器等.
发现是可以的 最近两天唯一进行处理的是, 新增加了部分 扩展jar
怀疑是最近扩展导致的问题.
最简单的办法是使用折半法去确认. 我移除了最新下班的一半的jar包, 再次重启发现还是存在同样的错误信息. 然后急促进行折半, 发现移除这个jar包后问题没有了:
ApacheJmeter_Schema_Assertion-1.1.0.jar 所以初步怀疑是这个jar包的命名空间出现了问题.

关于JSR223的理解

JSR223取样器(JSR223 Sampler)是JMeter中的一个重要组件,用于执行自定义的脚本代码来进行测试。JSR223代表Java Specification Request 223,是一个允许在Java虚拟机上运行其他脚本语言的规范。

JSR223取样器提供了许多脚本语言的支持,包括JavaScript、Groovy、Jython、Beanshell等。你可以选择使用其中任意一种脚本语言编写测试逻辑,然后在JSR223取样器中执行该脚本。

使用JSR223取样器,你可以以灵活的方式执行一些定制的测试逻辑,例如自定义请求发送、处理响应、计算指标、数据处理等。你可以通过引用JMeter提供的各种等效变量和方法,对请求和响应进行操作,并获取有关测试执行细节的信息。

以下是使用JSR223取样器的一般步骤:

在JMeter中添加JSR223取样器到测试计划中。
在JSR223取样器的属性中选择要使用的脚本语言(如Groovy、JavaScript等)。
在脚本编辑器中编写测试逻辑代码。
在代码中使用变量和方法来访问请求和响应数据,以及执行其他操作。
运行测试计划,JSR223取样器将按照设定的代码逻辑执行,并记录相应的结果。
请注意,使用JSR223取样器时应谨慎,因为错误的脚本代码可能会对测试结果产生负面影响。确保你对所选的脚本语言有一定的了解,并在开发脚本逻辑之前进行充分的测试和验证。 总体而言,JSR223取样器使你能够以自定义的方式扩展JMeter的功能,执行更复杂的测试场景,并满足个性化的测试需求。

关于jsr223 与 beanshell的区别与联系

JSR223和Beanshell是两个不同的概念,下面解释一下它们之间的区别:

JSR223:JSR223是Java规范请求223的缩写,它定义了一种在Java虚拟机上运行脚本语言的标准接口。JSR223规范允许在Java应用程序中使用各种脚本语言(如Groovy、JavaScript、Jython等)编写代码,并通过统一的接口进行执行。在JMeter中,JSR223取样器和JSR223前置处理器就是基于这个规范实现的,它允许使用不同的脚本语言来编写自定义的测试逻辑。

Beanshell:Beanshell是一种基于Java语法的开源脚本语言,它是JSR223规范中的一种实现。Beanshell与Java语法兼容,并且可以直接访问Java类和方法。在JMeter中,Beanshell可以作为一种脚本语言选择JSR223取样器或JSR223前置处理器。你可以使用Beanshell编写测试逻辑代码,并在JMeter中执行,对请求和响应进行操作。

所以,JSR223是一个规范,而Beanshell是符合这一规范的一种实现。除了Beanshell,JSR223还支持其他脚本语言,因此你可以通过选择适合你的需求的脚本语言来编写自定义的测试逻辑。例如,你可以选择使用Groovy、JavaScript等。在选择脚本语言时,可以考虑语言的特性、性能、开发者的熟悉程度等因素。

关于关注我的公众号一起学习进步

Jmeter之二_JSR223取样器,断言等添加失败的解决办法的更多相关文章

  1. 用file上传文件时,浏览器返回值总是自动添加<pre>的解决办法

    在返回的JSon字符串里面总是莫名其妙的添加了<pre>标签,例如返回内容为"ok",在浏览器里面就变成了"<pre style="word- ...

  2. Jmeter发送某个request时而成功,时而失败(处理办法:失败的时候尝试重新发送这个HTTP request)

    Jmeter发送某个request时而成功,时而失败 Maybe it’s Jmeter’s problem, after all, is not a commercial software. And ...

  3. jmeter csv Data Set Config 文件中带引号的数据转换问题(自动添加双引号解决办法)

    1.我们从csv中获取数据,在jmeter中使用这些数据,其中csv的数据如图,有的数据包含引号. 2.问题:我们获取的json数据,被自动添加了双引号 3.解决方式: 在CSV Data Set C ...

  4. JMeter上传文件 点选form-data依旧失败的解决方法

    转子:https://blog.csdn.net/xingyunpi/article/details/77930476 这几天一直在调用JMeter上传文件的一个接口,一直出错,在网上找到一些文章说的 ...

  5. springboot中oracle的依赖添加失败的解决

    由于Oracle授权问题,Maven3不提供oracle JDBC driver  步骤一:在pom中添加如下: <!--Oracle 驱动 --> <dependency> ...

  6. git操作笔记《二》:github更新缓慢问题的解决办法

    从GitHub上拉取代码速度十分之慢,百度了一下,说是github的某些域名的dns解析被污染了. 解决方法: 方案一:可以花钱购买VPN服务,但是这对于学生党来说是不划算的. vpn 方案二:绕过d ...

  7. Jmeter报文体包含过大附件导致请求报文发送失败的解决办法

    Jmeter中,HTTP request的报文体为一个附件时,如果附件过大,在发送请求报文的时候会失败,办法就是勾选“Use multipart/form-data for POST”

  8. matlab添加toolbox失败的解决办法

    matlab添加toolbox有三种方法: 1.在网上下载对应的文件,再复制到matlab安装路径中的toolbox文件夹里. 结果:失败.仍然显示不能用该模块. 2.由于笔者的学校有买正版,所以可以 ...

  9. jquery的全选/全不选/反选以及attr添加checked属性失败的解决办法

    如下图: <head> <title></title> <style type="text/css"> div { border: ...

  10. [Irving] Ext.Net动态添加GridPanel列绑定Checkbox值失败的解决办法

    var grid = X.GetCmp<GridPanel>(vm.GRID_QUOTATIONS_FEEITEM_RANGE_SHOW); grid.AddColumn(Html.X() ...

随机推荐

  1. 拓扑排序软件设计——ToplogicalSort_app(含有源码、需求分析、可行性分析、概要设计、用户使用手册)

    @ 目录 前言 1. 需求分析 2. 可行性分析 2.1 简介 2.2 技术可行性分析 2.2.1 技术实现方案 2.2.2 开发人员技能要求 2.2.3 可行性 2.3 操作可行性分析 2.4 结论 ...

  2. super只能用在构造方法里面吗?

    super关键字并不仅限于在构造方法中使用.在Java中,super关键字有两个主要的用途: 在子类的构造方法中调用父类的构造方法.这是super的一个常见用法,通常是在子类的构造方法的第一行使用,用 ...

  3. Flutter 中常用的缓存数据方式

    SharedPreferences: 优点:使用简单,轻量级,适用于少量数据的缓存:缺点:不适合存储大型.结构化.复杂的数据: SQLite: 优点:可以存储大量.结构化.复杂的数据,支持复杂的数据查 ...

  4. 【小白学YOLO】YOLOv3网络结构细致解析

    摘要:本文将详细介绍Yolov3的网络结构相关内容. Yolov3 网络结构 在博客"Yolo发展历史及网络结构"中我们已经详细的解释了Yolov1的网络结构,并简要的提到了Yol ...

  5. 云小课|VMware备份上云学习专列来了,快加入吧~

    阅识风云是华为云信息大咖,擅长将复杂信息多元化呈现,其出品的一张图(云图说).深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云.更多精彩内容请单击此处. 摘要:华为云云备份CBR ...

  6. 解读clickhouse存算分离在华为云实践

    摘要:本文是我们对clickhouse做了最简单的支持obs的适配改造. 本文分享自华为云社区<clickhouse存算分离在华为云实践>,作者: he lifu. clickhouse是 ...

  7. AI新手语音入门:认识词错率WER与字错率CER

    摘要:本文介绍了词错率WER和字错率CER的概念,引入了编辑距离的概念与计算方法,从而推导得到词错率或字错率的计算方法. 本文分享自华为云社区<新手语音入门(一):认识词错率WER与字错率CER ...

  8. 让 Java 打包缩小一大半,Solon v1.9.3 发布

    相对于 Spring Boot 和 Spring Cloud 的项目: 启动快 5 - 10 倍. (更快) qps 高 2- 3 倍. (更高) 运行时内存节省 1/3 ~ 1/2. (更少) 打包 ...

  9. Filebeat的安装和使用(Windows)

    Filebeat是什么 1.Filebeat是什么?Filebeat是用于转发和集中日志数据的轻量级传送工具. Filebeat监视用户指定的日志文件或位置,收集日志事件,并将日志数据转发到Elast ...

  10. 发布会回放|Gradio 4.0 正式发布!

    Gradio 的目标是使机器学习模型的演示更容易定制和访问,以满足不同用户的需求.在 4.0 正式版的发布活动上,Hugging Face 的 Gradio 团队介绍了自己为了提高机器学习模型的可访问 ...