IDEA+Gatling+Scala进行性能测试

本文介绍如何在IntelliJ IDEA中搭建Gatling性能测试环境,包括安装Scala插件、创建Maven项目及配置,演示了一个简单的测试案例,针对百度首页进行负载测试。

基于java环境,阅读文章之前,请先确保安装了jdk

1、安装IDEA不赘述,百度有很多教程

2、下面直接开始环境的搭建

      为了方便和降低门槛,不需要下载,不需要安装到电脑。

    ①、打开IDEA,安装scala插件

         首次使用,随便创建一个工程,进入idea页面,按:Flie~>Settings~>Plugins,搜索Scala,点击“install”即可,如图所示:

        install为灰色即为已安装,install为绿色即为安装可用(未安装)状态,安装之后,restart一下idea即可

          

    ②、开始创建工程

       创建新工程 Create New Project

       

      选择maven,Create form archetype,Add Archetype

      

     上图红色框填入如下内容

     GroupId : io.gatling.highcharts

     ArtifactId : gatling-highcharts-maven-archetype

     Version : 填入你想使用的版本号(去maven中央仓库查询,下面截图为查询实例)

    查询gatling版本号:https://mvnrepository.com/

     

          

     填好红色框的内容之后,点击(OK),然后点击(next)

      填入GroupId,ArtifactId(这两个随便你怎么填都行),然后一路点击(next、next、next...最后点击finish)

        

    工程创建成功,文件结构如图

       

      项目目录说明:

        bodies:用来存放请求的body数据
        data:存放需要输入的数据
        scala:存放你编写的测试脚本
        Engine:右键运行跟运行
        Recorder:右键运行会弹出录制程序(不建议使用,建议手动开发脚本)
        target:运行测试之后,测试报告存放在此

  新建测试脚本,如图在scala目录右键:new ->Scala Class

      

  代码如下:请求www.baidu.com 

    

import io.gatling.core.scenario.Simulation
import io.gatling.core.Predef._
import io.gatling.http.Predef._
class testcase01  extends Simulation {
  object Home{
    val home = exec(http("Home_request")    //设置请求名称,可随意定义
      .get("http://www.baidu.com")                 //前端请求地址
      .check(status.is(200))          //判断http status   
    )
  }
  val scn1 = scenario("请求百度...").exec(Home.home)
  setUp(
    scn1.inject(constantUsersPerSec(2) during(10))
  )
}

运行 与结果分析

右键Scala路径下的Engine文件  Run ”Engine",输入1,代表运行第一个injection

结果分析:

命令行窗口结果,下图绿色划线处为本次测试结果文件(html很直观)

具体啥的不懂(英语?找google翻译吧)

贴一下,html结果图(仅仅截取一部分看看)

完成

 

 

 

### 核心架构与语言支持 Gatling 最初采用 Scala 作为其脚本编写语言,这使得测试脚本具备高度可编程性,但对不熟悉 Scala 的用户而言存在一定的学习门槛。直到 2024 年,Gatling 才开始支持 JavaScript,这一变化降低了脚本编写的门槛,使更多开发者能够快速上手编写性能测试脚本[^1]。相比之下,k6 从设计之初就以 JavaScript 为核心语言,强调“代码即测试”的理念,允许开发者在熟悉的语法环境中编写测试逻辑,具备更强的可读性和易用性[^3]。 ### 测试执行与运行环境 Gatling 基于 JVM 构建,依赖 Java 环境运行,支持命令行和 IDE(如 IntelliJ IDEA)进行脚本开发和执行。其测试执行模型采用异步非阻塞方式,能够高效模拟大量并发用户。k6 则是一个轻量级的 CLI 工具,无需依赖 JVM,具备更快的启动速度和更小的资源占用,更适合集成到 CI/CD 流程和云原生环境中运行[^3]。它也支持在本地运行或通过云服务进行分布式测试。 ### 功能特性与扩展性 Gatling 提供了丰富的内置功能,包括断言、响应验证、CSV 数据驱动测试、HTML 报告生成等,其企业版还支持与 CI/CD 平台集成、远程执行和性能瓶颈分析。开源版本虽然功能强大,但在高级功能方面仍受限。k6 则以模块化设计著称,支持通过插件扩展其功能,例如支持 Kafka、Redis、WebSocket 等多种协议。其生态系统与 Grafana 深度整合,便于实时监控测试结果和性能趋势分析。 ### 可视化与监控集成 Gatling 的测试报告以 HTML 形式呈现,包含详细的响应时间、吞吐量、错误率等指标,适合生成静态报告用于分析。k6 则内置对 Prometheus 的支持,能够将测试指标实时推送到时间序列数据库,并通过 Grafana 进行可视化展示,便于在 DevOps 流程中实现性能指标的持续监控和告警。 ### 使用场景与适用对象 Gatling 更适合需要复杂测试逻辑、高并发模拟和企业级报告生成的场景,适用于对性能测试有较高要求的中大型系统。k6 则更适合现代 DevOps 实践,尤其是需要快速迭代、自动化测试和云原生部署的项目,适合中小型团队快速构建和执行性能测试。 ### 示例:k6 测试脚本片段 ```javascript import http from 'k6/http'; import { sleep } from 'k6'; export default function () { http.get('https://example.com'); sleep(1); } ``` ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值