一、创建工程、引包
1、创建JAVA工程
2、引入Jmeter中lib\ext基础包:ApacheJMeter_java.jar、ApacheJMeter_core.jar
3、引入Jmeter日志包:jorphan.jar,logkit-2.0.jar,commons-logging-1.1.1.jar,avalon-framework-4.1.4.jar
4、引入httpclient-4.3.4.jar(是一套http协议实现包)
Jmeter用到的4个类:

Arguments  :getDefaultParameters用于获取界面的参数

SampleResult:runTestJavaSamplerContext context) 类似于LR的Action

void:( context) 初始化方法,类似于LR的init和Junit中的setUp()

void:teardownTest(JavaSamplerContext context) 类似于LR的end和Junit中的tearDown()

执行的先后顺序为:getDefaultParameters() --> setupTest(JavaSamplerContext context) -->

runTest(JavaSamplerContext context) --> teardownTest(JavaSamplerContext context)
①、addArgument("name", "value")    定义参数
②、sampleStart()    定义事务的开始,类似于LR的lr_start_transaction,和LR一样事务间不要放无关代码
③、sampleEnd()    定义事务的结束,类似于LR的lr_end_transaction
④、setSuccessful(true、false)    设置运行结果的成功或失败,Jmeter统计成功失败的次数,在聚合报告中能够体现。
二、用例
1、TestApiGetSearchSuggestion.java,该代码实现对Api接口的请求,对返回的数据进行判断,并写文件。
2、Jmeter_GetSearchSuggestion.java,为本节介绍的重点

  1. package com.test.jmeter;
  2. import java.io.IOException;
  3. import org.apache.http.client.ClientProtocolException;
  4. import org.apache.jmeter.config.Arguments;
  5. import org.apache.jmeter.protocol.java.sampler.AbstractJavaSamplerClient;
  6. import org.apache.jmeter.protocol.java.sampler.JavaSamplerContext;
  7. import org.apache.jmeter.samplers.SampleResult;
  8. public class Jmeter_GetSearchSuggestion extends AbstractJavaSamplerClient {
  9. private static String label = "Jmeter_GetSearchSuggestion ";    //定义label名称,显示在jmeter的结果窗口
  10. private String url;
  11. private String data;
  12. public void setupTest(){
  13. //定义测试初始值,setupTest只在测试开始前使用
  14. System.out.println("setupTest");
  15. }
  16. @Override
  17. public SampleResult runTest(JavaSamplerContext arg0) {
  18. url = arg0.getParameter("url");
  19. data = arg0.getParameter("data");
  20. SampleResult sr;
  21. sr = new SampleResult();
  22. sr.setSampleLabel(label);
  23. TestApiGetSearchSuggestion t = new TestApiGetSearchSuggestion();
  24. sr.sampleStart();
  25. try {
  26. //调用被压测接口的方法
  27. t.PostJson(url, data);
  28. sr.setSuccessful(true);
  29. } catch (ClientProtocolException e) {
  30. sr.setSuccessful(false);
  31. e.printStackTrace();
  32. } catch (IOException e) {
  33. sr.setSuccessful(false);
  34. e.printStackTrace();
  35. }
  36. sr.sampleEnd(); // jmeter 结束统计响应时间标记
  37. return sr;
  38. }
  39. public void teardownTest(JavaSamplerContext arg0){
  40. super.teardownTest(arg0);
  41. }
  42. public Arguments getDefaultParameters(){
  43. //参数定义,显示在前台,也可以不定义
  44. Arguments params = new Arguments();
  45. params.addArgument("url", "http://gapp.test.com/merchandise/GetSearchSuggestion");
  46. params.addArgument("data", "data={\"token\": \"aaaaaaaaaa\",\"body\": {\"keywords\": \"蓝月亮\"}}");
  47. return params;
  48. }
  49. }


3、main函数测试成功后,打成jar包,放到%Jmeter_Home%\lib\ext目录中即可
三、运行用例
1、运行%Jmeter_Home%\bin\jmeter.bat
2、添加线程组,Java请求、查看结果树、聚合报告
3、执行后的结果为
Tips:
快捷键
Ctrl+R运行用例、Ctrl+E清除运行结果

