gatling

How to compare responses from http calls in gatling?

女生的网名这么多〃 提交于 2020-02-29 07:20:11
问题 I have 2 http calls in 2 different function def and saving json keys from response body in gatling session. How can I match them? def getAppData():HttpRequestBuilder = { http("get application resource") .get("host/app") .header("Authorization", "Bearer "+ token) .check(status.is(200)) .check(jsonPath("$..${app_info}").saveAs("app_Response")) } def getUserData():HttpRequestBuilder = { http("get user data ") .get("host/user/data") .header("Authorization", "Bearer "+ token) .check(status.is(200)

Gatling - extract data from JSON array response

心已入冬 提交于 2020-02-23 04:00:23
问题 If I have a response of this kind: { "A": 2, "B": [ { "CCC": "abcde", "DDD": { "EEE": 11, "FFF": 22 } }, { "CCC": "fghij", "DDD": { "EEE": 111, "FFF": 222 } } ] } how can I get all the values CCC in a list or otherwise? If I use: .check(jsonPath("$..CCC").saveAs("VARIABLE")) I only get the first CCC ("abcde"). Doing it via CCC[*] throws an error. 回答1: I think, you should have to add findAll in check statement. for example: .check(jsonPath("$..[*].CCC").findAll.saveAs("VARIABLE")) And please

Gatling - extract data from JSON array response

☆樱花仙子☆ 提交于 2020-02-23 03:58:11
问题 If I have a response of this kind: { "A": 2, "B": [ { "CCC": "abcde", "DDD": { "EEE": 11, "FFF": 22 } }, { "CCC": "fghij", "DDD": { "EEE": 111, "FFF": 222 } } ] } how can I get all the values CCC in a list or otherwise? If I use: .check(jsonPath("$..CCC").saveAs("VARIABLE")) I only get the first CCC ("abcde"). Doing it via CCC[*] throws an error. 回答1: I think, you should have to add findAll in check statement. for example: .check(jsonPath("$..[*].CCC").findAll.saveAs("VARIABLE")) And please

Gatling学习笔记(三)---场景设置及基本概念

喜你入骨 提交于 2020-02-04 16:50:08
文章目录 简述 1. 施压场景设置 1.1 注入 1.1.1 注入模型基本概念 1.1.2 注入方式 1.2 全局暂停配置 1.3 节流(Throttling) 1.4 最长持续时间 简述 Gatling是基于AKKA和Netty开发的一款高性能压测工具,本章节主要讲述Gatling提供的API和一些基本概念 1. 施压场景设置 gatling主要压测的关键在于场景设置,这决定了你要干什么和你的目标 一般可以使用以下两种方法配置断言和协议: assertions :在模拟中设置断言 protocols :设置协议定义 1.1 注入 1.1.1 注入模型基本概念 在使用gatling的时候我们会发现有时候gatling的一些注入方案和我们设想的方便并不相同,使得我们的方案出现偏差或者交流问题。前面说过我曾经加入过一个Gatling的技术分享群,我发现其实很多人并没有理解gatling中的开放模型(Open Model)和封闭模型(Closed Model)是什么意思,所以这里会对gatling的两种模型进行描述,我的理解是这两种模型分别代表了现在主流的两种压测模式RPS和并发这两种模式,关于这两种模式的差异我在这里面不做过多的描述,大家可以看这篇文章,里面有具体的描述 传送门 开放模型(Open Model) 开放模型中我们可以主动的控制用户的到达率

Gatling学习笔记---开篇随笔

隐身守侯 提交于 2020-01-30 11:09:09
入门gatling是因为公司随着业务的发展,导致因为流量问题日益增多,所以公司希望开展压力测试来探索公司容量从而合理规划服务集群数量,在技术选型时候考虑了的主流的压测工具LoadRunner、Jmeter、Ngrinder等等。首先排除的就是LoadRunner,因为LoadRunner免费使用的额度较小无法满足当时的压测需求,而且收费较高使用成本较大,所以放弃了这款软件的使用,后续又对比了Jmeter和Ngrinder这两款工具,Jmeter在中国市场较好文档齐全,遇见了问题可以与大量志同道合的朋友们进行交流,而且功能齐全,针对不同的协议都可以进行压测。Ngrinder是基于Grinder的开源的web性能测试平台,由韩国最大互联网公司NHN公司的开发团队进行了重新设计和完善,文档相对也比较完善,而且在中国京东的压测平台ForceBot也是基于此开发的,充分体现了二次开发的可能性。关于几款软件的对比 因为有许多文章详细解释过了,所以这里不对这些问题做过多阐述。 工具对比文章: nGrinder详细介绍及性能工具对比 性能压测工具选型对比 上面两篇文章就很好的对比了现在比较主流的几款压测工具各个之间的差异,其中阿里和腾旭还推出了各自的压测平台,阿里压测平台PTS和腾旭的压测大师。在调研的时候正好看到了有赞全链路压测的一些文章,发现了一个新的压测工具gatling

【译文】Gatling快速开始

喜欢而已 提交于 2020-01-22 12:08:40
快速开始 介绍 在这一章节我们将使用Gatling对简单web域名服务器做性能测试和给你介绍基础的DSL语法。 安装 请移步到 安装章节 挑选你需要的安装方式,建议非开发者从bundle开始安装。 关于文本编码 Gatling默认采用UTF-8编码,如果你想用另一个,你可以做: 使用录制器时选择正确的编码 在gatling.conf文件中配置正确的编码,它将用于编译脚本,构建请求和响应 确保文本编码正确配置为匹配 关于文本Scala 使用Scala编写Gatling场景脚本,但不要恐慌,你可以在不太了解Scala的情况下使用Gatling里面的所有基本函数,在大多数脚本中,DSL将满足你的需求,并且你可以构建你的场景。 如果你对scala感兴趣的话,我们推荐你去看 twitter教程 备注 如果你已经阅读过本文章,也可以轻松的加入我们的 谷歌讨论组 一起讨论寻求帮助。 测试用例 本章节将指导你完成大部分的HTTP特性。你将学习模拟,场景,填充,录制,循环等。 测试中的应用程序 在本教程中,我们将使用一个命名为Computer-Database的应用程序部署在URL:http://computer-database.gatling.io。 此应用程序是用于管理电脑模型的简单CRUD应用程序,并且是2.3版本之前的playframework的一个示例。 场景 测试此应用程序的性能

Injecting 0 users in scenario message during rampup users in gatling

余生长醉 提交于 2020-01-16 06:21:07
问题 I am using a simple setup to ramp up the users but getting the following error and the run is going on infinite loop code in my Scenario: setUp( scenarioBuilder.inject( rampUsers(numUser).during(duration minutes) ) ).protocols(protocolBuilder) Error message which goes infinite loop: 09:35:46.495 [GatlingSystem-akka.actor.default-dispatcher-2] DEBUG io.gatling.core.controller.inject.open.OpenWorkload - Injecting 0 users in scenario xxSimulation, continue=true 09:35:47.494 [GatlingSystem-akka

Karate Gatling - exclude specific request or feature from report

*爱你&永不变心* 提交于 2020-01-15 05:47:49
问题 In karate-config.js I am initially taking the authentication token only once by using callSingle(auth.feature) and this authentication token is being re-used in other feature files. I have users/detail api which I want to performance test using Karate-Gatling. For this I have created a UserSimulation class. This UserSimulation is executing user-detail.feature I have following queries - If possible, how can I completely ignore the auth.feature requests from the generated report. If above

How to run Karate and Gatling with Gradle build system

99封情书 提交于 2020-01-13 18:05:21
问题 I'm trying to run a Karate test as a Gatling performance test. My entire setup works perfect when using Maven. I am being forced to use Gradle however. When trying to run under Gradle the below disaster unfolds. Appreciate any ideas what might be causing KarateAction to crash. MyAPI.scala class MyAPI extends Simulation { val protocol = karateProtocol( "/myendpoint" -> Nil ) val action = karateFeature("classpath:org/mycompany/karate/tests/myAPI.feature@test=myTag") setUp( scenario("my-api")

Gatling j.n.ConnectException: Address already in use

 ̄綄美尐妖づ 提交于 2020-01-12 15:47:08
问题 When running simulations with Gatling I get the following exceptions: j.n.ConnectException: Address already in use: no further information Does this occur when the server tested against fails to respond or timeout? I want to make sure this is a exception thrown by the server and not by the client. 回答1: I also encountered this problem running Gatling (with a lot of requests, > 100 RPS) on Windows. It seems Windows is running out of ephemeral ports to use. See this discussion in the user group