- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的脚本中有两个场景。 第一个“getAssets”场景将获取所有 Assets ID 并将其保存在列表中,第二个场景“fetchMetadata”将迭代这些 ID。
我只需执行一次“getAssets”场景即可获取所有 ID,然后“fetchMetadata”场景将执行到给定的持续时间。
这是“/api/assets;limit=$limit”请求的 Json 响应(我们使用 $.assets[*].id 从这里获取 id),
{
"assets": [
{
"id": 3010411,
"name": "Asset 2016-11-22 20:06:07",
....
....
},
{
"id": 3010231,
"name": "Asset 2016-11-22 20:07:07",
....
....
}, and so on..
这是代码
import java.util.concurrent.ThreadLocalRandom
import scala.concurrent.duration._
import io.gatling.core.Predef._
import io.gatling.http.Predef._
class getAssetsMetadata extends Simulation {
val getAssetURL = System.getProperty("getAssetURL", "https://performancetesting.net")
val username = System.getProperty("username", "performanceuser")
val password = System.getProperty("password", "performanceuser")
val limit = Integer.getInteger("limit", 1000).toInt
val userCount = Integer.getInteger("userCount", 100).toInt
val duration = Integer.getInteger("duration",1).toInt //in minutes
var IdList: Seq[String] = _
val httpProtocol = http
.basicAuth(username, password)
.baseURL(getAssetURL)
.contentTypeHeader("""application/vnd.v1+json""")
// Scenario 1 get assets
val getAssets = scenario("Get Assets")
.exec(http("List of Assets")
.get(s"""/api/assets;limit=$limit""")
.check(jsonPath("$.assets[*].id").findAll.transform {v => IdList = v; v }.saveAs("IdList"))
)
// Scenario 2 Fetch Metadata
val fetchMetadata = scenario("Fetch Metadata")
.exec(_.set("IdList", IdList))
.exec(http("Metadata Request")
.get("""/api/assets/${IdList.random()}/metadata""")
)
val scn = List(getAssets.inject(atOnceUsers(1)), fetchMetadata.inject(constantUsersPerSec(userCount) during(duration minutes)))
setUp(scn).protocols(httpProtocol)
}
:::错误:::
它抛出“Value is null”(虽然我们这里有 1000 万个 Assets ID)。这是加特林日志
14883 [GatlingSystem-akka.actor.default-dispatcher-4] INFO io.gatling.http.config.HttpProtocol - Warm up done
14907 [GatlingSystem-akka.actor.default-dispatcher-4] INFO io.gatling.http.config.HttpProtocol - Start warm up
14909 [GatlingSystem-akka.actor.default-dispatcher-4] INFO io.gatling.http.config.HttpProtocol - Warm up done
14911 [GatlingSystem-akka.actor.default-dispatcher-4] INFO i.g.core.controller.Controller - Total number of users : 6001
14918 [GatlingSystem-akka.actor.default-dispatcher-6] INFO i.g.c.r.writer.ConsoleDataWriter - Initializing
14918 [GatlingSystem-akka.actor.default-dispatcher-3] INFO i.g.c.result.writer.FileDataWriter - Initializing
14923 [GatlingSystem-akka.actor.default-dispatcher-6] INFO i.g.c.r.writer.ConsoleDataWriter - Initialized
14928 [GatlingSystem-akka.actor.default-dispatcher-3] INFO i.g.c.result.writer.FileDataWriter - Initialized
14931 [GatlingSystem-akka.actor.default-dispatcher-4] DEBUG i.g.core.controller.Controller - Launching All Scenarios
14947 [GatlingSystem-akka.actor.default-dispatcher-12] ERROR i.g.http.action.HttpRequestAction - 'httpRequest-2' failed to execute: Value is null
14954 [GatlingSystem-akka.actor.default-dispatcher-4] DEBUG i.g.core.controller.Controller - Finished Launching scenarios executions
14961 [GatlingSystem-akka.actor.default-dispatcher-4] DEBUG i.g.core.controller.Controller - Setting up max duration
14962 [GatlingSystem-akka.actor.default-dispatcher-4] INFO i.g.core.controller.Controller - Start user #7187317726850756780-0
14963 [GatlingSystem-akka.actor.default-dispatcher-4] INFO i.g.core.controller.Controller - Start user #7187317726850756780-1
14967 [GatlingSystem-akka.actor.default-dispatcher-4] INFO i.g.core.controller.Controller - End user #7187317726850756780-1
14970 [GatlingSystem-akka.actor.default-dispatcher-4] INFO i.g.core.controller.Controller - Start user #7187317726850756780-2
14970 [GatlingSystem-akka.actor.default-dispatcher-5] INFO io.gatling.http.ahc.HttpEngine - Sending request=List of Assets uri=https://performancetesting.net/api/assets;limit=1000: scenario=Get Assets, userId=7187317726850756780-0
14970 [GatlingSystem-akka.actor.default-dispatcher-7] ERROR i.g.http.action.HttpRequestAction - 'httpRequest-2' failed to execute: Value is null
14972 [GatlingSystem-akka.actor.default-dispatcher-7] INFO i.g.core.controller.Controller - End user #7187317726850756780-2
14980 [GatlingSystem-akka.actor.default-dispatcher-7] ERROR i.g.http.action.HttpRequestAction - 'httpRequest-2' failed to execute: Value is null
14980 [GatlingSystem-akka.actor.default-dispatcher-4] INFO i.g.core.controller.Controller - Start user #7187317726850756780-3
14984 [GatlingSystem-akka.actor.default-dispatcher-4] INFO i.g.core.controller.Controller - End user #7187317726850756780-3
.....
.....
.....
61211 [GatlingSystem-akka.actor.default-dispatcher-12] INFO i.g.core.controller.Controller - Start user #7187317726850756780-4626
61211 [GatlingSystem-akka.actor.default-dispatcher-7] ERROR i.g.http.action.HttpRequestAction - 'httpRequest-2' failed to execute: Value is null
61211 [GatlingSystem-akka.actor.default-dispatcher-7] INFO i.g.core.controller.Controller - End user #7187317726850756780-4626
61224 [GatlingSystem-akka.actor.default-dispatcher-2] INFO i.g.core.controller.Controller - Start user #7187317726850756780-4627
61225 [GatlingSystem-akka.actor.default-dispatcher-5] INFO io.gatling.http.ahc.HttpEngine - Sending request=Metadata Request uri=https://performancetesting.net/api/assets/3010320/metadata: scenario=Fetch Metadata, userId=7187317726850756780-4627
61230 [GatlingSystem-akka.actor.default-dispatcher-12] INFO i.g.core.controller.Controller - Start user #7187317726850756780-4628
61230 [GatlingSystem-akka.actor.default-dispatcher-7] INFO io.gatling.http.ahc.HttpEngine - Sending request=Metadata Request uri=https://performancetesting.net/api/assets/3009939/metadata: scenario=Fetch Metadata, userId=7187317726850756780-4628
61233 [GatlingSystem-akka.actor.default-dispatcher-2] INFO i.g.core.controller.Controller - End user #7187317726850756780-0
61233 [New I/O worker #12] DEBUG c.n.h.c.p.netty.handler.Processor - Channel Closed: [id: 0x8c94a1ae, /192.168.100.108:56739 :> performancetesting.net/10.20.14.176:443] with attribute INSTANCE
---- Requests ------------------------------------------------------------------
> Global (OK=261 KO=40 )
> Metadata Request (OK=260 KO=40 )
> List of Assets (OK=1 KO=0 )
---- Errors --------------------------------------------------------------------
> Value is null 40 (100.0%)
================================================================================
谢谢。
最佳答案
ID列表不会传递给其他场景,因为它是由另一个“用户”( session )获取的。
您的模拟如下所示
第一个用户不与其他用户交谈,两个场景注入(inject)是相互独立的。
解决此问题的一种方法是将列表存储在共享容器(即 AtomicReference)中,并从第二个场景访问该容器。为了确保容器已填充,请在第二个场景开始时注入(inject) nothingFor
步骤,以等待第一个场景完成。
另一种方法是在第二个场景开始时获取 ID 列表 - 如果之前尚未获取过(请参阅上面的容器)。
我确信也有方法可以实现这一点(即在实际测试之前使用一些 feeder 并获取 id 列表)
关于java - 为什么我在 Ga特林 中执行两个场景时得到 Value is Null?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44027377/
似乎在上周四/周五发生了一些变化,指标如下:ga:adsenseAdsViewed、ga:adsenseAdsClicks、ga:adsenseRevenue、ga:adsenseAdUnitsVie
ga:entranceBounceRate 和 ga:visitBounceRate 有什么区别? 我从谷歌分析中找到了以下定义,比如 ga:visitBounceRate 单页访问的百分比(即访问
我正在使用 GA API 运行超过 1 年数据的两个查询: 查询1: Get apiQuery = analytics.data().ga() .get("ga:" + profileId, "2
我已经尝试了几天,但没有任何效果。无论我做什么,这些事件都不会被捕获。 我在顶部导入ReactGA import ReactGA from "react-ga"; 导入后初始化它 ReactGA.in
如果未声明 ga,以下 javascript 语句将导致错误。 if (ga) { alert(ga); } 错误是: ga is not defined 看起来未声明的变量无法在 bool 表
您好,我正在尝试使用 GA API 获取特定月份的 Google/自然流量。使用this 我尝试将维度设置为 ['month', 'year' ] 和 ['sourceMedium'],使用指标作为
我对谷歌分析的问题已经困扰我一段时间了,如下:自从我在网站中添加了第三方 iframe 后,分析推荐就变得疯狂,首先他们添加了虚假访问,但通过添加过滤器解决了这个问题。但引荐仍然没有像以前那样注册哪个
我的网站使用 Google Tag Manager 跟踪浏览量,并使用 ga('require', 'ec') 在某些页面中加载增强型电子商务插件,但有一个错误: Uncaught Reference
我正在尝试将 React-GA 添加到我的 create-react-app 项目中(它已被弹出),并且出现以下控制台警告。 [react-ga] gaTrackingID is required i
我正在页面的头部运行谷歌分析。为了提高性能,我在正文末尾加载其他代码,例如 facebook 或 jQuery 业务逻辑异步延迟。 如果 ga('set', 'contentGroup1', 'Cat
谁能解释一下: 1. ga、GA 和 Final Hibernate 版本之间的区别? 2.我应该使用 maven 存储库还是 jboss nexus 存储库? 3.为什么最新的兼容性矩阵 (http
这是网站 - http://www.ssangyong-favorit.ru/由于某种原因,此代码给我“GA 未定义”错误: ga.getAll()[0].get('clientId') 该网站通过
我们目前依赖于使用 UTM 参数(utm_source、utm_medium、utm_campaign、utm_term、utm_content)来实现 Universal Analytics 与 G
我正在使用 Google Tag Manager现在在我所有的网站上实现谷歌分析并在 future 证明它们适用于任何其他脚本。 我将 GTM 放在我的样板文件中。 有什么理由这可能不是好的做法吗?
在我的 Maven pom.xml 中,我有以下依赖项: org.hibernate hibernate-entitymanager 3.3.2.GA org.h
我正在优化我的 external Google Analytics script现在我想知道: https://www.google-analytics.com/ga.js 和 https://ssl
我们最近将 GA Premium 连接到 bigQuery,以导出 1 个属性和 1 个 View 中的所有非抽样数据。我们决定在我们的客户单一属性中使用未过滤的 View 来确保我们获得所有数据,但
我想跟踪谷歌分析中的一些更新而不是添加到分析数据中的值。 例如,如果我想跟踪所有用户的平均高分是多少,以便能够微调评分系统。 我可以在每次游戏退出时添加新的高分值,但它会是增量的,来自同一用户的旧数据
我有以下电子商务跟踪代码。我正在使用多个跟踪器。页面浏览量已正确跟踪,但当我查看电子商务报告时,没有数据通过。我错过了什么? (function (i, s, o, g, r, a, m) {
在我的登录页面的ajax调用中,如果它返回一个名为is_first_login = 1的参数,那么我需要调用ga()来发送GA事件。 此后,页面立即重定向到主仪表板页面。但不知道为什么,有时 ga()
我是一名优秀的程序员,十分优秀!