Jmeter测试脚本编写(初学者熟悉篇)

发表于:2019-5-27 08:46

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:M_派森    来源:博客园

  Jmeter的Sampler用来模拟向被测试系统发起请求的,Jmeter会记录取样的结果,也就是TPS、响应时间等性能指标。接下来就是使用Java请求进行一个接口测试
  大致流程
  1、导入jar包:导入Jmeter相关jar包
  2、编写脚本:使用Eclipse或者IntelliJ IDEA,进行Java测试脚本的编写
  3、导出为jar包:使用Eclipse或者IntelliJ IDEA将测试脚本编译打包为jar包导出
  4、配置Jmeter:使用自编译的jar包,以及一些相关配置进行性能测试
  5、选择自编写jar包:自编译jar包
  6、Jmeter运行:开始运行
  实战操作
  一、核心步骤(以我实际操作为例)
  1.创建工程
  使用IntelliJ IDEA创建一个Java工程,取名为JmeterTest;
  2.添加依赖
  2.1lib及子目录依赖
  将JMeter的lib目录下的jar文件添加进此工程;
  注意:此处有坑,不能只添加lib这个大目录,还需要添加lib目录下的ext和junit目录,否则无法调用相关jar包
  lib目录下两个两个子目录
  2.2IDEA操作
  1、打开 File -> Project Structure (Ctrl + Shift + Alt + S)或者使用快捷键
  Project Structure
  快捷键
  Models添加依赖
  3.脚本编写
  创建一个类并实现JavaSamplerClient接口或继承AbstractJavaSamplerClient,并重写:
  public Arguments getDefaultParameters():设置可用参数及的默认值;
  public void setupTest(JavaSamplerContext arg0):每个线程测试前执行一次,做一些初始化工作;
  public SampleResult runTest(JavaSamplerContext arg0):开始测试,从arg0参数可以获得参数值;
  public void teardownTest(JavaSamplerContext arg0):测试结束时调用;
  3.1服务
   package test;
  import java.io.File;
  import java.io.PrintWriter;
  /**
  * Created by April_Chou on 2018/4/10.
  */
  public class OutputService {
  public static void output(String filename,int a, int b)throws Exception {
  PrintWriter out =new PrintWriter(new File(filename));
  out.write(a+":"+b);
  out.close();
  }
  }
  3.2测试类:
   package test;
  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;
  /**
  * Created by April_Chou on 2018/4/10.
  */
  public class PerformenceTestimplements JavaSamplerClient {
  private SampleResultresults;
  private Stringa;
  private Stringb;
  private Stringfilename;
  // 设置传入的参数,可以设置多个,已设置的参数会显示到Jmeter的参数列表中
  public ArgumentsgetDefaultParameters() {
  Arguments params =new Arguments();
  params.addArgument("filename", "0");//设置参数,并赋予默认值0
  params.addArgument("a", "0");//设置参数,并赋予默认值0
  params.addArgument("b", "0");//设置参数,并赋予默认值0
  return params;
  }
  // 初始化方法,实际运行时每个线程仅执行一次,在测试方法运行前执行
  public void setupTest(JavaSamplerContext arg0) {
  results =new SampleResult();
  }
  // 测试执行的循环体,根据线程数和循环次数的不同可执行多次
  @Override
  public SampleResultrunTest(JavaSamplerContext arg0) {
  b = arg0.getParameter("b"); // 获取在Jmeter中设置的参数值
  a = arg0.getParameter("a"); // 获取在Jmeter中设置的参数值
  filename = arg0.getParameter("filename"); // 获取在Jmeter中设置的参数值
  results.sampleStart();// jmeter 开始统计响应时间标记
  try {
  OutputService test =new OutputService();
  test.output(filename,Integer.parseInt(a), Integer.parseInt(b));
  results.setSuccessful(true);
  // 被测对象调用
  }catch (Throwable e) {
  results.setSuccessful(false);
  e.printStackTrace();
  }finally {
  results.sampleEnd();// jmeter 结束统计响应时间标记
  }
  return results;
  }
  // 结束方法,实际运行时每个线程仅执行一次,在测试方法运行结束后执行
  public void teardownTest(JavaSamplerContext arg0) {
  }
  public static void main(String[] args) {
  // TODO Auto-generated method stub
  Arguments params =new Arguments();
  params.addArgument("a", "0");//设置参数,并赋予默认值0
  params.addArgument("b", "0");//设置参数,并赋予默认值0
  JavaSamplerContext arg0 =new JavaSamplerContext(params);
  PerformenceTest test =new PerformenceTest();
  test.setupTest(arg0);
  test.runTest(arg0);
  test.teardownTest(arg0);
  }
  }
  4.Export为Runnable Jar File
  打开IDEA的file -> Project Structure或者快捷方式,进入项目配置页面。如下图:
  Artifacts
  点击Artifacts,进入Artifacts配置页面,点击 + ,选择如下图的选项
  Artifacts
  创建
  说明:
  第一步选择Main函数执行的类,可以进行自动搜索。
  第二步选择如图的选项,目的是对第三方Jar包打包时做额外的配置,如果不做额外的配置可不选这个选项(但不保证打包成功)
  第三步需要在测试类的目录下,新建一个resources目录,将MANIFEST.MF文件保存在这里面,因为如果用默认缺省值的话,在IDEA12版本下会有bug。
  点击OK之后,出现如下图界面,右键点击output root,点击Create Directory,创建一个libs,将所有的第三方JAR放进libs目录下,成功之后,如下图所示:
  libs
  放入之后,点击我们要打成的jar的名字,这里面是JmeterTest.jar,选择classpath进行配置
  classpath
  添加libs/
  最后点击配置页面的OK,完成配置。回到IDEA,点击Build->Build Artifacts,选择build
  build
  就会生成我们需要的jar包。其位置在项目目录的out目录下
  jar包成功
  5.Jmeter导入
  将此jar包放入JMETER_HOME\lib\ext目录
  6.打开Jmeter
  建议以管理员身份打开JMeter
  7.配置Jmeter
  创建线程组、Java请求、图形结果、查看结果树、聚合报告、用表格察看结果,进行测试
  注意:
  这样的Java请求值需要你在相应的盘创建一个文件夹,否则会运行失败,我这里是D盘创建了一个test的文件夹。
  界面
  Java请求里的参数可以使用函数助手进行填充,如下图:
  函数助手
  函数助手
  函数助手
  线程组设置
  8.运行结果
  图形结果
  用表格察看结果
  察看结果树
  聚合报告

      上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号