TA的每日心情 | 无聊 2024-11-5 10:03 |
---|
签到天数: 77 天 连续签到: 1 天 [LV.6]测试旅长
|
一、搭建环境与下载
gatling是基于scala环境,但是scala是基于java的,需要二种环境,
1.java环境
地址:https://www.runoob.com/java/java-environment-setup.html
2.scala环境
地址:https://www.scala-lang.org/download/
直接下载安装,不需要配置环境变量。验证scala -version
3.下载gatling
地址:https://gatling.io/download/
文档:https://gatling.io/documentation/
入门:https://gatling.io/docs/current/quickstart/
- <font size="3" color="#000000">-gatling-charts-highcharts-bundle-3.0.3-bundle
- ---- bin 执行程序
- ---- ---- gatling.bat windows 环境运行
- ---- ---- gatling.sh liunx 环境运行
- ---- ---- recorder.bat windows 环境运行
- ---- ---- recorder.sh liunx 环境运行
- ---- conf 配置信息
- ---- lib 依赖包
- ---- user-files 用户文件
- ---- ---- bodies 用来存放请求的body数据
- ---- ---- data 数据目录,csv参数文件存放在这里
- ---- ---- simulations 测试脚本
- #####Run:
- > ```bash
- > #Linux/Unix执行脚本
- > >$GATLING_HOME/bin/gatling.sh
- > #Windows执行脚本
- > >%GATLING_HOME%\bin\gatling.bat
- </font>
复制代码 使用bat脚本运行下是此画面。
二、springboot与gatling结合进行压测
1.需要在IDEA安装scala插件
2.安装scala SDK 由于步骤一 我们已经安装完毕,不需要安装,只需要重新配置。
3.环境搭建
pom.xml
4.编写测试脚本
每一个 Gatling 测试都要继承 Simulation 类,在里面你可以使用Gatling Scala DSL 来声明一个场景列表。这里的目标是运行 30 个客户端,同时发送 1000 次请求
项目目录结构:
- <font size="3" color="#000000">package com.anoyi.test
- import io.gatling.core.scenario.Simulation
- import io.gatling.core.Predef._
- import io.gatling.http.Predef._
- import scala.concurrent.duration.FiniteDuration
- import scala.concurrent.duration.Duration
- import java.util.concurrent.TimeUnit
- class ApiGatlingSimulationTest extends Simulation {
- val scn = scenario("AddAndFindPersons").repeat(1000, "n") {
- exec(
- http("AddPerson-API")
- .post("http://localhost:8080/persons")
- .header("Content-Type", "application/json")
- .body(StringBody("""{"firstName":"John${n}","lastName":"Smith${n}","birthDate":"1980-01-01", "address": {"country":"pl","city":"Warsaw","street":"Test${n}","postalCode":"02-200","houseNo":${n}}}"""))
- .check(status.is(200))
- ).pause(Duration.apply(5, TimeUnit.MILLISECONDS))
- }.repeat(1000, "n") {
- exec(
- http("GetPerson-API")
- .get("http://localhost:8080/persons/${n}")
- .check(status.is(200))
- )
- }
- setUp(scn.inject(atOnceUsers(30))).maxDuration(FiniteDuration.apply(10, "minutes"))
- }
- </font>
复制代码 转自:http://t.csdn.cn/70vgv
|
|