1、引入jar包
前5个是jmeter的包在E:\zidonghua\jmeter\apache-jmeter-3.1\lib 和 E:\zidonghua\jmeter\apache-jmeter-3.1\lib\ext两个目录下
选中==〉build path==〉Configure build path 就可以引入了。
2、创建一个包
3、添加JavaSamplerClient接口
4、脚本调试完毕后 导出,选中工程-》右键导出->java
5\生成下面两个文件
将这两个文件拷贝到jmeter目录下 E:\zidonghua\jmeter\apache-jmeter-3.1\lib\ext
6\然后需要重启jmeter
7\创建一个java请求,会将上面写的脚本显示出来
8、数据库中的结果
9、数据参数化
JmeterJava源码:
package cn.testfan.ptest.jmeter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import org.apache.jmeter.config.Arguments;
import org.apache.jmeter.protocol.java.sampler.JavaSamplerClient;
import org.apache.jmeter.protocol.java.sampler.JavaSamplerContext;
import org.apache.jmeter.samplers.SampleResult;
public class MyJmeterTest implements JavaSamplerClient {
// 全局变量
PreparedStatement statement;
Connection conn;
@Override
public Arguments getDefaultParameters() {
// TODO Auto-generated method stub
//次函数可以人工注册一些参数,这些参数可以展示在jmeter的java请求面板里或者更改
Arguments arguments = new Arguments();
arguments.addArgument("p_name", "11");
arguments.addArgument("p_password", "aa");
return arguments;
}
//真正多次操作的业务,写这里
@Override
public SampleResult runTest(JavaSamplerContext arg0) {
SampleResult result = new SampleResult();
//给事务起个名称
result.setSampleLabel("insert");
//事务开始
result.sampleStart();
// TODO Auto-generated method stub
//执行sql之前,先进行参数化
try {
String p_name = arg0.getParameter("p_name");
String p_password = arg0.getParameter("p_password");
statement.setString(1, p_name);
statement.setString(2, p_password);
int rows = statement.executeUpdate();
if(rows > 0) {
//事务成功
result.setSuccessful(true);
}else {
//事务失败
result.setSuccessful(false);
}
} catch (Exception e) {
e.printStackTrace();
}
//事务结束
result.sampleEnd();
return result;
}
//初始化相关的操作写到这里
@Override
public void setupTest(JavaSamplerContext arg0) {
// TODO Auto-generated method stub
try {
Class.forName("com.mysql.jdbc.Driver");
// 建立mysql数据库链接
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/oa", "root", "1111");
// 把sql进行编译
statement = conn.prepareStatement("insert into itcast_role (name, description) values (?,?)");
} catch (Exception e) {
e.printStackTrace();
}
}
//结束的操作,写这里
@Override
public void teardownTest(JavaSamplerContext arg0) {
// TODO Auto-generated method stub
// 关闭链接
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
MyJmeterTest test = new MyJmeterTest();
//调试使用,创建一个JavaSamplerContext对象, 对象创建时需要传入一个Arguments对象,调试时用new Arguments()
JavaSamplerContext context = new JavaSamplerContext(test.getDefaultParameters());
test.setupTest(context);
test.runTest(context);
test.teardownTest(context);
}
}