Jmeter + Junit

在使用jmeter中Junit的功能之前,最好将接口以手动的方式调通,可以参考 Jmeter之HTTP Request

下面开始讲一下如何使用Junit功能

1.  编写测试类 JmeterJunit 代码如下

package com.test.junit;

import static junit.framework.Assert.assertTrue;
import static org.junit.Assert.*;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;

public class JmeterJunit {
    public String urlPath = "http://www.mocky.io/v2/572ee171120000332519491b";
    public HttpURLConnection connection = null;
    public OutputStream output = null;
    public BufferedReader reader = null;
    public static String request = "{ \"type\": \"getName\"}";

    @Before
    public void setUp() throws Exception {
        URL url = new URL(urlPath);
        connection = (HttpURLConnection) url.openConnection();
        connection.setDoOutput(true);
        connection.setDoInput(true);
        connection.setRequestMethod("POST");
        connection.setUseCaches(false);
        connection.setInstanceFollowRedirects(true);
        connection.setRequestProperty("Content-type", "application/json");
        connection.setRequestProperty("Content-encoding", "UTF-8");
        connection.setRequestProperty("Accept", "application/json");
        connection.connect();
    }

    @After
    public void tearDown() throws Exception {
        if (null != output) {
            try {
                output.close();
            } catch (IOException e) {
                throw e;
            }
        }
        if (null != reader) {
            try {
                reader.close();
            } catch (IOException e) {
                throw e;
            }
        }
        if (null != connection) {
            connection.disconnect();
        }
    }

    public void sendRequest(String request) throws Exception {
        output = connection.getOutputStream();
        output.write(request.getBytes());
        output.flush();
    }

    public String getResponse() throws Exception {
        reader = new BufferedReader(new InputStreamReader(
                connection.getInputStream()));
        String st;
        StringBuffer stb = new StringBuffer();
        while (null != (st = reader.readLine())) {
            stb.append(st);
        }
        return stb.toString();
    }

    @SuppressWarnings("deprecation")
    public void checkResponse(String response,String name) throws Exception {
        boolean actualResult = response.contains(name);
        assertTrue("the expected status is " + name
                + ", but now it‘s not", actualResult);
    }

    @Test
    public void test1() throws Exception {
        sendRequest(request);
        checkResponse(getResponse(),"Brett");
    }

    @Test
    public void test2() throws Exception {
        sendRequest(request);
        checkResponse(getResponse(),"Jason");
    }

    @Test
    public void test3() throws Exception {
        sendRequest(request);
        checkResponse(getResponse(),"Elliotte");
    }

}

代码中的请求地址和响应信息在Jmeter之HTTP Request中都有描述,这边不多说。在代码中,编写了三个测试方法,分别检查响应中是否包含Brett、Jason以及Elliotte这三个名字。

2. 调试用例,结果如下

3.调试通过后,导出Jar包,并将该Jar包导入到.\Jmeter\apache-jmeter-2.13\lib\junit目录下。(如果编写代码时,存在第三方Jar包引入,那么就将该第三方Jar包放在.\Jmeter\apache-jmeter-2.13\lib中)

4. 重新启动Jmeter,添加三条Junit Request、查看结果树以及图形结果。

5点击运行按钮,可以在查看结果树中查看结果,如果想要将测试结果保存到文件,可以如下图配置

时间: 2024-10-31 19:36:03

Jmeter + Junit的相关文章

JMeter对Selenium自动化代码进行压测

原文转载:http://www.blogjava.net/qileilove/archive/2014/06/05/414423.html 准备工作: 将文件selenium-server-standalone-2.*.jar拷贝到JMeter类库安装目录%JMETER_HOME%/lib/下,不需要启动Selenium server. Jmeter JUnit sampler 将Selenium测试用例打包成.jar文件,并拷贝到%JMETER_HOME%/lib/junit/目录下,注意:测

JMeter使用记录1 -- JDBC测试

场景:使用jmeter对web应用和mysql数据库进行压力测试 JMeter是一款非常强大的测试工具,可以用来测试web,数据库,从07年用过之后一直对它情有独钟,下面记录下在一个项目中对它的简单使用. 项目分数据库测试和web应用测试 数据库测试比较简单,将要测试的数据库的jdbc driver放到jmeter的lib文件夹,新建线程组,配置起100线程,循环10次,10秒启动所有线程,加入一个jdbc connection configuration,加入要进行的CRUD操作,点击启动按钮

