发布新日志

  • jmeter 插件二次开发

    2019-10-17 18:06:16

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
    本文链接:https://blog.csdn.net/cyjs1988/article/details/84938497
    ————————————————
    版权声明:本文为CSDN博主「猎摘互联网软件测试业界技术文章专用博客」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/cyjs1988/article/details/84938497

    把需要的jar包 添加到maven依赖中

    jmeter中javasample请求需要的jar包

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
     
        <groupId>MyJmeter</groupId>
        <artifactId>MyJmeter</artifactId>
        <version>1.0-SNAPSHOT</version>
        <properties>
            <jmeter.version>3.0</jmeter.version>
        </properties>
        <dependencies>
            <!--jmeter-->
            <dependency>
                <groupId>org.apache.jmeter</groupId>
                <artifactId>ApacheJMeter_core</artifactId>
                <version>${jmeter.version}</version>
            </dependency>
     
            <dependency>
                <groupId>org.apache.jmeter</groupId>
                <artifactId>ApacheJMeter_java</artifactId>
                <version>${jmeter.version}</version>
            </dependency>
        </dependencies>
     
        <build>
            <plugins>
                <!--<plugin>-->
                <!--<groupId>org.apache.maven.plugins</groupId>-->
                <!--<artifactId>maven-jar-plugin</artifactId>-->
                <!--<version>2.4</version>-->
                <!--<configuration>-->
                <!--<archive>-->
                <!--<manifest>-->
                <!--<addClasspath>true</addClasspath>-->
                <!--<classpathPrefix>lib/</classpathPrefix>-->
                <!--<mainClass>etms.TestEtms</mainClass>-->
                <!--</manifest>-->
                <!--</archive>-->
                <!--</configuration>-->
                <!--</plugin>-->
                <!--<plugin>-->
                <!--<groupId>org.apache.maven.plugins</groupId>-->
                <!--<artifactId>maven-dependency-plugin</artifactId>-->
                <!--<executions>-->
                <!--<execution>-->
     
                <!--<phase>package</phase>-->
                <!--<goals>-->
                <!--<goal>copy-dependencies</goal>-->
                <!--</goals>-->
                <!--<configuration>-->
                <!--<outputDirectory>-->
                <!--${project.build.directory}/lib-->
                <!--</outputDirectory>-->
                <!--</configuration>-->
                <!--</execution>-->
                <!--</executions>-->
                <!--</plugin>-->
     
            </plugins>
        </build>
     
    </project>

    然后编写代码如下
    package com.niu.MyJmeter;
     
    import javafx.scene.shape.ArcTo;
    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;
    import org.apache.xmlbeans.impl.xb.xsdschema.impl.PublicImpl;
     
    /**
     * Created by Administrator on 2017/8/30 0030.
     */
    public class JmeterTest implements JavaSamplerClient {
        private String interfaceName;
        private String methodName;
     
        @Override
        public void setupTest(JavaSamplerContext javaSamplerContext) {
            //某种连接只连接一次,例如数据库
            System.out.print("测试开始");
     
        }
     
        @Override
        public SampleResult runTest(JavaSamplerContext javaSamplerContext) {
            SampleResult result = new SampleResult();
            //获取页面上interfaceName的方法
            interfaceName = javaSamplerContext.getParameter("interfaceName");
            //获取页面上methodName的方法
            methodName = javaSamplerContext.getParameter("methodName");
            //测试开始的时间戳
            result.sampleStart();
            //设置响应数据的格式
            result.setResponseData(interfaceName+":"+methodName,"UTF-8");
            //测试结束的时间戳
            result.sampleEnd();
            //设置成功的
            result.setSuccessful(true);
            //设置响应code码
            result.setResponseCodeOK();
            //设置数据编码格式
            result.setDataEncoding("UTF-8");
            return result;
        }
     
        @Override
        public void teardownTest(JavaSamplerContext javaSamplerContext) {
            System.out.print("测试结束");
        }
     
        @Override
        public Arguments getDefaultParameters() {
            //添加参数
            Arguments arguments = new Arguments();
            arguments.addArgument("interfaceName","");
            arguments.addArgument("methodName","");
            return arguments;
        }
     
        public static void main(String[] args){
            JmeterTest jmeterTest = new JmeterTest();
            JavaSamplerContext arg0 = new JavaSamplerContext(jmeterTest.getDefaultParameters());
            jmeterTest.runTest(arg0);
            jmeterTest.teardownTest(arg0);
        }
    }

    然后用IDEA中的clean 先清除包,再install打成jar包,放到jmeter中的javasample中,本次代码中的参数是interfaceName, methodName ,然后面填入值,就可以用查看结果树来查看响应结果。

Open Toolbar