性能测试之gatling详解

2018-01-25 11:25:27 浏览数 (1)

大家接触过形形色色的压力测试工具,例如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 人点赞