<我的备忘录>Gatling接口测试简单使用

Gatling 的介绍和JMeter的性能对比请参看新一代服务器性能测试工具Gatling

这里记录自己简单使用心得.

1.下载安装

直接下载zip文件到本地目录,解压目录即可。下载地址Gatling最新版2.17下载

文件目录如下

result:保存生成结果

user-files:测试的scala 脚本文件

2.本次测试采用的是一个Play rest 工程。Play rest 工程----helloplay 其中有多个接口需要同步测试(删除,更新操作类同)

POST    /user                                      controllers.Application.insert     //插入数据接口
GET     /user/all                                   controllers.Application.findAll    // 查询接口所有
GET    /user/:id                                    controllers.Application.findasync(id:Long)     //查询接单条

编写测试代码,测试代码放在$GATLING_HOME/user-files/simulations/computerdatabase 目录下

本例简单测试简单代码如下

package jiang

import io.gatling.core.Predef._
import io.gatling.http.Predef._
import scala.concurrent.duration._

class jiang_9_17 extends  Simulation {

    // 测试接口部分
    // 1. 查询
    object Search {
        val search  = exec(http("Home").get("/")).pause(1)
                            .exec(http("GetAll").get("/user/all ")).pause(1)
                            .exec(http("Query").get("/user/10")).pause(1)
    }
    // 2. 插入
    object Edit {
        val insert = exec(http("Insert").post("/user").body(StringBody("""{"name":"han"}""")).asJSON).pause(1)
    }

// 设置浏览器信息
    val httpConf = http
    .baseURL("http://localhost:9000")
    .acceptHeader("text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8")
    .doNotTrackHeader("1")
    .acceptLanguageHeader("zh-CN,zh;q=0.8,en;q=0.6")
    .acceptEncodingHeader("gzip, deflate")
    .userAgentHeader("Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:16.0) Gecko/20100101 Firefox/16.0")

// 设置权限    user只能查询,admin可以查询和插入数据
  val users = scenario("Users").exec(Search.search) // regular users can't Insert
  val admins = scenario("Admins").exec(Search.search, Edit.insert)

  // 设置请求次数 如下为在10s内 user 查询执行1000次,admin 查询和插入执行100次
  setUp(
    users.inject(rampUsers(1000) over (10 seconds)),
    admins.inject(rampUsers(100) over (10 seconds))
  ).protocols(httpConf)
}

执行gatling脚本 ./$GATLING_HOME/bin/gatling.sh

选择本次需要执行的脚本文件[6]jiang.jiang_9_17 // package 下的jiang_9_17 文件

下面两步选择默认就可以了

然后可以看到执行完成结果

$GATLING_HOME/result 目录下生成了本次测试的可视化结果

<如本例>用浏览器打开index.html 文件浏览详细信息(图一为总体,二为每个接口对应信息)


由于此次测试数据库为本地,查询比较快.因此接口请求时间都比较短。\

