问题一: jmeter3.1 连接数据库报错,ORA-00923: 未找到要求的 FROM 关键字
解决方案:
如果连接的是Oracle,配置元件 JDBC Connection Configuration中 Validation Query默认为:Select1,将其修改为Select 1 from dual
问题二:Jmeter 接口自动化测试时 执行BeanShell PostProcessor报错:
jmeter.util.BeanShellInterpreter: Error invoking bsh method: eval org/apache/commons/lang/exception/NestableRuntimeException
代码如下:
import java.sql.*;
import java.util.*;
import java.lang.*;
import net.sf.json.*;
//获取上一个请求的返回
String responseRowData = prev.getResponseDataAsString();
String response = responseRowData.substring(9,responseRowData.length()-1);
log.info("VTM2.0接口返回的响应信息为:" + response);
JSONArray array = JSONArray.fromObject(response);
JSONObject first = array.getJSONObject(0);
int flag = first.getInt("retCode");
log.info("VTM2.0接口返回的retCode为:" + flag);
vars.put("retCode",flag.toString());
原因:
Jmeter自带的commons-lang3-3.4.jar 已经不包含 NestableRuntimeException 文件,这个文件只有commons-lang2-*.jar 中才有,所以执行报错
用 commons-lang-2.6.jar替换自带的3.4版本。
依然报错。但是错误发生变化。
java.lang.NoClassDefFoundError: net/sf/ezmorph/Morpher
这是因为:代码中用到 JSONObject类,而这个类所依赖的包net.sf.json已经导入。
发现需要的jar都在,因为用的是json-lib,
所以所需要的依赖包无非就是apache common下的几个jar
commons-beanutils-1.8.3.jar
commons-collections-3.2.1.jar
commons-compress-1.8.1.jar
commons-logging-1.1.1.jar
ezmorph-1.0.6.jar
json-lib-2.3-jdk15.jar
于是,将以上几个包放入jmeter的lib包下,重启jmeter,再次运行,错误解决。
以上几个包的地址分享如下:http://pan.baidu.com/s/1c2GoKzm