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. 认识BeanFactoryPostProcessor和BeanDefinitionRegistryPostProcessor

    本文分享自华为云社区<Spring高手之路13--BeanFactoryPostProcessor与BeanDefinitionRegistryPos>,作者: 砖业洋__ . 在Spri ...

  2. 实践案例丨GaussDB网络重传/丢包问题定位总结

    摘要:本文将介绍几种常用手段,用于梳理数据库网络故障可能存在的问题,从而快速定位恢复. 1 问题背景 在GaussDB各类问题场景中,网络故障是最难定位及恢复的问题之一,其不仅可能影响着数据库的性能, ...

  3. 应对全场景AI框架部署挑战,MindSpore“四招”让你躺平

    摘要:所谓全场景AI,是指可以将深度学习技术快速应用在云边端不同场景下的硬件设备上,包括云服务器.移动终端以及IoT设备等等,高效运行并能有效协同. 本文分享自华为云社区<AI框架的挑战与Min ...

  4. 火山引擎DataTester:AB实验平台未来演进趋势是怎样的?

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 近日,DataFun联合行行AI举办第四届"数据智能创新与实践人工智能大会,火山引擎DataTester ...

  5. 字节跳动基于ClickHouse优化实践之“高可用”

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 相信大家都对大名鼎鼎的ClickHouse有一定的了解了,它强大的数据分析性能让人印象深刻.但在字节大量生产使用中 ...

  6. 基于jdk自带httpserver开发的最小完整MVC框架

    基于jdk自带httpserver开发的最小完整MVC框架 410kb级的完整MVC:solon(83k) + jdkhttp(27k) + enjoy(227k) + snack3(73k) DEM ...

  7. Leaflet 使用图片作为地图

    Leaflet 使用图片作为地图 关键代码: L.CRS.Simple.transformation = new L.Transformation(1, 0, 1, 0); // 坐标原点切换为左上角 ...

  8. #2054:A == B ?(水题坑人)

    Problem Description Give you two numbers A and B, if A is equal to B, you should print "YES&quo ...

  9. Codeforces Round #687 (Div. 2, based on Technocup 2021 Elimination Round 2) (个人题解)

    Codeforces Round #687 (Div. 2, based on Technocup 2021 Elimination Round 2) A. Prison Break https:// ...

  10. 蓝桥杯历年省赛试题汇总 C/C++ B组

    B组 省赛 部分 A组的题目可以在这里查看 → 刷题笔记: 蓝桥杯 题目提交网站:Here 2012 第三届 微生物增殖 古堡算式 海盗比酒量 奇怪的比赛 方阵旋转 大数乘法 放旗子 密码发生器 夺冠 ...