Jmeter之二_JSR223取样器,断言等添加失败的解决办法
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取样器,断言等添加失败的解决办法的更多相关文章
- 用file上传文件时,浏览器返回值总是自动添加<pre>的解决办法
在返回的JSon字符串里面总是莫名其妙的添加了<pre>标签,例如返回内容为"ok",在浏览器里面就变成了"<pre style="word- ...
- Jmeter发送某个request时而成功,时而失败(处理办法:失败的时候尝试重新发送这个HTTP request)
Jmeter发送某个request时而成功,时而失败 Maybe it’s Jmeter’s problem, after all, is not a commercial software. And ...
- jmeter csv Data Set Config 文件中带引号的数据转换问题(自动添加双引号解决办法)
1.我们从csv中获取数据,在jmeter中使用这些数据,其中csv的数据如图,有的数据包含引号. 2.问题:我们获取的json数据,被自动添加了双引号 3.解决方式: 在CSV Data Set C ...
- JMeter上传文件 点选form-data依旧失败的解决方法
转子:https://blog.csdn.net/xingyunpi/article/details/77930476 这几天一直在调用JMeter上传文件的一个接口,一直出错,在网上找到一些文章说的 ...
- springboot中oracle的依赖添加失败的解决
由于Oracle授权问题,Maven3不提供oracle JDBC driver 步骤一:在pom中添加如下: <!--Oracle 驱动 --> <dependency> ...
- git操作笔记《二》:github更新缓慢问题的解决办法
从GitHub上拉取代码速度十分之慢,百度了一下,说是github的某些域名的dns解析被污染了. 解决方法: 方案一:可以花钱购买VPN服务,但是这对于学生党来说是不划算的. vpn 方案二:绕过d ...
- Jmeter报文体包含过大附件导致请求报文发送失败的解决办法
Jmeter中,HTTP request的报文体为一个附件时,如果附件过大,在发送请求报文的时候会失败,办法就是勾选“Use multipart/form-data for POST”
- matlab添加toolbox失败的解决办法
matlab添加toolbox有三种方法: 1.在网上下载对应的文件,再复制到matlab安装路径中的toolbox文件夹里. 结果:失败.仍然显示不能用该模块. 2.由于笔者的学校有买正版,所以可以 ...
- jquery的全选/全不选/反选以及attr添加checked属性失败的解决办法
如下图: <head> <title></title> <style type="text/css"> div { border: ...
- [Irving] Ext.Net动态添加GridPanel列绑定Checkbox值失败的解决办法
var grid = X.GetCmp<GridPanel>(vm.GRID_QUOTATIONS_FEEITEM_RANGE_SHOW); grid.AddColumn(Html.X() ...
随机推荐
- CSS 基础 3 - 定位 Postion 属性
CSS 基础 3 - 定位 Postion 属性 static position 属性的默认值,元素随 HTML 流移动 top/left/right/bottom 属性无效 relative 和 s ...
- 1、reids 基础
SortedSet类型 特性 1.可排序 2.元素不重复性 3.查询速度快 与普通的集合类型相比,SortedSet 主要有以下两个特点: 有序性:根据分数对元素进行排序,便于范围查找等操作. 不重复 ...
- 在Docker上面安装/启动、运行、挂载MySQL5.7
下载文档请看:https://hub.docker.com/r/mysql/mysql-server 一.下载镜像 执行命令: docker pull mysql/mysql-server:5.7 查 ...
- three.js中的矩阵计算
目录 1. 概述 2. 详论 2.1. 行主序与列主序列 2.2. 矩阵乘法 3. 参考 1. 概述 three.js中自带了矩阵运算库,不过在使用的过程中总是容易混淆.不知道是行主序还是列主序,前乘 ...
- Java 创建/编辑/删除Excel迷你图表
迷你图是Excel工作表单元格中表示数据的微型图表.使用迷你图可以非常直观的显示数据变化趋势,突出最大值.最小值,放在数据表格中可起到很好的数据分析效果.本文将通过Java代码示例介绍如何在Excel ...
- 拥抱Serverless释放生产力,探索华为云Serverless车联网最佳实践
华为云Serverless车联网场景解决方案,以FunctionGraph为核心的Serverless化组合方案,使用FunctionGraph.OBS.DIS等技术,可以实现架构的灵活扩展,在出行高 ...
- 详解GaussDB(DWS)的query_band负载识别与应用
摘要:query_band是一个会话级别(session)的GUC参数,本身是字符串类型,支持任意形式字符组合. 本文分享自华为云社区<GaussDB(DWS)的query_band负载识别与应 ...
- 基于DAYU的实时作业开发,分分钟搭建企业个性化推荐平台
摘要:搭建这个平台最费时耗力的事莫过于对批.流作业的编排,作业组织管理以及任务调度了.但是这一切,用DAYU的数据开发功能几个任务可通通搞定. 大多数电商类企业都会搭建自己的个性化推荐系统,利用自己拥 ...
- 面试官问我:CSS有哪些属性可以继承?
摘要:本文带大家学习一下关于CSS属性的继承. 本文分享自华为云社区<关于CSS有哪些属性可以继承?>,作者:黛琳ghz. 前言 今天遇到一个很有意思的题目,通过题目可以顺便学习一下关于C ...
- Axure 页面交互