`

性能测试工具之Gatling

阅读更多
Gatling一直是久闻其名但是未得机会运用,正好最近有需求做性能测试,于是趁此机会熟悉了一下,可以说,这是目前最合我胃口的性能测试工具。其主要有以下特点:
  • 1. 绿色软件,即下即用。
  • 2. DSL脚本描述测试场景,高端大气,易读易维护
  • 3. 测试结果报表很漂亮,可读性高。
  • 4. 使用Scala的actors和异步IO,资源消耗小,且运行稳定。

最后提一下,其还提供了一个Recorder可以录制测试场景自动生成代码,个人不推荐是用这个功能,所有的测试场景最好自己用脚本写,这样的脚本更清楚,更易维护,而且,程序员应该喜欢脚本多过UI。

安装和运行
前面说了即下即用,下载地址:https://github.com/excilys/gatling/wiki/Downloads; 解压后整个软件的目录如下:


  • bin目录下有2个脚本,gatling和recorder, gatling用来运行测试, recorder用来启动录制脚本的UI的(不推荐使用),
  • conf目录是关于Gatling自身的一些配置。
  • lib目录是Gatling自身依赖的库文件。
  • results目录用来存放测试报告的。
  • user-files目录是用来存放测试脚本的。

当运行gating脚本的时候,其会扫描user-files目录下的所有文件,列出其中所有的Simulation(一个测试类,里面可以包含任意多个测试场景)。选择其中一个Simulation,然后填写Simulation ID和运行描述,这个都是为报告描述服务的。



测试运行完成后,Gatling会自动把报告生成到results目录下, 一个测试报告内容非常详细,界面也非常美观。



编写Gatling测试脚本

下面是我自己写的一个测试脚本:
import com.excilys.ebi.gatling.core.Predef._
import com.excilys.ebi.gatling.http.Predef._
import com.excilys.ebi.gatling.jdbc.Predef._
import com.excilys.ebi.gatling.http.Headers.Names._
import akka.util.duration._
import bootstrap._

class MySimulation extends Simulation {

        val httpConf = httpConfig
                .baseURL("http://www.bfsstudios.com.au")
                .acceptCharsetHeader("ISO-8859-1,utf-8;q=0.7,*;q=0.7")
                .acceptHeader("text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8")
                .acceptEncodingHeader("gzip, deflate")
                .acceptLanguageHeader("fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3")
                .disableFollowRedirect

        val headers_1 = Map(
                "Keep-Alive" -> "115")

        val scn = scenario("Scenario name")
                .exec(
                        http("main page")
                                .get("/")
                                .headers(headers_1)
                                .check(status.is(200)))
                .pause(0 milliseconds, 100 milliseconds)
                .feed(csv("worker_id.csv").circular)
                .exec(
                           http("Worker page")
                                .get("/worker/${worker_id}")
                                .check(status.is(200)))

        setUp(scn.users(10).ramp(10).protocolConfig(httpConf))
}

  • 1. 一个Gatling测试脚本就是一个scala的类,该类必须继承Simulation类,这样gatling才能识别其实一个测试集。该代码的后缀名必须为.scala
  • 2. 测试中可以通过httpConf为http请求做基本的配置。
  • 3. 一个scenario定义了一个测试用例。
  • 4. 一个测试用例可以包含多个http请求,每个http请求可以设置自己的http method ,http header等.
  • 5. 运行完之后,可以同个check检测每个请求的返回值
  • 6. 可以通过feeder为同一个用例注入不同的参数数据,feeder中的文件默认从user-files目录下的data文件中查找。
  • 7. 定义完scenario,通过setUp方法指定scenario的运行方式,我例子中的表示用10个用户并发跑测试,而ramp(10)的意思是10秒钟逐渐增加到10个用户,即每秒新起一个用户运行测试。


我的脚本的运行过程如下:


DSL
Gatling提供了为运行性能测试非常完善的DSL,这儿有其支持的所有的命令:http://gatling-tool.org/cheat-sheet/ 使用Gatling之前,扫一眼所有的命令,对写脚本非常有帮助,因此虽然Gatling是scala的脚本,没有scala经验的同志使用起来也不会有任何问题。

  • 大小: 39.6 KB
  • 大小: 66.6 KB
  • 大小: 347.8 KB
  • 大小: 212.6 KB
2
0
分享到:
评论

相关推荐

    服务器性能测试工具Gatling.zip

    Gatling是一款基于Scala 开发的高性能服务器性能测试工具,它主要用于对服务器进行负载等测试,并分析和测量服务器的各种性能指标。Gatling主要用于测量基于HTTP的服务器,比如Web应用程序,RESTful服务等,除此之外...

    gatling 新兴的性能测试工具

    Gatling是一款新兴的性能测试工具,它以其高效、灵活和易于使用的特点在IT行业中逐渐崭露头角。这款工具的独特之处在于它使用了强大的Scala编程语言来编写测试脚本,使得测试逻辑可以更加清晰和可扩展。Scala是Java...

    Gatling实用技术 ----高性能轻量级压力测试工具

    总的来说,Gatling作为一个强大的压力测试工具,结合了灵活性、易用性和高性能,为开发团队提供了快速且有效的性能测试解决方案。通过学习和掌握Gatling,开发人员能够更好地理解系统在高负载下的表现,从而优化应用...

    gatling3.0.0

    Gatling 3.0.0 是一个强大的性能测试工具,专为现代Web应用程序设计,以确保它们在高负载下能够稳定运行。Gatling以其高效、易用和可扩展性而闻名,使得开发者和测试人员能够快速创建、执行和分析性能测试场景。 ...

    性能测试十大工具介绍1

    在市场上,有许多工具用于执行这些测试,以下介绍10款主流的性能测试工具: 1. LoadRunner:由HP(现Micro Focus)开发,支持多种协议和技术,提供虚拟用户生成器、控制器和分析器,以全面评估系统性能。 2. ...

    Go-Gatling是一款功能强大的负载测试工具它为易于使用高可维护性和高性能而设计

    Go-Gatling是一款基于Go语言实现的高性能负载测试工具,其设计目标是提供易用、高维护性和出色性能,使得开发者和测试工程师能够对应用程序进行高效的压力和性能测试。Gatling原本是用Scala编写的,但Go-Gatling则是...

    [17个软件测试文档]-13性能测试工具之研究

    总之,性能测试是保障软件系统稳定运行的重要环节,而性能测试工具则是实施测试的关键工具。选择适合的工具,结合专业的团队和方法,能有效提升性能测试的效果,为企业提供更优质、更稳定的IT服务。

    gatling-charts-highcharts-2.0.0-M2-bundle

    《gatling-charts-highcharts-2.0.0-M2-bundle:探索新兴的Scala性能测试工具》 Gatling是一款备受推崇的性能测试工具,尤其在开发和运维领域中,它以其高效、易用的特点赢得了广大用户的青睐。这款工具的独特之处...

    性能测试和工具(pdf)

    在本资料"性能测试和工具"中,我们将深入探讨如何选择和应用性能测试工具来实现这些目标。以下是相关知识点的详细说明: 1. 性能测试的目的:性能测试的主要目的是确保系统在预期的用户负载下能够正常运行,并提供...

    性能测试工具JMeter书籍(6本)目录知识点(思维导图加图)整理.rar

    性能测试工具JMeter书籍(6本)目录知识点(思维导图加图)整理.rar 根据如下6本性能测试、JMeter书籍收集整理重点知识点: 2012年《零成本实现Web性能测试:基于Apache JMeter》 2016年《大型IT系统性能测试入门...

    软件测试开发工具大全资源包之性能测试工具的资料

    本资源包聚焦于性能测试工具,包含了丰富的资料,帮助你全面了解和掌握性能测试的方法和技术。 性能测试工具的种类繁多,各有特点和应用场景。常见的工具有以下几种: 1. JMeter:Apache JMeter是一款开源的Java...

    gatling2.1.7

    Gatling 2.1.7 是一款强大的性能测试工具,主要应用于评估和优化软件系统的负载和并发能力。这款工具以其高效、易用和灵活的特性在IT行业中广受青睐。Gatling 的核心设计理念是让性能测试变得简单,使得开发者和测试...

    web网站性能测试工具

    Gatling是一款基于Scala编写的高性能负载测试工具,适用于Web应用的性能测试。它的特点有: - **高性能**:能够支持大规模并发用户测试。 - **简单易用**:提供直观的Web界面和详细的报告。 - **脚本化测试**:支持...

    软件性能测试基本概念及测试工具介绍

    * Gatling:是一个商业的性能测试工具,可以模拟大量用户并发访问,测试软件系统的性能。 * NeoLoad:是一个商业的性能测试工具,可以模拟大量用户并发访问,测试软件系统的性能。 软件性能测试的挑战: * 软件...

    精品软件工具--自动化测试工具,自动化测试框架,性能测试工具,测试用例管理,测试报告工具。软件测试面试题,自动测试面试.zip

    3. 性能测试工具:性能测试工具如LoadRunner、JMeter和 Gatling,用于评估系统在高负载下的性能和稳定性。这些工具可以模拟大量用户请求,分析响应时间、吞吐量和资源利用率等指标,帮助找出系统瓶颈。 4. 测试用例...

    gatling -version2.3.0 for Mac

    Gatling是一款强大的性能测试工具,尤其适用于Web应用的负载和压力测试。它的设计目标是提供一个易用、灵活且可扩展的平台,让开发者和性能工程师可以快速地编写和执行性能测试场景。Gatling 2.3.0是这个工具的一个...

    gatling 3.0.2

    Gatling以其高效、可扩展性和易于使用的特性而闻名,使得性能测试能够集成到持续集成/持续部署(CI/CD)流程中。 Gatling 3.0.2 版本包含了多项改进和新功能,旨在提升用户体验和测试的准确性。以下是一些关键的...

    Gatling的非官方Dubbo压测插件基于Gatling2.3.1。

    Gatling是一款高性能、可扩展的负载测试工具,它允许开发者对Web应用程序进行模拟用户负载测试,以评估其在高并发情况下的性能和稳定性。而Dubbo则是阿里巴巴开源的一款分布式服务框架,常用于构建高性能、高可用的...

Global site tag (gtag.js) - Google Analytics