1.1. HTTP报错解决办法
java.net.SocketException。先确认不是自己的服务导致的错误;当出现这种问题是,可以按照以下步骤来完成。
(1)HTTP请求组件的HTTP请求IMPLEMENTTATION选择HTTPCLIENT4,HTTPCLIENT3容易出现重连接的问题。而当我们这里不选的时候,默认会有选择,这个是配置文件jmeter.properties中的jmeter.httpsampler配置项。
(2)修改bin文件夹内的user.properties增加:httpclient4.retrycount=1,hc.parameters.file=hc,patameters
(3)修改hc.parameters。修改http.connection.stalechech$Boolean=true。
(4)重启jmeter。
1.2. 录制脚本,启动代理后,浏览器就报java.net.SocketException:Connetion reset
在jmeter.properties中找到,将https.default.protocol=SSLv3直接改为https.default.protocol=TLSv1.2
1.3. 条件判断中使用javascript语法
$(__javaScript(“${diagResult}” != “true”))
1.4. 设置SSL证书和证书密码
在BeanShell Sampler或BeanShell PreProcessor中填入以下信息(设置在仅一次控制器下):
import org.apache.jmeter.util.SSLManager;
System.setProperty(“javax.net.ssl.keyStore”,”D\\V1R2C30\\practiceData\\TDKeyStore.jks”);
System.setProperty(“javax.net.ssl.keyStorePassword”,”tdv1r2keypass”);
// System.setProperty(“javax.net.ssl.trustStore”,”D\\V1R2C30\\apache-jmeter-3.1\\Server-TrustStore.jks”);
SSLManager.reset();
SSLManager.getInstance();
1.5. BeanShell PreProcessor使用
注意:(1)每个语句后面都要有分号结束;(2)jmeter中变量都是string类型,如果引用进来的不是string类型,赋值给jmeter中变量时要转换为string(用string1.toSting()函数)。
(1)引用java文件
source(“D:\\workspaceIDEA\\src\\testAdd.java”);
int result = new testAdd().add(2,3);
vars.put(“result”,result.toString());
log.info(“The result is:” + result);
(2)引用上下文中的变量
先在BeanShell Sampler的“参数”行输入要引用的变量,如果有多个,用空格分开。如,${test1} ${test2}。
vars.put(“args1”,bsh.args[0]);
(3)引用Class文件
addClassPath(“D:\\workspaceIDEA\\out\\production\\workspaceIDEA\\”);
import testAdd;
int numClass = new testAdd().add(20.30);
vars.put(“numClass”,numClass.toString());
(4)引用jar包
将jar包放在jmeter的ext目录下或者在testPlan处添加jar包路径。
import Hello.testAdd;
int numJar = new testAdd().add(10,20);
vars.put(“numJar”,numJar.toString());