Tạo script kiểm thử tải Gatling
Tạo tệp khởi đầu Gatling Scala Simulation để review từ injection profile, scenario, HTTP/WebSocket request, check, feeder và protocol option.
Gatling is an open-source load testing tool that simulates many users hitting your API or website at the same time, then reports response times, throughput, and errors. This generator turns the form below into a reviewable Simulation.scala starter file: configure the target URL, how users arrive, the requests they make, and the pass/fail checks, then download, review, compile, and run only against an authorized target.
Who it's for
Backend / SRE / QA engineers who need real load numbers without writing Scala from scratch. Beginners and Gatling pros alike.
Kết quả nhận được
A starter Simulation.scala with HTTP protocol, scenarios, requests, checks, and an injection profile. Edit further if needed.
Privacy
Generation occurs in this browser tab. Do not paste live credentials, and review browser/site telemetry policy first.
exec(http(...)) call inside every scenario. Reorder, duplicate, or load a template.import io.gatling.core.Predef._
import io.gatling.http.Predef._
import scala.concurrent.duration._
class GeneratedSimulation extends Simulation {
val httpProtocol = http
.baseUrl("https://example.com")
.acceptHeader("application/json")
.contentTypeHeader("application/json")
val scn1 = scenario("User Journey")
.repeat(1) {
exec(http("Home Page")
.get("/")
.requestTimeout(10.seconds)
.check(status.is(200))
.check(responseTimeInMillis.lt(500))
.check(substring("success"))
)
.pause(1)
exec(http("Login")
.post("/api/auth/login")
.requestTimeout(10.seconds)
.body(StringBody("""{\"username\":\"${username}\",\"password\":\"${password}\"}"""))
.check(status.is(200))
.check(responseTimeInMillis.lt(500))
.check(substring("success"))
)
.pause(1)
exec(http("Get Products")
.get("/api/products")
.requestTimeout(10.seconds)
.check(status.is(200))
.check(responseTimeInMillis.lt(500))
.check(substring("success"))
)
.pause(1)
exec(http("Product Detail")
.get("/api/products/${id}")
.requestTimeout(10.seconds)
.check(status.is(200))
.check(responseTimeInMillis.lt(500))
.check(substring("success"))
)
.pause(1)
exec(http("Add To Cart")
.post("/api/cart")
.requestTimeout(10.seconds)
.body(StringBody("""{\"productId\":\"${id}\",\"qty\":1}"""))
.check(status.is(200))
.check(responseTimeInMillis.lt(500))
.check(substring("success"))
)
}
val scn2 = scenario("Browse Products")
.repeat(2) {
exec(http("Home Page")
.get("/")
.requestTimeout(10.seconds)
.check(status.is(200))
.check(responseTimeInMillis.lt(500))
.check(substring("success"))
)
.pause(1)
exec(http("Login")
.post("/api/auth/login")
.requestTimeout(10.seconds)
.body(StringBody("""{\"username\":\"${username}\",\"password\":\"${password}\"}"""))
.check(status.is(200))
.check(responseTimeInMillis.lt(500))
.check(substring("success"))
)
.pause(1)
exec(http("Get Products")
.get("/api/products")
.requestTimeout(10.seconds)
.check(status.is(200))
.check(responseTimeInMillis.lt(500))
.check(substring("success"))
)
.pause(1)
exec(http("Product Detail")
.get("/api/products/${id}")
.requestTimeout(10.seconds)
.check(status.is(200))
.check(responseTimeInMillis.lt(500))
.check(substring("success"))
)
.pause(1)
exec(http("Add To Cart")
.post("/api/cart")
.requestTimeout(10.seconds)
.body(StringBody("""{\"productId\":\"${id}\",\"qty\":1}"""))
.check(status.is(200))
.check(responseTimeInMillis.lt(500))
.check(substring("success"))
)
}
val scn3 = scenario("Checkout Flow")
.repeat(1) {
exec(http("Home Page")
.get("/")
.requestTimeout(10.seconds)
.check(status.is(200))
.check(responseTimeInMillis.lt(500))
.check(substring("success"))
)
.pause(1)
exec(http("Login")
.post("/api/auth/login")
.requestTimeout(10.seconds)
.body(StringBody("""{\"username\":\"${username}\",\"password\":\"${password}\"}"""))
.check(status.is(200))
.check(responseTimeInMillis.lt(500))
.check(substring("success"))
)
.pause(1)
exec(http("Get Products")
.get("/api/products")
.requestTimeout(10.seconds)
.check(status.is(200))
.check(responseTimeInMillis.lt(500))
.check(substring("success"))
)
.pause(1)
exec(http("Product Detail")
.get("/api/products/${id}")
.requestTimeout(10.seconds)
.check(status.is(200))
.check(responseTimeInMillis.lt(500))
.check(substring("success"))
)
.pause(1)
exec(http("Add To Cart")
.post("/api/cart")
.requestTimeout(10.seconds)
.body(StringBody("""{\"productId\":\"${id}\",\"qty\":1}"""))
.check(status.is(200))
.check(responseTimeInMillis.lt(500))
.check(substring("success"))
)
}
setUp(
scn1.inject(
rampUsers(100).during(10.minutes),
constantUsersPerSec(100).during(20.minutes),
rampUsers(100).during(5.minutes)
),
scn2.inject(
rampUsers(100).during(10.minutes),
constantUsersPerSec(100).during(20.minutes),
rampUsers(100).during(5.minutes)
),
scn3.inject(
rampUsers(100).during(10.minutes),
constantUsersPerSec(100).during(20.minutes),
rampUsers(100).during(5.minutes)
)
).protocols(httpProtocol)
}
Tạo script kiểm thử tải Gatling là gì?
Tạo tệp khởi đầu Gatling Scala Simulation để review từ injection profile, scenario, HTTP/WebSocket request, check, feeder và protocol option. Base URL/protocol, injection user và ramp/hold/down, scenario, request, check, CSV feeder, vòng repeat/during và WebSocket tùy chọn. Tệp Scala Simulation.scala khởi đầu có thể tải, chứa injection, scenario, protocol, request, check và feeder đã cấu hình.
Mở công cụ
Công cụ này làm gì?
- Dữ liệu đầu vào: Base URL/protocol, injection user và ramp/hold/down, scenario, request, check, CSV feeder, vòng repeat/during và WebSocket tùy chọn.
- Thiết lập và cách xử lý: Injection user/ramp/hold/down, scenario repeat/during, HTTP request builder, check, CSV feeder, protocol option, WebSocket option, preview và download.
- Kết quả đầu ra: Tệp Scala Simulation.scala khởi đầu có thể tải, chứa injection, scenario, protocol, request, check và feeder đã cấu hình.
Cách sử dụng
- Thêm dữ liệu đầu vào. Base URL/protocol, injection user và ramp/hold/down, scenario, request, check, CSV feeder, vòng repeat/during và WebSocket tùy chọn.
- Kiểm tra thiết lập. Injection user/ramp/hold/down, scenario repeat/during, HTTP request builder, check, CSV feeder, protocol option, WebSocket option, preview và download.
- Tạo, đối chiếu và xuất kết quả. Tệp Scala Simulation.scala khởi đầu có thể tải, chứa injection, scenario, protocol, request, check và feeder đã cấu hình.
Tính năng chính
- Dữ liệu đầu vào: Base URL/protocol, injection user và ramp/hold/down, scenario, request, check, CSV feeder, vòng repeat/during và WebSocket tùy chọn.
- Thiết lập và cách xử lý: Injection user/ramp/hold/down, scenario repeat/during, HTTP request builder, check, CSV feeder, protocol option, WebSocket option, preview và download.
- Kết quả đầu ra: Tệp Scala Simulation.scala khởi đầu có thể tải, chứa injection, scenario, protocol, request, check và feeder đã cấu hình.
Tình huống sử dụng
- Tạo tệp khởi đầu Gatling Scala Simulation để review từ injection profile, scenario, HTTP/WebSocket request, check, feeder và protocol option.
- Dùng khi cần đầu ra hoặc kết quả kiểm tra sau: Tệp Scala Simulation.scala khởi đầu có thể tải, chứa injection, scenario, protocol, request, check và feeder đã cấu hình.
- Đặt công cụ trước bước đã xác minh tiếp theo trong quy trình: compile trong project Gatling đích, chạy smoke test được phép và tăng tải dần dưới monitoring.
Giới hạn và lưu ý an toàn
- Generator không chạy Gatling hoặc đảm bảo compile. Scala DSL và cấu trúc dự án thay đổi theo version/build tool; dependency, import, feeder, session variable, check, TLS, auth và quyền test target phải review.
Khắc phục sự cố
- Bắt đầu bằng một request đã được cấp quyền và scenario nhỏ nhất; kiểm tra version công cụ đích, cú pháp, import/dependency và data reference trong project thật.
- Chuyển credential sang biến môi trường hoặc secret management, compile/lint tệp được tạo rồi chạy smoke test tải thấp trước khi ramp-up.
- Generator không chạy Gatling hoặc đảm bảo compile. Scala DSL và cấu trúc dự án thay đổi theo version/build tool; dependency, import, feeder, session variable, check, TLS, auth và quyền test target phải review.
Câu hỏi thường gặp
Tạo script kiểm thử tải Gatling là gì?
Tạo tệp khởi đầu Gatling Scala Simulation để review từ injection profile, scenario, HTTP/WebSocket request, check, feeder và protocol option.
Cách dùng Tạo script kiểm thử tải Gatling như thế nào?
Thêm đúng dữ liệu đầu vào, kiểm tra thiết lập của trang rồi đối chiếu kết quả trước khi sao chép hoặc tải xuống. Đầu ra dự kiến: Tệp Scala Simulation.scala khởi đầu có thể tải, chứa injection, scenario, protocol, request, check và feeder đã cấu hình.
Công cụ nhận dữ liệu đầu vào nào?
Base URL/protocol, injection user và ramp/hold/down, scenario, request, check, CSV feeder, vòng repeat/during và WebSocket tùy chọn.
Công cụ tạo đầu ra gì?
Tệp Scala Simulation.scala khởi đầu có thể tải, chứa injection, scenario, protocol, request, check và feeder đã cấu hình.
Công cụ có giới hạn gì?
Generator không chạy Gatling hoặc đảm bảo compile. Scala DSL và cấu trúc dự án thay đổi theo version/build tool; dependency, import, feeder, session variable, check, TLS, auth và quyền test target phải review.
Công cụ AppKiro liên quan
Bắt đầu bằng dữ liệu mẫu đã kiểm tra
Tạo script nhỏ nhất, review trong project đích và chỉ chạy với hệ thống non-production đã được cấp quyền trước mọi ramp-up có kiểm soát.
Mở công cụ