zoukankan      html  css  js  c++  java
  • 如何使用JAR文件重用JMeter代码并节省时间

    在开发测试时,通常需要在测试中编写代码。此代码可能很长,可能会在多个测试中重复,或者可能仅针对特定测试编写。此外,如果要求发生变化,则在测试中编写的代码可能必须更改或补充。

    这可能需要很长时间并且容易出错。假设我们有20个Apache JMeter™测试,其中编写了相同的代码,并且在某个时间点我们决定对所有20个测试的代码进行更改。必须在每个JMeter测试中进行更改为了摆脱这种日常工作,我们可以从JAR文件中调用代码进行测试(JAR文件是Java Archive)。

    将在开发环境(例如,IntelliJ IDEA)中编写将在描述测试方法的测试中使用的代码,创建一个JAR文件,并且仅执行所需代码和测试请求的调用。测试本身。我们不需要在测试中直接编写代码,如果由于某种原因我们需要更改代码,我们只在一个地方更改它。

    前一篇文章“在JMeter中使用Groovy发送HTTP和HTTPS请求”  展示了如何使用Groovy创建发送HTTP / HTTPS请求的方法。基于这些方法,本文将展示如何在测试中创建JAR文件并在JAR文件中使用此类方法。

    要创建此类JAR文件,您必须执行以下操作:

    先决条件

    1.下载并安装GroovyIntelliJ IDEA

    2.下载以下JAR文件:

    需要JAR文件来创建发送HTTP / HTTPS请求的方法。

    设置Intellij IDEA

    3.运行IntelliJ IDEA并创建项目,如下所示。

    创建新项目 - > Groovy - >下一步 - >设置项目名称 - >设置项目位置 - >完成

    增加图像jmeter和jar文件

    增加图像为jmeter jar文件设置intellij的想法

    增加图像重复使用jmeter代码与jar文件

    • 项目名称 - 任意名称。我给了这个名字“Jmeter”。
    • 项目位置 - 项目所在的目录

    4.单击“完成”按钮后,创建的项目将如下图所示。

    增加图像重复使用jmeter groovy脚本

    5.将下载的JAR文件添加到项目中

    文件 - >项目结构

    增加图像groovy代码回收jmeter

    模块 - >依赖项 - >“+” - > JAR或目录

    增加图像使用jmeter和intellij想法进行开源负载测试

    6.从打开的列表中,选择先前下载的JAR文件,然后单击“确定”。

    增加图像下载jmeter的jar文件

    7.再次单击“确定”。

    增加图像jmeter jar文件测试

    8.创建一个Groovy类

    src - >右键单击 - >新建 - > Groovy类 - 设置名称 - >设置种类 - >单击“确定”

    增加图像jar文件中的常规,jmeter

    增加图像负载测试指南与groovy

    9.将要重用的代码添加到创建的类中。在这种情况下:

    static List<String> sendRequest(String url, String method, Map<String,Object> body) {
       RequestConfig requestConfig = RequestConfig.custom()
               .setConnectTimeout(2000)
               .setSocketTimeout(3000)
               .build();
    
       StringEntity entity = new StringEntity(new Gson().toJson(body), "UTF-8");
    
    
       HttpUriRequest request = RequestBuilder.create(method)
               .setConfig(requestConfig)
               .setUri(url)
               .setHeader(HttpHeaders.CONTENT_TYPE, "application/json;charset=UTF-8")
               .setEntity(entity)
               .build();
    
       String req = "REQUEST:" + "
    " + request.getRequestLine() + "
    " + "Headers: " +
               request.getAllHeaders() + "
    " + EntityUtils.toString(entity) + "
    ";
    
    
       HttpClientBuilder.create().build().withCloseable { httpClient ->
    
           httpClient.execute(request).withCloseable { response ->
    
               String res = "RESPONSE:" + "
    " + response.getStatusLine() + "
    " + "Headers: " +
                       response.getAllHeaders() + "
    " +
                       (response.getEntity() != null ? EntityUtils.toString(response.getEntity()) : "") + "
    ";
    
               System.out.println(req + "
    " + res);
    
               return Arrays.asList(req, res);
           }
       }
    }
    View Code

    增加图像在jmeter和intellij想法中的groovy脚本

    “在JMeter中使用Groovy发送HTTP和HTTPS请求”中给出了此代码的说明唯一的区别是“静态”访问修饰符。其描述将在本文后面给出。添加自己的代码时,请务必添加它。

    10.创建另一个JAR文件。此文件将添加到JMeter。

    文件 - >项目结构

    增加图像将jar文件添加到jmeter

    工件 - >单击“+” - > JAR - >从具有依赖关系的模块 - >确定

    增加图像用groovy重用测试方法

    增加图像jmeter.jar,intellij idea,groovy

    11.选择并删除除Jmeter.jar之外的所有文件,如下图所示。此名称根据项目名称生成。

    增加图像开源负载测试jmeter groovy intelliJ想法

    12.双击每个文件,从“可用元素”部分添加文件,如下图所示。IntelliJ将显示文件。这些是本文开头的JAR文件。

    增加图像将jmeter文件添加到intellij的想法

    13.添加后,将显示文件,如下图所示。单击“确定”。

    增加图像为jmeter构建jar文件

    14. 构建 - >构建工件...... - >构建

    增加图像jmeter jar文件构建教程

    增加图像jmeter groovy教程

    单击“Build”后,将在目录... Jmeter out artifacts Jmeter_jar中创建一个JAR文件,如下图所示。

    增加图像常规的jmeter指南

    设置JMeter

    15.将JAR文件添加到JMeter

    将创建的JAR文件复制到JMeter目录... apache-jmeter-4.0 lib

    增加图像将jar文件复制到jmeter目录

    创建JAR文件并将其添加到JMeter后,可以在JMeter本身中调用List <String> sendRequest(String url,String方法,Map <String,Object> body)方法。这将调用JAR文件中的代码。

    为此,您需要在JMeter中执行以下操作:

    16.添加一个线程组

    右键单击 - >添加 - >线程(用户) - >线程组

    增加图像指导apache groovy

    17.添加JSR223采样器

    线程组 - >右键单击 - >添加 - >采样器 - > JSR223采样器

    JSR223采样器 - >语言Groovy

    增加图像时髦的语言jmeter

    18.在JSR223 Sampler中,添加以下代码示例。

    Map<String,Object> map = new LinkedHashMap<>();
    map.put("Param_1", "Value_1");
    map.put("Param_2", Arrays.asList(1,2,3,4));
    map.put("Param_3", Arrays.asList("a","b","c"));
    
    List test1 = Requests.sendRequest("https://hooks.zapier.com/hooks/catch/3320164/az95by","POST", map);
    log.info(Arrays.toString(test1));
    View Code
     

    增加图像通过构建jar文件在jmeter中编写groovy脚本

    根据您的方案更新测试参数。在这种情况下,“https://hooks.zapier.com/hooks/catch/3320164/az95by","POST”,地图。

    在调用sendRequest()方法时,我们不需要导入Requests类(例如,import Requests;)来访问该类,并且不需要创建类对象(例如,Requests requests = new Requests() )访问该方法。

    我们只需要指定类的名称(在我们的例子中是Requests),并通过具有相应参数值的点指定方法的名称。这种形式的方法调用变得可用,因为我们在IntelliJ IDEA中创建了一个静态方法。静态方法是一种方法,在此方法之前,访问修饰符是“静态的”

    19.运行执行代码后,我们在JMeter控制台中获得以下结果:

    增加图像使用jmeter执行代码

    上图显示了正在发送的请求和收到的响应。

    cmd还将显示已发送的请求和收到的响应,如下图所示。

    增加图像用jmeter中的groovy发送请求

    而已!现在,每次更新测试时都不需要更改整个代码。如果确实更改了测试方法,请确保在JMeter中更新正确的JAR文件。

  • 相关阅读:
    C# 编码解码
    asp.net跨域问题
    C# crc16modbus
    c# 日志生成
    C# 对newtonsoft.json对象进行ascii排序
    C# 字节转结构体、结构体转字节
    按ascill排序参数
    C# Rsa加密(私钥加密、公钥解密、密钥格式转换、支持超大长度分段加密)
    Interview
    Leetcode
  • 原文地址:https://www.cnblogs.com/a00ium/p/10352905.html
Copyright © 2011-2022 走看看