一、创建工程、引包
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. spring-data-jpa与mybatis的对比

    Spring Data JPA 与 MyBatis对比 Spring Data JPA是Spring Data的子模块.使用Spring Data,使得基于“repositories”概念的JPA实现 ...

  2. Linux怎么安装vim编译器

    我的Linux系统是Ubantu14.04,默认的是vi编译器,现在安装vim编译器 打开终端输入:sudo apt-get install vim-gtk 一般来说就可以了,但是我的提示出现了报错: ...

  3. 学习windows编程 day4 之视口和窗口

    LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { HDC hdc; PAINTSTRU ...

  4. Spark记录-大数据简介

    什么是大数据 大数据(big data),指无法在一定时间范围内用常规软件工具进行捕捉.管理和处理的数据集合,是需要新处理模式才能具有更强的决策力.洞察发现力和流程优化能力的海量.高增长率和多样化的信 ...

  5. 2018牛客网暑期ACM多校训练营(第一场)D Two Graphs(图)

    题意 给两个图G1和G2,求G2的子图中与G1同构的数目. 分析 首先n=8,那么n!的算法问题不大.枚举G1的每个点,在G2中找同构的顶点序列.需要注意的是G1存在自同构的情况,所以对G1本身进行一 ...

  6. Spring RedisTemplate操作-序列化性能测试(12)

    @Autowired @Qualifier("redisTemplate") private RedisTemplate<String, String> stringr ...

  7. C# Winform中慎用Application.DoEvents

    private void Add() { ; i < ; i++) { Button button = new Button(); button.Width = ; button.Height ...

  8. 解决virtualbox与mac文件拖拽问题

    apt-get purge virtualbox-guest-x11apt-get autoremove --purgerebootapt-get updateapt-get dist-upgrade ...

  9. C# http get与post请求方法

    public class HttpTools { public static string GetRequest(string url) { HttpWebRequest request = (Htt ...

  10. sql 中的null值

    1.包含null的表达式都为空 select salary*12+nvl(bonus,0) nvl是虑空函数 2. null值永远!=null select  * from emp  where bo ...