关键词:
一、前言
编写 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/
工具技巧php之phalcon环境搭建(代码片段)
...web站点和应用的高级工具,让开发者不用担心框架的性能问题.官网地址:Phalcon7让一切变得简单!—Phalcon71.3.2文档1.安装phalocn(1)下载phalocncd/usr/local/srcgitclone--depth=1gi 查看详情
工具技巧php之phalcon环境搭建(代码片段)
...web站点和应用的高级工具,让开发者不用担心框架的性能问题.官网地址:Phalcon7让一切变得简单!—Phalcon71.3.2文档1.安装phalocn(1)下载phalocncd/usr/local/srcgitclone--depth=1gi 查看详情
负载,性能测试工具-gatling(代码片段)
...能强大的负载测试工具,它为易于使用,高可维护性和高性能而设计。开箱即用,Gatling由于对HTTP协议的出色支持,使其成为负载测试任何HTTP服务器的首选工具。由于核心引擎实际上是协议不可知的,因此完全可以实现对其他协... 查看详情
gatling高性能测试工具(代码片段)
使用mvn命令直接测试。 (loadrunner-----)1.新建maven工程2.在pom中导入依赖<dependencies><dependency><groupId>io.gatling.highcharts</groupId><artifactId>gatling-charts-highcharts</artif 查看详情
性能工具之jmeterdubbo脚本开发(代码片段)
...口不带参数请求带参参数请求总结前言ApacheDubbo是一款高性能、轻量级的开源JavaRPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡 查看详情
性能工具之jmeter关联入门(代码片段)
...代码路由参考代码Jmeter脚本编写结果总结背景关联是每个性能测试人员必须掌握的技能,是解决性能脚本中的"金钥匙"。主要原理简单的说:每次请求服务器,服务器会给客户端发送一个动态值,但服务器会... 查看详情
开发环境搭建以及所需工具的安装(代码片段)
...比较多的,而且比较实用,并且都是采用目前最新版本的工具来配置的环境。下方内容主要包括了JDK1.8的安装、JavaEE版本的Eclipse的安装、Maven的安装、T 查看详情
性能工具之jmeterdubbo脚本开发(代码片段)
...口不带参数请求带参参数请求总结前言ApacheDubbo是一款高性能、轻量级的开源JavaRPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。IDEA环境项目部署工程... 查看详情
性能工具之jmeterdubbo脚本开发(代码片段)
...口不带参数请求带参参数请求总结前言ApacheDubbo是一款高性能、轻量级的开源JavaRPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。IDEA环境项目部署工程... 查看详情
性能测试之locust(代码片段)
最近接触了性能压测的一款工具Locust,分享下:一、首先说下压测工具对比:Jmeter:开源免费:JMeter是一款免费的开源软件,使用它不需要支付任何费用跨平台:java开发的开源软件小巧:相比LR的庞大(LoadRunner4GB左右),它非常小... 查看详情
性能工具之jmeter关联入门(代码片段)
...代码路由参考代码Jmeter脚本编写结果总结背景关联是每个性能测试人员必须掌握的技能,是解决性能脚本中的"金钥匙"。主要原理简单的说:每次请求服务器,服务器会给客户端发送一个动态值,但服务器会... 查看详情
arvuforia之unity3d开发环境搭建(代码片段)
一、Unity3d环境搭建下载安装包地址:https://developer.vuforia.com/downloads/sdkDownloadforAndroidDownloadforiOSDownloadforUWPDownloadUnityExtension(legacy)(此是vuforiaunitypackage)DownloadUnity(此选项是下载unity安装程序)下载最新的Un 查看详情
es6系列之开发环境搭建(代码片段)
...Script语言可以用来编写复杂的大型应用程序,成为企业级开发语言。2.为什么要搭建ES6的开发环境?因为至今各大浏览器厂商所开发的JavaScript引擎都还没有完成对ES2015中所有特性的完美支持,如果直接使用的话,会报错的。 查看详情
qtquick系列教程之开发环境的搭建
...eator是全新的跨平台QtIDE,可单独使用,也可与Qt库和开发工具组成一套完整的SDK.其中包括:高级C++代码编辑器,项目和生成管理工具,集成的上下文相关的帮助系统,图形化调试器,代码管理和浏览工具。Qt特性作为 查看详情
使用idea写python之pytest环境搭建及第一个程序编写(代码片段)
一、准备篇Python环境:3.8.3开发工具:IDEA,对你没有看错二、IDEA下安装开发环境python的下载https://www.python.org/downloads/PS:关于Python的环境搭建,此处略IDEA下python插件的安装点击File->Settings…->Plugins,点击mark 查看详情
vscode搭建stm32开发环境(代码片段)
...MDK+STM32CubeMX方法,MDK是收费软件,并且跨平台性能较差,因为工作以后开发环境集中于Linux下,且大概率使用到的IDE是VSCode,或其他基于elicpise框架的IDE,不再使用MDK,所以学习使用VSCode来开发STM32... 查看详情
1.flutter开发工具准备与开发环境搭建(代码片段)
一、Android Studio安装1.系统要求2. 安装Android Studio3.为了Android Studio 安装Flutter和Dart插件3 二、Android开发环境配置 1.安装Android模拟(1) 创建AVD(2)开启硬件加速 (3)无法启动模拟器2.Android开发环境... 查看详情
性能测试-gatling(代码片段)
背景说明转自:http://www.infoq.com/cn/articles/new-generation-server-testing-tool-gatling/以前Jmeter用的多,如文档中所说,实际使用后发现Jmeter多用户时很容易并发并发不均匀,导致一些数据统计不准确。Jmeter&Gatling的QPS统计 因此我们... 查看详情