共计 2168 个字符,预计需要花费 6 分钟才能阅读完成。
JDBC
一、开始执行脚本时,因为读取自定义变量报错,导致呈现字符转化失败异样cannot be cast to java.lang.String
具体 log 请看:
java.lang.ClassCastException: org.apache.jmeter.protocol.jdbc.config.DataSourceElement$DataSourceComponentImpl cannot be cast to java.lang.String
at org.apache.jmeter.threads.JMeterVariables.get(JMeterVariables.java:118) ~[ApacheJMeter_core.jar:3.2 r1790748]
at org.apache.jmeter.engine.util.SimpleVariable.toString(SimpleVariable.java:54) ~[ApacheJMeter_core.jar:3.2 r1790748]
at org.apache.jmeter.engine.util.CompoundVariable.execute(CompoundVariable.java:147) ~[ApacheJMeter_core.jar:3.2 r1790748]
at org.apache.jmeter.engine.util.CompoundVariable.execute(CompoundVariable.java:116) ~[ApacheJMeter_core.jar:3.2 r1790748]
at org.apache.jmeter.testelement.property.FunctionProperty.getStringValue(FunctionProperty.java:101) ~[ApacheJMeter_core.jar:3.2 r1790748]
at org.apache.jmeter.testelement.AbstractTestElement.getPropertyAsString(AbstractTestElement.java:281) ~[ApacheJMeter_core.jar:3.2 r1790748]
at org.apache.jmeter.testelement.AbstractTestElement.getName(AbstractTestElement.java:165) ~[ApacheJMeter_core.jar:3.2 r1790748]
at org.apache.jmeter.threads.JMeterThread.processSampler(JMeterThread.java:449) ~[ApacheJMeter_core.jar:3.2 r1790748]
at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:254) [ApacheJMeter_core.jar:3.2 r1790748]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_144]
起因
起因是因为 Sampler 的名称带上读取公共参数 ${read-public-parameters}
的例子,请查看以下截图。
解决办法
将以上截图,名称的公共参数名称改为 创立数据库 -${testDataBaseName}
即可。
二、查问中文内容无后果的解决办法
在应用 JMeter 进行 JDBC 查询数据库时,sql 语句应用英文和数字能够查问到记录,而应用中文则查问不到记录,而且应用雷同的中文语句,能够在终端命令上和数据库管理工具上也能够查问到。
起因
以上问题是因为数据库应用的编码与 jmeter 查问时,应用的编码不统一,导致查问的条件转换后不统一,导致查问不到正确记录或查问到谬误记录。
JMeter 的默认编码是ISO-8859-1
,而 mysql 数据库因为要存储中文信息,所以个别应用utf-8
。在 JMeter 上填写的中文查问语句经字符编码转换到 mysql 上,不是之前填写的中文字段,导致查问条件生效,天然就无奈查问到正确的后果了。
解决办法
在 JDBC Connection Configuration
配置元件,Database URL
加useUnicode=true&characterEncoding=UTF-8
,即可解决问题。
三、多条 sql 语句执行时,响应报错
起因
- 链接数据库没有容许应用多条语句;
- JDBC Request 这个 Sampler 外面的
SQL Query -> Query Type
选项中,select statement
选项是不反对多个 sql 语句。
解决办法
-
在
JDBC Connection Configuration
配置元件,Database URL
加allowMultiQueries=true
- 在有多个 sql 语句的
JDBC Request
Sampler 中,SQL Query -> Query Type
选项,将select statement
变更成Callable Statement
即可。
PS:测试多个 sql 语句时,必须在每条 sql 语句前面加分号(;);最初一个 sql 语句能够不必加。
正文完