性能测试之gatling详解

大家接触过形形色色的压力测试工具,例如lr,jmeter各有各的优点,那么最近在做接口测试中涉及到压力测试,小弟就看到一个好用的工具俗称“加特林”英文Gatling,就简单研究一番,今天为大家分享一下。

Gatling是一款基于Scala 开发的高性能服务器性能测试工具,它主要用于对服务器进行负载等测试,并分析和测量服务器的各种性能指标。目前仅支持http协议,可以用来测试web应用程序和RESTful服务

官网:https://gatling.io/

优点:

1.gatling和其他压力工具相比有个好处是放在同一内网环境下linux服务器上,这样避免其他压力使用办公机使用共有网络,网络情况对压力测试的影响。

2 生成比较详细的压力测试报告。

3 能够更灵活的编写压力脚本。

4 可以jenkins集合,将压力测试整合自动化持续集成中

上面都是干货,下面为大家直接实战,我是通过java+maven+scala搭建的一个环境以及Demo.

1.创建一个Maven项目

2、安装Scala插件

3、pom添加核心依赖包

io.gatling

gatling-app

$

io.gatling

gatling-recorder

$

io.gatling.highcharts

gatling-charts-highcharts

$

-----太多我就不一一贴出,有兴趣微信公众号或者qq群联系我。

4.下面就是Demo

/**

* Created by Administrator on 2017/12/10.

*/

importio.gatling.core.Predef._

importio.gatling.http.Predef._

classABTestextendsSimulation {

//1.主要实现模拟不同用户重复100次执行结果

objectSearch {

//val feeder = csv("D:\\gatling-2.2.5\\gatling-charts-highcharts-bundle-2.2.5\\user-files\\data\\appdata.csv")

valsearch=repeat(100) {//重复次数100次

//读取csv数据

valfeeder = csv("D:\\gatling-2.2.5\\gatling-charts-highcharts-bundle-2.2.5\\user-files\\data\\appdata.csv").random

feed(feeder)

.exec(http("ABTest")

.get("/abTest?appkey=$&deviceid=$"))

.pause(1)

//exec()里的参数就是我们的执行动作,http("本次请求的名称").get("本次http get请求的地址")

}

}

valhttpConf=http

.baseURL("http://10.168.99.209:8080/abapi")////设置请求的根路径

valusers=scenario("Users").exec(Search.search)//声明Scenario,指定我们的请求动作

setUp(

users.inject(atOnceUsers(400)).protocols(httpConf))

//atOnceUsers立马启动的用户数,可以理解为并发数

}

读取Excl数据500个用户

D:\\gatling-2.2.5\\gatling-charts-highcharts-bundle-2.2.5\\user-files\\data\\appdata.csv

5、自动生成的测试报告:

概览800ms下响应的请求次数10,右边的饼状图显示成功请求10个,失败0个。注意在Global页面里的图都是整体的统计(一个测试计划可包含多个http请求),如果需要看某个请求的情况可点击到Details页面,并选取对应的请求

大家如果有感兴趣的方向文章,可以直接给我留言,我会去写你们感兴趣的文章。

想要了解,获取更多和测试相关的知识请添加此群,本群提供App、Web等Ui自动化,App性能测试,接口功能,

接口自动化测试,jemeter、loadrunner工具介绍,静态代码扫描实践;测试理论,

测试流程。测试管理。

App自动化及Web自动化全栈测试:群号544126564(想要更多资料立即加入此群)

本文来自企鹅号 - 全球大搜罗媒体

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏java一日一条

编写高性能 Java 代码的最佳实践

在这篇文章中,我们将讨论几个有助于提升Java应用程序性能的方法。我们首先将介绍如何定义可度量的性能指标,然后看看有哪些工具可以用来度量和监控应用程序性能,以及...

24030
来自专栏后端技术探索

解决nginx负载均衡的session共享问题

查了一些资料,看了一些别人写的文档,总结如下,实现nginx session的共享

13310
来自专栏大闲人柴毛毛

缓存世界中的三大问题及解决方案

目前的IO设备远不能满足互联网应用海量的读写请求。于是便出现了缓存,利用内存的高速读写性能来应付海量的查询请求。然而内存资源非常宝贵,将全量数据存储在内存中显...

35950
来自专栏后端技术探索

解决nginx负载均衡的session共享问题

查了一些资料,看了一些别人写的文档,总结如下,实现nginx session的共享

14140
来自专栏游戏杂谈

liunx下查看服务器硬件信息

今天安装了9台Linux服务器,型号完全不一样(有DELL、HP和IBM服务器),又懒得去对清单,如何在Linux下cpu的个数和核数呢?另外,nginx的cp...

1.2K20
来自专栏北京马哥教育

如何利用多核CPU来加速你的Linux命令 — awk, sed, bzip2, grep, wc等

如何利用多核CPU来加速你的Linux命令 — awk, sed, bzip2, grep, wc等 你是否曾经有过要计算一个非常大的数据(几百GB)的需求?或...

36490
来自专栏SDNLAB

ONOS 实战分享(一):项目建立、调试到热部署

以上是ONOS的架构图,相信大家已经熟记于心了 本文将在Distributed Core Tier,以开发一个控制器内的模块为例,带领大家从项目的建立,导入I...

51270
来自专栏芋道源码1024

为什么建议 Netty 的 I/O 线程与业务线程分离

某互联网同学咨询一个Netty使用问题:最近在研究公司内部的RPC框架,发现底层通信框架使用的是Netty,而且Netty的I/O线程与处理业务的线程分离。具体...

79020
来自专栏IT大咖说

送给前端的你:可视化快速生成模拟数据服务——Easy Mock

? 内容来源:2017年11月18日,大搜车前端工程师高攀在“2017中国开源年会”进行《Easy Mock 接口数据模拟服务》演讲分享。IT 大咖说(微信i...

55260
来自专栏Netkiller

从RPC 到微服务

从 RPC 到微服务的演化经过了RPC->Message Queue->SOA->微服务。 早期的 RPC 早期实现夸物理机的远程访问另一个进程唯一的方式就是R...

43170

扫码关注云+社区

领取腾讯云代金券