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

 

这可能需要很长时间并且容易出错。假设我们有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 - >下一步 - >设置项目名称 - >设置项目位置 - >完成

 

如何使用JAR文件重用JMeter代码并节省时间如何使用JAR文件重用JMeter代码并节省时间

 

如何使用JAR文件重用JMeter代码并节省时间如何使用JAR文件重用JMeter代码并节省时间

 

如何使用JAR文件重用JMeter代码并节省时间如何使用JAR文件重用JMeter代码并节省时间

 

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

 

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

 

如何使用JAR文件重用JMeter代码并节省时间如何使用JAR文件重用JMeter代码并节省时间

 

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

 

文件 - >项目结构

 

如何使用JAR文件重用JMeter代码并节省时间如何使用JAR文件重用JMeter代码并节省时间

 

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

 

如何使用JAR文件重用JMeter代码并节省时间如何使用JAR文件重用JMeter代码并节省时间

 

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

 

如何使用JAR文件重用JMeter代码并节省时间如何使用JAR文件重用JMeter代码并节省时间

 

7.再次单击“确定”。

 

如何使用JAR文件重用JMeter代码并节省时间如何使用JAR文件重用JMeter代码并节省时间

 

8.创建一个Groovy类

 

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

 

如何使用JAR文件重用JMeter代码并节省时间如何使用JAR文件重用JMeter代码并节省时间

 

如何使用JAR文件重用JMeter代码并节省时间如何使用JAR文件重用JMeter代码并节省时间

 

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:" + "\n" + request.getRequestLine() + "\n" + "Headers: " +
           request.getAllHeaders() + "\n" + EntityUtils.toString(entity) + "\n";


   HttpClientBuilder.create().build().withCloseable { httpClient ->

       httpClient.execute(request).withCloseable { response ->

           String res = "RESPONSE:" + "\n" + response.getStatusLine() + "\n" + "Headers: " +
                   response.getAllHeaders() + "\n" +
                   (response.getEntity() != null ? EntityUtils.toString(response.getEntity()) : "") + "\n";

           System.out.println(req + "\n" + res);

           return Arrays.asList(req, res);
       }
   }
}
View Code

相关文章:

  • 2022-03-13
  • 2021-04-17
  • 2021-07-09
  • 2021-12-17
  • 2022-01-18
  • 2021-05-16
  • 2021-10-07
  • 2021-10-12
猜你喜欢
  • 2021-11-01
  • 2022-01-07
  • 2021-12-11
  • 2022-12-23
  • 2021-07-15
相关资源
相似解决方案