Java+Jmeter接口测试

一、创建工程、引包

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清除运行结果

时间: 2025-01-18 16:37:32

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

WEB接口测试之Jmeter接口测试自动化 (三)(数据驱动测试)

 接口测试与数据驱动 1简介 数据驱动测试,即是分离测试逻辑与测试数据,通过如excel表格的形式来保存测试数据,用测试脚本读取并执行测试的过程. 2 数据驱动与jmeter接口测试 我们已经简单介绍了接口测试参数录入及测试执行的过程,因为大量的测试脚本与测试数据内聚在一起,使得我们的测试脚本的可移植性及可维护性变得很不好,所以我们接下来采取了csv格式表格保存测试数据来驱动测试的方式. 2.1 新建一个csv文件 新建一个txt文档文件,重命名文件,修改文件后缀名为csv,如test.csv,

使用Jmeter接口测试

使用Jmeter接口测试 1.首先右键添加一个线程组,然后我们重命名接口测试 2.在线程组上添加一个Http默认请求,并配置服务器的IP地址端口等信息 3.在线程组中添加一个HTTP请求,这里我们重命名"增加信用卡账户信息接口 4.配置接口请求信息,这配置示例如下,HTTP请求名称可以按需求命名: 注:由于Jmeter请求线程组内的请求时从第一个开始执行,所以我们将需要最先执行的请求放在前面 5.在线程组上添加监听器,察看结果树 6.点击启动,运行结束后查看,结果树 7.添加聚合报告 8.去数据

Jmeter接口测试操作

一.Jmeter接口测试操作步骤 1. 启动jmeter,右键点击测试计划-->添加-->Threads(Users)-->线程组,点击线程组菜单,右边显示参数设置. 2 . 右键点击线程组-->添加-->Sampler-->HTTP请求,此时在线程组下面出现HTTP请求选项.点击该选项,出现HTTP请求界面. 3 右键点击HTTP请求-->添加-->配置元件-->HTTP信息头管理器,在HTTP信息头管理器界面中点击"添加"按钮,

WEB接口测试之Jmeter接口测试自动化 (三)(数据驱动测试) 接口测试与数据驱动

转载:http://www.cnblogs.com/chengtch/p/6576117.html 1简介 数据驱动测试,即是分离测试逻辑与测试数据,通过如excel表格的形式来保存测试数据,用测试脚本读取并执行测试的过程. 2 数据驱动与jmeter接口测试 我们已经简单介绍了接口测试参数录入及测试执行的过程,因为大量的测试脚本与测试数据内聚在一起,使得我们的测试脚本的可移植性及可维护性变得很不好,所以我们接下来采取了csv格式表格保存测试数据来驱动测试的方式. 2.1 新建一个csv文件 新

Jmeter接口测试---基于http协议之get/post

Jmeter接口测试---get请求 1.创建一个线程组 测试计划---添加---Threads ---线程组 2.添加http请求,步骤如下图所示: 3.添加带有参数的get请求,如下图展示内容: 设置服务器名称或IP.端口号.路径.方法为get,其他默认 4.增加一个事务文本检查点.添加的步骤如下图所示: 设置所要检查的文本内容(如果返回的数据还不知道可先添加 察看结果树 看返回的数据是什么,再进行检查点的设置): 5.添加一个 察看结果树,用于调试能否返回正确的结果值: //=======

jmeter接口测试实例1-post请求

一.jmeter界面介绍 二.jmeter接口测试post请求实例1-登录 1.添加线程组 2.线程组下添加http请求 3.在http请求中写入接口url.路径.请求方式.参数 4.添加察看结果树 6.调用接口.查看返回值 原文地址:https://www.cnblogs.com/ddxxn/p/8570820.html

Jmeter接口测试参数传递----正则表达式实践

接口测试中通常下一步的入参需要依赖上一步的出参 如何获取上一步接口返回值中指定的参数呢? 1.如果是通过脚本实现接口测试,可通过实现一个方法来专门获取返回值的参数: 2.如果是使用工具测试,每个不同的工具都提供了不同的方法来获取参数: 以下主要讲解一下Jmeter中如何获取接口返回值的参数. Jmeter中提供了正则表达式提取器,可以方便的获取到接口返回值中的参数 如果B接口请求中需要传入bankCardSign和bindCardSign两个参数,但这两个参数在A接口的返回参数中,则可以采取以下

Jmeter接口测试(三)获取登录token

Jmeter接口测试--获取登录token 场景:Jmeter中每个线程组之间是独立的,数据不通用,有些接口需要登录后,才能进行下一步操作,这时候就需要在每个线程组中传递登录后的token信息,要不就需要在每个线程组里添加一次登录操作 1.添加一个setup线程组,我们把登录放在这个线程组里,在登录请求下添加正则表达式提取器 2.配置参数 说明: (1)引用名称:下一个请求要引用的参数名称,如填写token,则可用${token}引用它. (2)正则表达式: ():括起来的部分就是要提取的. .

Jmeter接口测试实战-数据传递

接口与接口之间没有关联的测试是缺乏意义和没有灵魂的,只有数据在不同接口之间传递才能勾画出业务场景重要的链路. 我们用较为通用的http/https协议,接口普遍返回json方式为例. 举例场景: 比如电商平台,用户登录后产生令牌token, 其他接口拿着这个token判断用户是否登录才能进行相关操作, 当用户将商品加入购物车支付完成后,系统按照规则生成订单号, 同时会在该用户的全部订单列表中查到全部订单和相应状态. 要点分析: 1. login接口登录后生成token 2. pay支付接口拿到t