背景说明转自 : http://www.infoq.com/cn/articles/new-generation-server-testing-tool-gatling/

以前Jmeter用的多,如文档中所说,实际使用后发现Jmeter多用户时很容易并发并发不均匀,导致一些数据统计不准确。

Jmeter & Gatling的QPS统计

因此我们选用gatling来进行http的压测

实践步骤:

http://gatling.io/docs/current/quickstart/

一  下载

wget  https://repo1.maven.org/maven2/io/gatling/highcharts/gatling-charts-highcharts-bundle/2.2.5/gatling-charts-highcharts-bundle-2.2.5-bundle.zip
unzip gatling-charts-highcharts-bundle-2.2.5-bundle.zip

1 注意尽量不要放在工程目录下,预防出现权限问题

2 注意java版本的匹配  java -version

3 gatling的默认编码方式为utf-8,若需更改,编译conf/gatling.conf文件

二 检查环境

cd bin && sudo sh gatling.sh

正确情况如下:

选取一个要跑的脚本需要,两次enter:

将提示的result目录下内容打开如下:

galing需要java环境,若无则需要配置;注意使用权限

三  应用

环境调通了,就开始写自己的scala脚本进行压测了,不熟悉scala的同学也没有关系,记住几个地方,抄一下就可以了~

1  单场景测试

较为简单的单场景demo:get请求百度,不同的参数

package computerdatabase