文章转载自 开源中国社区[https://www.oschina.net]

时间: 2024-10-24 04:07:36

<我的备忘录>Gatling接口测试简单使用的相关文章

设计模式 - 备忘录

设计模式 - 备忘录 备忘录模式很简单,就是存储对象,然后支持恢复对象到之前的某个状态,玩过游戏的,一定懂得存档一说,备忘录就是对对象的存档与管理. 效果: 这个需要配合FastCoder使用,请自行到Github上去搜索源码FastCoder源码^_^! 源码: Model.h 与 Model.m // // Model.h // MementoPattern // // Created by YouXianMing on 15/1/3. // Copyright (c) 2015年 YouX

php备忘模式之星际争霸

我们在玩星际任务版或者单机与电脑对战的时候,有时候会突然要离开游戏,或者在出兵前面,需要存储一下游戏. 那么我们通过什么办法来保存目前的信息呢?而且在任何时候,可以恢复保存的游戏呢? 待解决的问题:保存游戏的一切信息,如果恢复的时候完全还原. 思路:建立一个专门保存信息的类,让他来处理这些事情,就像一本备忘录. 为了简单,我们这里用恢复一个玩家的信息来演示.  代码如下 复制代码 //备忘类 class Memento {   //水晶矿   public $ore;   //气矿   publ

接口测试从未如此简单 - Postman (Chrome插件)

原文:接口测试从未如此简单 - Postman (Chrome插件) 接口测试从未如此简单 - Postman (Chrome插件)  一个非常有力的Http Client工具用来测试Web服务的, 我这里来介绍如何用它测试restful web service 注:转载请注明出处    安装 进入Chrome的设置->More tools->Extensions     点击最下面的Get more extensions 搜索Postman 选择第一个点击 点击Launch APP   如何

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

21世纪是云的世纪, 大规模云网已经出现了,而且在未来几年内会得到高速发展,从而使得基于云的系统也会越来越多.如果要开发一款高性能的云系统,服务器性能测试是一个必不可少的环节.今天,就来介绍一款新一代服务器性能测试工具Gatling. 一,什么是Gatling Gatling是一款基于Scala 开发的高性能服务器性能测试工具,它主要用于对服务器进行负载等测试,并分析和测量服务器的各种性能指标.Gatling主要用于测量基于HTTP的服务器,比如Web应用程序,RESTful服务等,除此之外它拥

菜鸟初学Java的备忘录之第一次接触

虽然以前间或的也看了些书籍,但多是隔靴搔痒,上不了正席,绝不敢说自己懂Java.接触一门新的技术和初恋一样,都是第一次,但不同的是后者一般开始无比甜蜜,结局却很痛苦,而前者则往往开始很痛苦,越到后来却越是有味,简直是欲罢不能.现在我就正处于这个很痛苦的阶段,连一个最简单的Helloworld都运行不出来,总是提示Excepion in thread "main" java.lan.NoClassDefFoundError. 只好上网去查,去搜.记性又不好,所以搜出来赶紧保存下来,常备无

python自定义解析简单xml格式文件的方法

  这篇文章主要介绍了python自定义解析简单xml格式文件的方法,涉及Python解析XML文件的相关技巧,非常具有实用价值,需要的朋友可以参考下: 因为公司内部的接口返回的字串支持2种形式:php数组,xml;结果php数组python不能直接用,而xml字符串的格式不是标准的,所以也不能用标准模块解析.[不标准的地方是某些节点会的名称是以数字开头的],所以写个简单的脚步来解析一下文件,用来做接口测试. ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

接口测试实践

  接口测试 接口测试是测试系统组件间接口的一种测试.接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点.测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等. --百度百科   为什么介绍接口测试? 接口常被开发挂在嘴边,在开发过程中无处不在,但对于测试人员来说,它又如此朦胧,无形无色无味,难以触碰.相信这也是测试人员比较难理解的一种测试类型.查询的大部分资料都是介绍一堆模糊的概念.所以,我打算以浅薄的认知来介绍接口测试,当然会举例子.   我所知

ExtJs 备忘录(6)—— GirdPanl表格(二) [ 搜索分页 ]

前言 近些天对于厚积薄发有深刻的理解,尤其是月末那两天,很想再写两篇文章,保持每周一篇--每月至少四篇以上的文章.写文章分两种情况:一种情况是已经积累了许多经验,写起来轻松且得心应手,内容和系列文章容易把握,最典型的就是视频监控的那系列文章,得以写完是因为已经从事近半年相关的开发工作;另一种情况则是有方向但积累不足甚至无积累,边学边实践,然后进行归类和总结成系列,比如视频监控第二个系列和本系列都属于这种情况,如果时间稍微充足且过程较为顺利,尚可勉强完成,反之则遥遥无期.由此感悟,下次写系列文章还

Android之高仿记事本、备忘录、便签

 点我下载源码        最近实现的一个简单实用小应用,跟大家分享一下,可以当做记事本.备忘录.便签等使用,当我们保存一条便签信息并设置好通知铃声后,到了那个时候应用会像闹钟那样唤醒手机系统,提醒我们,让我们不再错过每一次重要的约会...        其实实现起来很简单,通过数据库保存便签信息和铃声信息,开启一个闹钟服务(如果设置了开启通知铃声),到了时间就会主动唤醒手机系统,发出声音.振动,同时在通知栏会显示该便签信息,简单而实用,欢迎大家下载体验,如果有什么好的建议和批评,欢迎大家指出