前言 Gatling
Gatling是一款功能强大的负载测试工具,它为易于使用,高可维护性和高性能而设计。
开箱即用,Gatling由于对HTTP协议的出色支持,使其成为负载测试任何HTTP服务器的首选工具。由于核心引擎实际上是协议不可知的,因此完全可以实现对其他协议的支持。例如,Gatling目前还提供JMS支持。
代码自定义并且场景资源有效是Gatling的两个基础。并且拥有富有表现力的DSL,自我解释的场景,易于维护,可以保存在版本控制系统中的优点。
只要底层协议(如HTTP)可以以非阻塞方式实现,Gatling的体系结构就是异步的。这种架构允许我们将虚拟用户实现为消息而不是专用线程,这使得硬件要求不需要很苛刻。因此,运行数千个并发虚拟用户不是问题。
使用理由
避免崩溃:Gatling可以帮助您预测缓慢的响应时间和奔溃。
缩短产品上市时间:Gatling 在开发周期的早期检测到性能问题和错误
增强用户体验:Gatling可以准确描述您最慢的用户体验
提升您的业务:加特林可以防止您的业务成为自身成功的牺牲品
性能测试 性能测试是什么意思?Web应用程序的性能测试包括:
模拟大量具有复杂行为的用户;
收集和汇总所有请求的响应时间;
创建报告和分析数据;
编写测试场景,自动化测试Gatling的类似代码的脚本使您可以轻松维护测试场景,并在持续交付管道中轻松实现自动化。
我们开发了自己的领域特定语言(DSL),以便让每个人都能轻松阅读您的场景。
分析并调查您的应用程序的瓶颈Gatling是一个功能强大的工具:只需几台计算机,您就可以 在Web应用程序上模拟每秒数十万个请求,并获得高精度指标。
在测试结束时,Gatling会自动生成详尽,动态且丰富多彩的报告。
平均值和平均数据是不够的:使用Gatling,您可以得到适当的响应时间百分位数。不要让最慢的用户落后!
安装 准备工作 Java版本Gatling主要针对Oracle提供的JDK8软件包进行测试。Gatling需要JDK8(因此不支持JDK9 atm)。Gatling应该适用于任何JDK8更新,但我们建议您使用最新版本。
IPv4 vs IPv6发现IPv6(默认情况下在Java上启用)有时会导致一些性能问题,因此启动脚本会使用以下选项禁用它:
-Djava.net.preferIPv4Stack=true
-Djava.net.preferIPv6Addresses=false
如果您确实需要优先选择IPv6,请编辑启动脚本。
操作系统调整以下说明摘自伟大的Riak文档。 有关更多详细信息或OS X的说明,请参阅“ 打开文件限制” 和“ 部分。