import io.gatling.core.Predef._
import io.gatling.http.Predef._
import scala.concurrent.duration._ class MyTestSimulation extends Simulation {
val httpConf = http
.baseURL("http://www.baidu.com") //①
.acceptHeader("text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8")
.acceptLanguageHeader("en-US;q=0.5")
.acceptEncodingHeader("gzip, deflate")
.userAgentHeader("Mozilla/5.0 (Windows NT 5.1; rv:31.0) Gecko/20100101 Firefox/31.0") val feeder = csv("baidu_search.csv").random //② val scn = scenario("MyTestSimulation")
.feed(feeder) //③
.exec(http("request_1") //④
.get("/s?${params}") //⑤
.check(status.is(200))) setUp(scn.inject(constantUsersPerSec(150) during (30 seconds) ).protocols(httpConf)) //⑥

准备csv数据在data目录下,文件名为baidu_search.csv,内容如下:

params
ie=utf-8&wd=1
ie=utf-8&wd=2
ie=utf-8&wd=

注释:

class后面的名字会出现执行gatling后的可选列表里

① baseurl即域名

② 定义要读取的参数文件

③ 把指定读取参数文件定义的变量写进来

④ 这个名字会用在生成的报告里

⑤ 读取参数文件中的列

⑥设置每秒请求数qps和持续时间duringTime

啦啦啦,找到一个小抄,各种参数的含义解释,简直开挂,吓哭我了:

http://gatling.io/docs/current/cheat-sheet/

四  问题&解决

我第一次使用dev权限,该权限下java  javac命令均可正确使用,但是执行失败,更改为root可行,觉得可能是gatling要求的。

性能测试-Gatling(一)的更多相关文章

  1. 微服务架构 技能图谱skill-map

    # 微服务架构 技能图谱 ## 理论基础### 概念#### 多微合适 - 非代码函数 - 非重写时间 - 适合团队最重要 - 独立业务属性 - 全功能团队 #### 进程隔离 - 服务运行在独立的进 ...

  2. 新一代服务器性能测试工具Gatling

    新一代服务器性能测试工具Gatlinghttp://automationqa.com/forum.php?mod=viewthread&tid=2898&fromuid=2

  3. 如何利用gatling创建一个性能测试例

    [原创博文,转载请声明出处] 基于上一篇博文介绍如何源码编译创建自己的gatling可执行工具,今天介绍一下如何基于gatling做性能测试! 由于gatling的测试例脚本是基于scala写的,所以 ...

  4. 性能测试工具之Gatling

    转载:http://ningandjiao.iteye.com/blog/2004579 Gatling一直是久闻其名但是未得机会运用,正好最近有需求做性能测试,于是趁此机会熟悉了一下,可以说,这是目 ...

  5. web性能测试的新利器 - Gatling 介绍

    转载:http://www.51testing.com/html/10/26810-852956.html 最近发现了一个新的性能测试工具Gatling,貌似比Jmeter还好玩.这几天就先简单介绍一 ...

  6. 负载,性能测试工具-Gatling

    前言 Gatling Gatling是一款功能强大的负载测试工具,它为易于使用,高可维护性和高性能而设计. 开箱即用,Gatling由于对HTTP协议的出色支持,使其成为负载测试任何HTTP服务器的首 ...

  7. 一篇入门 — Gatling 性能测试手册

    介绍 本篇博客,旨在记录学习的要点,所以格式随意, 方便本人日后自考和回忆,有兴趣的朋友可以评论讨论. 原文地址:https://www.cnblogs.com/clockq/p/10539974.h ...

  8. Gatling新一代压力测试工具,新一代服务器性能测试工具Gatling

    Gatling新一代压力测试工具新一代服务器性能测试工具Gatlinghttp://www.infoq.com/cn/articles/new-generation-server-testing-to ...

  9. 应用性能测试神器 Gatling,你用过吗?

    在应用程序上线之前,有多少人做过性能测试? 估计大部分开发者更多地关注功能测试,并且会提供一些单元测试和集成测试的用例.然而,有时候性能漏洞导致的影响比未发现的业务漏洞更严重,因为性能漏洞影响的是整个 ...

随机推荐

  1. session 详解

    一.Session简单介绍 在WEB开发中,服务器可以为每个用户浏览器创建一个会话对象(session对象),注意:一个浏览器独占一个session对象(默认情况下).因此,在需要保存用户数据时,服务 ...

  2. Android 源码解析:单例模式-通过容器实现单例模式-懒加载方式

    本文分析了 Android 系统服务通过容器实现单例,确保系统服务的全局唯一. 开发过 Android 的用户肯定都用过这句代码,主要作用是把布局文件 XML 加载到系统中,转换为 Android 的 ...

  3. macbook安装homebrew并更换清华源

    1.官网brew.sh复制安装脚本. 2.自动安装完成后,更换为清华源来加快速度.网址为:https://mirrors.tuna.tsinghua.edu.cn/help/homebrew 3.更换 ...

  4. java服务端技术

    服务端框架:1.servlet2.netty 协议:1.http 1.02.http 1.1 数据库:mysql 对象关系映射(ORM)框架:mybatis 缓存:redis eclipse能运行,导 ...

  5. 解决 slf4j + log4j 在云服务上打印乱码

    由于云服务器的环境是纯英文的 虽然在eclipse中可以打印日志显示中文,但是实用putty的时候查看却是乱码,下载日志也同样是乱码 那么只要设置utf-8即可

  6. C和指针第七章第五题

    实现一个简化的printf函数,能够处理%d,%f,%s,%c等格式. /*************************************************************** ...

  7. tornado源码分析-iostream

    tornado源码分析-iostream 1.iostream.py作用 用来异步读写文件,socket通信 2.使用示例 import tornado.ioloop import tornado.i ...

  8. 【多线程】死锁与Java栈跟踪工具

    今天面试有一道题,写一个死锁的程序,自己也是短路了,没写出来,回来写下. 死锁常见的情况是A线程持有a锁.阻塞于b锁,B线程持有b锁,阻塞于a锁,形成一个循环阻塞的状态. import java.ut ...

  9. 【Android】输入设备配置文件(.idc文件)

    何为idc idc(Input Device Configuration)为输入设备配置文件,它包含设备具体的配置属性,这些属性影响输入设备的行为. 对于touch screen设备,总是需要一个id ...

  10. python 中文编码(一)

    我在学python的过程中,遇到的第二个问题,就是中文乱码,如今也算勉强入门了,在这里给大家说说我的经验,也算个新人引导吧.     在文章里,我会重点提到一个概念:有来有去. 即数据从哪里来,到哪里 ...