Jmeter运行Java脚本 创建TXT文件

**

Jmeter运行Java脚本 创建TXT文件

**
一、核心步骤
1.创建一个Java工程;
2.将JMeter的lib目录下的jar文件以及ext、junit文件下的jar添加进此工程的Build Path;
ApacheJMeter_core.jar(必须)、ApacheJMeter_java.jar(必须)、
avalon-framework-4.1.4.jar、jorphan.jar、logkit-2.0.jar
3.新建一个JavaSampler工程,在此工程里添加一个com.test包和创建OutputService、 PerformenceTest两个类

PS:创建一个测试类并实现JavaSamplerClient接口或继承AbstractJavaSamplerClient,并重写:
public Arguments getDefaultParameters():设置可用参数及的默认值;
public void setupTest(JavaSamplerContext arg0):每个线程测试前执行一次,做一些初始化工作;
public SampleResult runTest(JavaSamplerContext arg0):开始测试,从arg0参数可以获得参数值;
public void teardownTest(JavaSamplerContext arg0):测试结束时调用;
具体代码如下:
输入参数类:

package com.test;

import java.io.File;
import java.io.PrintWriter;

/**
 * Created by Administrator on 2017/4/20.
 */
public class OutputService {
        public static void output(String filename,int a,int b,int c) throws Exception{
            PrintWriter out=new PrintWriter(new File(filename));
            out.write(a+":"+b+":"+c);
            out.close();
        }
}

测试类:

package com.test;

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;

/**
 * Created by Administrator on 2017/4/20.
 */
public class PerformenceTest implements JavaSamplerClient {
    private SampleResult results;
    private String a;
    private String b;
    private String c;
    private String filename;

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Arguments params = new Arguments();
        params.addArgument("filename","0");
        params.addArgument("a", "0");//设置参数,并赋予默认值0
        params.addArgument("b", "0");//设置参数,并赋予默认值0
        params.addArgument("c", "0");
        JavaSamplerContext arg0 = new JavaSamplerContext(params);
        PerformenceTest test = new PerformenceTest();
        test.setupTest(arg0);
        test.runTest(arg0);
        test.teardownTest(arg0);
    }
    // 设置传入的参数,可以设置多个,已设置的参数会显示到Jmeter的参数列表中
    public Arguments getDefaultParameters() {
        Arguments params = new Arguments();
        params.addArgument("filename", "0");//设置参数,并赋予默认值0
        params.addArgument("a", "0");//设置参数,并赋予默认值0
        params.addArgument("b", "0");//设置参数,并赋予默认值0
        params.addArgument("c","0");
        return params;
    }


    // 初始化方法,实际运行时每个线程仅执行一次,在测试方法运行前执行
    public void setupTest(JavaSamplerContext arg0) {
        results = new SampleResult();
    }


    // 测试执行的循环体,根据线程数和循环次数的不同可执行多次
    @Override
    public SampleResult runTest(JavaSamplerContext arg0) {
        a = arg0.getParameter("a"); // 获取在Jmeter中设置的参数值
        b = arg0.getParameter("b"); // 获取在Jmeter中设置的参数值
        c = arg0.getParameter("c");
        filename = arg0.getParameter("filename"); // 获取在Jmeter中设置的参数值
        results.sampleStart();// jmeter 开始统计响应时间标记
        try {
            OutputService test = new OutputService();
            test.output(filename,Integer.parseInt(a), Integer.parseInt(b),Integer.parseInt(c));
            results.setSuccessful(true);
// 被测对象调用
        } catch (Throwable e) {
            results.setSuccessful(false);
            e.printStackTrace();
        } finally {
            results.sampleEnd();// jmeter 结束统计响应时间标记
        }
        return results;
    }


    // 结束方法,实际运行时每个线程仅执行一次,在测试方法运行结束后执行
    public void teardownTest(JavaSamplerContext arg0) {
    }

}

参考链接:https://www.cnblogs.com/chenchen-tester/p/6739356.html
4、把该工程以jar包形式导出,选择File—Export—Java—JAR file—勾选该工程所有文件
,选择Export all output folder for checked projects—选择导出路径 最后finish

5、然后把导出的jar包复制到Jmeter的lib\ext目录下,重启Jmeter
配置Jmeter
创建线程组、Java请求、图形结果、查看结果树、聚合报告、用表格察看结果,进行测试
6、打开测试计划,添加线程组–Java请求,选择测试类,会自动加载出类中的参数
在这里插入图片描述
JMeter–选项–函数助手对话框 把函数字符串拷贝到下面值里
值=路径+函数字符串+文件类型
在这里插入图片描述给参数赋值
在这里插入图片描述
提示:
${__Random(1, 3)}:随机生成1-3之间的整数

name${__Random(1, 3)}:随机生成name1, name2, name3中的任意1个字符串

KaTeX parse error: Expected group after '_' at position 2: {_̲_V(name{__Random(1, 3)})}对形如name1的字符串求值。
也就是不把name1当成字符串来看,而是把name1当作是1个变量,并获取这个变量的值。
name1的值是我们在用户自定义变量中定义过的,也就是搜索。那么连起来,
这个表达式的作用就是随机生成搜索第一个变量, 搜索第二个变量, 搜索第三个变量中的任意一个字符串

注意:
这样的Java请求值需要你在相应的盘创建一个文件夹,否则会运行失败,我这里是D盘创建了一个名为test的文件夹。

添加察看结果树,聚合报告,图形结果

查看test文件夹,里面会新建TXT文件
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值