Java+Jmeter接口测试的更多相关文章

  1. JMeter 接口测试-if控制器

    JMeter 接口测试-if控制器 ​ 使用场景: 当业务场景是用户登录才能支付操作, 不登录点击支付, 页面会跳转到登录页面. 对于接口也是这样, 一个接口需要执行前, 需要有前提条件, 比如0状态 ...

  2. Jmeter 接口测试知识梳理——持续集成篇

    Jmeter 使用也有很长时间了,但是一直没有做一下知识梳理,近期会对公司同事做一下这方面的培训,借此机会,把使用过程中应用到的知识,或是遇到的问题,整理出来,方便大家学习! Jmeter + Ant ...

  3. Jmeter接口测试(一) Jmeter简介

    一.Jmeter介绍 (一)Jmeter简介 Apache JMeter 是 Apache 组织的开放源代码项目,是一个纯 Java 桌面应用,用于压力测试和性能测试.它最初被设计用于 Web 应用测 ...

  4. JMeter接口测试和压力测试

    JMeter接口测试和压力测试 JMeter可以做接口测试和压力测试.其中接口测试的简单操作包括做http脚本(发get/post请求.加cookie.加header.加权限认证.上传文件).做web ...

  5. Jmeter接口测试加解密及Bean Shell使用案例

    Jmeter接口测试加解密及Bean Shell使用案例 https://blog.csdn.net/russ44/article/details/56009084 本文以base64加解密为例: 一 ...

  6. 全网最全最细的jmeter接口测试教程以及接口测试流程详解

    一.Jmeter简介 ​ Jmeter是由Apache公司开发的一个纯Java的开源项目,即可以用于做接口测试也可以用于做性能测试. Jmeter具备高移植性,可以实现跨平台运行. Jmeter可以实 ...

  7. Jmeter接口测试流程详解(中科软测认证中心)

    1.jmeter简介 Jmeter是由Apache公司开发的java开源项目,所以想要使用它必须基于java环境才可以: Jmeter采用多线程,允许通过多个线程并发取样或通过独立的线程对不同的功能同 ...

  8. http接口测试——Jmeter接口测试实例讲解

    摘要: 最近做的项目需要测试很多接口,上网查一查,发现完整讲述接口测试的资料太少,所以最近自己做完这个项目,把测试的东西整理一下和大家分享一下,希望对看到的人有所帮助     一.测试需求描述 1. ...

  9. jmeter接口测试教程

    一.Jmeter接口测试步骤: 1.添加线程组

随机推荐

  1. 在VS2010中使用Git【图文】转

    在之前的一片博客<Windows 下使用Git管理Github项目>中简单介绍了在Windows环境中使用Git管理Github项目,但是是使用命令行来进行操作的,本文将简单介绍下在VS2 ...

  2. 线程的状态有哪些,线程中的start与run方法的区别

    线程在一定条件下,状态会发生变化.线程一共有以下几种状态: 1.新建状态(New):新创建了一个线程对象. 2.就绪状态(Runnable):线程对象创建后,其他线程调用了该对象的start()方法. ...

  3. SQL Server解析XML数据的方法详解

    --下面为多种方法从XML中读取EMAIL DECLARE @x XML SELECT @x = ' <People> <dongsheng> <Info Name=&q ...

  4. 获取CPU序列号、网卡MAC地址、硬盘序列号

    <pre name="code" class="csharp"> using System; using System.Collections; u ...

  5. circRNA

    一.circRNA序列提取 环状RNA (circRNA)是一类不具有 5' 末端帽子和 3' 末端 poly(A)尾巴.并以共价键形成环形结构的非编码 RNA 分子. 环状RNA (circRNA) ...

  6. 面向对象【day08】:反射(五)

    本节内容 概述 反射函数 综合使用 一.概述 反射我们以后会经常用到,这个东西实现了动态的装配,通过字符串来反射类中的属性和方法 二.反射函数 2.1 hasarttr(obj,name_str) 作 ...

  7. Study 6 —— 字体和段落属性

    字体风格{font-style:normal | italic | oblique | inherit字体复合属性{font:font-style font-variant font-weight f ...

  8. docker入门(三)

    docker容器IP"暴露"到外网(宿主机外) 首先将docker容器IP固定 Docker自身的4种网络工作方式,简略说明下: host模式,使用--net=host指定. co ...

  9. 宕机不等于关机,阴魂不散的vm

    今天早上刚到公司,就发现研发环境的机器连不上了. 公司研发环境的部署比较简单,物理机上装VMware Esxi 6 ,然后在esxi上装虚机. 检查发现:esxi ping不通,客户端也连不上:物理机 ...

  10. webuploader

    https://www.cnblogs.com/study-fanzeng/p/8930939.html http://fex.baidu.com/webuploader/doc/index.html ...