JMeter学习-015-JMeter 断言之-Bean Shell Assertion

前面的博文中有对 JMeter 中的 响应断言 进行了讲解并实例演示,详情敬请参阅博文:JMeter学习-007-JMeter 断言实例之一 - 响应断言. 在 JMeter 中总计提供了如下几种 BeanShell 组件: Beanshell Sampler:单独的采样器. Beanshell PreProcessor:针对其他采样器的前置处理器.可以在采样器执行之前进行预处理操作,生成相关测试数据供采样器使用,相当于 TestNG 中的 before annotation. Beanshel

JMeter使用记录1 -- JDBC測试

场景:使用jmeter对web应用和mysql数据库进行压力測试 JMeter是一款很强大的測试工具.能够用来測试web,数据库.从07年用过之后一直对它情有独钟,以下记录下在一个项目中对它的简单使用. 项目分数据库測试和web应用測试 数据库測试比較简单.将要測试的数据库的jdbc driver放到jmeter的lib目录,新建线程组,配置起100线程,循环10次,10秒启动全部线程,增加一个jdbc connection configuration,增加要进行的CRUD操作.点击启动butt

【转】性能测试工具JMeter的使用技巧

在这此对新版本jmeter的学习+温习的过程,发现了一些以前不知道的功能,所以,整理出来与大分享.本文内容如下. 1.如何使用英文界面的jmeter 2.如何使用镜像服务器 3.Jmeter分布式测试 4.启动Debug 日志记录 5.搜索功能 6.线程之间传递变量 如何使用英文界面的JMeter Jmeter启动时会自动判断操作系统的locale 并选择合适的语言启动,所以,我们启动jmeter后,其会出现一个倍感亲切的中文界面.但由于jmeter本身的汉化工作做得不好,你会看到有未被汉化的选

【转】JMeter中使用Selenium进行测试

JMeter是使用非常广泛的性能测试工具,而Selenium是ThroughtWorks 公司一个强大的开源Web 功能测试工具.Jmeter和Selenium结合使用,就可以实现对网站页面的自动化性能测试. 这里有两种方式在Jmeter中调用Selenium测试用例.可以使用 Jmeter JUnit sampler 或者 BeanShell sampler,后一种方式包含了Selenium client 和 server,因此不需要单独启动Server. 方法一 准备工作: 将文件selen

jMeter的初步学习--连接jdbc(转)

jmeter是纯java的写的一个既可以用于功能测试也可以用于压力测试的一款东东.他不仅可以测试web 也可以测试DB,最近的项目用到了连接JDBC的情况: 注意点: (1) 需要将要连接的数据库的jdbc driver放到jmeter的lib中. 场景:使用jmeter对web应用和mysql数据库进行压力测试 JMeter是一款非常强大的测试工具,可以用来测试web,数据库,从07年用过之后一直对它情有独钟,下面记录下在一个项目中对它的简单使用. 项目分数据库测试和web应用测试 数据库测试

Jmeter 日志设置---如何设置java协议中被测jar的日志?

先转载一下Jmeter的日志设置: Jmeter运行出现问题可以通过调整jmeter的日志级别定位问题,但运行测试时建议关闭jmeter日志,jmeter打印日志耗费系统性能. Jmeter日志默认存放在%JMeter_HOME%\bin目录,文件名通常是JMeter.log.日志记录与JMeter本身运行有关的日志信息. Jmeter使用Log4j日志组件输出日志,%JMETER_HOME%\bin\jmeter.properties中的log_level.jmeter用于控制Jmeter日志

JMeter之使用技巧

使用镜像服务器   在调试和修改测试计划的过程中,通常会为采样器增加一些额外的设置,例如设置额外HTTP头.Cookie管理器或认证管理器等,但当设置了这些内容后,sampler发出的请求是否就与预期的完全一致呢? 当然用户可以通过添加监听器来看查采样器发出的HTTP请求,但如果调试过程中并不想真正地把请求发送给被测应用,如何解决这个问题呢? Jmeter 提供了一个名叫HTTP Mirror Server的组件,HTTP Mirror Server可以启动一个镜像的服务器,该服务器把所有接收到