性能工具Gatling 开发环境搭建

网友投稿 716 2022-05-30

性能工具之 Gatling 开发环境搭建

前言

安装插件

新建工程

运行结果

总结

前言

安装插件

新建工程

运行结果

总结

前言

编写 Gatling 脚本需要搭建脚本开发环境,下面演示使用 IDEA 开发环境搭建脚本开发环境。

安装插件

打开 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 : 填入你想使用的版本号

查找版本号如:

之后的步骤就下一步下一步就行了。

工程目录如下:

注意:中间 dunsanTest02 是自己写的

目录结构说明:

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

参考 Demo 代码:

import io.gatling.core.scenario.Simulation import io.gatling.core.Predef._ import io.gatling.http.Predef._ /** * @author 7d * @Date: 2021-04-27 20:08 * @Description: 简单例子 * @version 1.0 */ class dunsanTest02 extends Simulation { object HomeIndex { val home = exec(http("home_index") //设置请求名称,可随意定义 .get("http://localhost:8080/") //请求资源路径 .check(status.is(200)) //判断http status ) } // scenario里的参数:scenario name //exec()里的参数就是我们的执行动作,http("本次请求的名称").get("本次http get请求的地址") val page = scenario("性能测试。").exec(HomeIndex.home) setUp( //设置线程数 运行10秒 during 默认单位秒,如果要用微秒 during(10 millisecond) page.inject(constantUsersPerSec(2) during (10)) // constantUsersPerSec 立马启动的用户数,可以理解为并发数 ) } //repeat(times,counterName) // times:循环次数 // counterName:计数器名称,可选参数,可以用来当当前循环下标值使用,从0开始 val scn = scenario("BaiduSimulation").repeat(100){ exec(http("baidu_home").get("/")) } //during(duration, counterName, exitASAP) // duration:时长,默认单位秒,可以加单位milliseconds,表示毫秒 // counterName:计数器名称,可选。很少使用 // exitASAP:默认为true,简单的可以认为当这个为false的时候循环直接跳出,可在循环中进行控制是否继续 /* 运行100秒 during 默认单位秒,如果要用微秒 during(100 millisecond) */ val scn = scenario("BaiduSimulation").during(100){ exec(http("baidu_home").get("/")) }

运行结果

run 起来看看:

控制台显示:

运行结果如下:

打开 html 报告:

验证写的脚本是否可以放入 gatling 项目运行,效果如下:

liwen@ bin % ./gatling.sh GATLING_HOME is set to /Users/liwen/Downloads/gatling-charts-highcharts-bundle-3.5.1 Choose a simulation number: [0] computerdatabase.BasicSimulation [1] computerdatabase.advanced.AdvancedSimulationStep01 [2] computerdatabase.advanced.AdvancedSimulationStep02 [3] computerdatabase.advanced.AdvancedSimulationStep03 [4] computerdatabase.advanced.AdvancedSimulationStep04 [5] computerdatabase.advanced.AdvancedSimulationStep05 [6] dunsanTest02 6 Select run description (optional) tiaoshibiadu Simulation dunsanTest02 started... ================================================================================ 2021-04-27 18:58:28 0s elapsed ---- Requests ------------------------------------------------------------------ > Global (OK=2 KO=0 ) > home_index (OK=2 KO=0 ) ---- 性能测试。--------------------------------------------------------------------- [##########################################################################]100% waiting: 0 / active: 0 / done: 2 ================================================================================ Simulation dunsanTest02 completed in 0 seconds Parsing log file(s)... Parsing log file(s) done Generating reports... ================================================================================ ---- Global Information -------------------------------------------------------- > request count 2 (OK=2 KO=0 ) > min response time 379 (OK=379 KO=- ) > max response time 506 (OK=506 KO=- ) > mean response time 443 (OK=443 KO=- ) > std deviation 64 (OK=64 KO=- ) > response time 50th percentile 443 (OK=443 KO=- ) > response time 75th percentile 474 (OK=474 KO=- ) > response time 95th percentile 500 (OK=500 KO=- ) > response time 99th percentile 505 (OK=505 KO=- ) > mean requests/sec 2 (OK=2 KO=- ) ---- Response Time Distribution ------------------------------------------------ > t < 800 ms 2 (100%) > 800 ms < t < 1200 ms 0 ( 0%) > t > 1200 ms 0 ( 0%) > failed 0 ( 0%) ================================================================================ Reports generated in 0s. Please open the following file: /Users/liwen/Downloads/gatling-charts-highcharts-bundle-3.5.1/results/dunsantest02-20210427105826635/index.html

总结

大家观察出来,Gatling 在运行的时候不像 JMeter 一样,在运行的时候输入时间与加载方式,Gatling 控制都在脚本中编写。

更多操作请参考官方文档:https://gatling.io/docs/current/

相关系列:

性能工具之 Gatling 快速入门

性能工具之 Gatling 开发环境搭建

IDE 压力测试

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:【DEVOPS】Devops关键实践
下一篇:大前端学习笔记--Vue.js 3.0
相关文章