背景说明转自 : 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. JDK1.5新特性,基础类库篇,浅谈并发工具包(Concurrency Utilities)

    java.util.concurrent, java.util.concurrent.atomic, 和 java.util.concurrent.locks 包提供了高性能的.可扩展的框架,保证开发 ...

  2. ZOJ Problem Set - 1004-Anagrams by Stack

     唉!先直接上源码吧!什么时候有时间的再来加说明. #include<iostream> #include<vector> #include<stack> #i ...

  3. Merge into 详细介绍

    /*Merge into 详细介绍 MERGE语句是Oracle9i新增的语法,用来合并UPDATE和INSERT语句. 通过MERGE语句,根据一张表或子查询的连接条件对另外一张表进行查询, 连接条 ...

  4. 菜鸟学Java(六)——简单验证码生成(Java版)

    验证码大家都知道,它的作用也不用我多说了吧.如果不太清楚请参见百度百科中的解释,一般验证码的生成就是随机产生字符(数字.字母或者汉字等),然后将这些生成的字符绘制成一张图片,再在图片上加上一些干扰元素 ...

  5. C++中的typedef typename 作用

    今天在代码里看到了这样一段代码: typedef typename RefBase::weakref_type weakref_type; 起初一直搞不懂为什么要加个typename,后来搜索了一下才 ...

  6. Chunk

    Chunk是一系列语句,Lua执行的每一块语句,比如一个文件或者交互模式下的每一行都是一个Chunk. 每个语句结尾的分号(;)是可选的,但如果同一行有多个语句最好用:分开 a = 1   b = a ...

  7. 群主微信sdk说明地址

    群主微信sdk说明地址官网地址:http://weixin.senparc.com/ 源代码及最新更新:https://github.com/JeffreySu/WeiXinMPSDK 最新DLL发布 ...

  8. linux命令(44):sed,vim;去掉文件中的^M 符号,去掉行首空格和制表符

    注:下面的直接粘贴会出错,要重新输入^M 如何输入^M,先 ctrl+v,然后 ctrl+m 第一种方法: cat -A filename 就可以看到windows下的断元字符 ^M要去除他,最简单用 ...

  9. 关于事件冒泡和键盘事件 以及与Angular的区别

    一.事件冒泡 方法一.使用event.cancelBubble = true来组织冒泡 <div @click="show2()"> <input type=&q ...

  10. 【Python】print array时array中间是省略号没有输出全部的解决方法

    在开头加入: import numpy as np np.set_printoptions(threshold=np.inf) 大量元素情况 可以采用set_printoptions(threshol ...