- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
为了在运行性能脚本之前向系统中填充大量数据,我们理想的用例是使用 Gadling 来实现这一点。除了具有唯一的主 ID 之外,数据无需不同。
object Object {
val create = repeat(4, "n")
{
exec(http("Create Object")
.post("/our/api/objects")
.body(ELFileBody("CreateObject_0001_request.txt"))
.check(status.is(201)))
}
}
val createObjects = scenario("ModularSimulation").exec(CreateObjects.create);
setUp(
createObjects.inject(atOnceUsers(1))
).protocols(httpProtocol)
上面的示例可以通过更改 repeat
的值来创建任意数量的对象,但是在大规模(例如 100,000 个对象)下,线性地执行此操作变得不切实际。所以我想做的是有一个由 100 个用户创建的共享对象池。
这当然是馈线的用例。使用简单的迭代循环(例如 0
到 100000
)。
我知道(从 documentation 和其他 questions ) Feeder 是 Iterator[Map[String, T]]
的类型别名,所以我认为这应该非常简单 - 但我似乎找不到这个最基本案例的简单示例。
任何帮助将不胜感激。
最佳答案
我不确定你想要不实现什么,但是使用 feeder 很容易。假设您有:
import scala.util.Random
// An infinite feeder generating random strings
// accessible under "yourInfiniteSessionKey" from session
val infiniteFeeder = Iterator.continually(
Map("yourInfinteSessionKey" -> Random.alphanumeric.take(20).mkString)
)
// A finite feeder (in sense of possible values)
// accessible under "yourFiniteSessionKey" from session
// it contains just 2 values for illustration purposes
val finiteFeeder = (for (i <- 0 until 2) yield {
Map("yourFiniteSessionKey" -> s"I'm finite $i")
})
// A fixed feeder (again in sense of possible values)
// accessible under "yourFixedSessionKey" from session
// again it contains just 2 values for illustration purposes
val fixedFeeder = Array(
Map("yourFixedSessionKey" -> s"I'm fixed 1"),
Map("yourFixedSessionKey" -> s"I'm fixed 2")
)
val scn = scenario("Feeding")
.feed(infiniteFeeder)
.feed(finiteFeeder)
.feed(fixedFeeder)
.exec(http("root")
.get("/${yourInfinteSessionKey}/${yourFiniteSessionKey}/${yourFixedSessionKey}"))
仅作为示例,我们的场景从所有 feeder 获取数据,并使用这些值针对“/”组成 GET 请求。
在本例中,fixedFeeder
为 Array[Map[String, _]
,finiteFeeder
为 IndexedSeq[Map[String, _] ]
。如果有限进料器中的元素数量与您的设置相匹配,那么您就可以运行该场景,例如像:
setUp(
scn.inject(atOnceUsers(2))
).protocols(httpConf)
安装程序只有两个虚拟用户,因此运行不会出现问题。当您的设置中有更多虚拟用户时,例如:
setUp(
scn.inject(constantUsersPerSec(1) during(30.seconds)) // equals 30 virtual users
).protocols(httpConf)
您将遇到有限/固定馈线的问题,加特林会提示它,您的模拟将像这样停止:
[error] java.lang.IllegalStateException: Feeder is now empty, stopping engine
[error] at io.gatling.core.action.SingletonFeed.feed(SingletonFeed.scala:59)
[error] at io.gatling.core.action.SingletonFeed$$anonfun$receive$1.applyOrElse(SingletonFeed.scala:28)
[error] at akka.actor.Actor$class.aroundReceive(Actor.scala:467)
好消息是,您可以使用 RecordSeqFeederBuilder 的 Ga特林 API 方法使有限/固定馈线无限。 ,例如:
// Now the feeder from fixed values is infinite
val fixedFeeder = Array(
Map("yourFixedSessionKey" -> s"I'm fixed 1"),
Map("yourFixedSessionKey" -> s"I'm fixed 2")
).circular // go back to the top of the array once the end is reached
您还可以直接在场景定义中使用此类 API 方法调用,并且保持固定/有限馈线不变,例如:
val scn = scenario("Feeding")
.feed(infiniteFeeder)
.feed(finiteFeeder.random) // now is finiteFeeder infinite
.feed(fixedFeeder.circular) // fixedFeeder is infinite too
.exec(http("root")
享受
关于scala - 如何将一个简单的迭代循环转变为加特林的馈送器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35730086/
我之前让 dll 注入(inject)器变得简单,但我有 Windows 7,我用 C# 和 C++ 做了它,它工作得很好!但是现在当我在 Windows 8 中尝试相同的代码时,它似乎没有以正确的方
我正在尝试制作一个名为 core-splitter 的元素,该元素在 1.0 中已弃用,因为它在我们的项目中起着关键作用。 如果您不知道 core-splitter 的作用,我可以提供一个简短的描述。
我有几个不同的蜘蛛,想一次运行所有它们。基于 this和 this ,我可以在同一个进程中运行多个蜘蛛。但是,我不知道如何设计一个信号系统来在所有蜘蛛都完成后停止 react 器。 我试过了: cra
有没有办法在达到特定条件时停止扭曲 react 器。例如,如果一个变量被设置为某个值,那么 react 器应该停止吗? 最佳答案 理想情况下,您不会将变量设置为一个值并停止 react 器,而是调用
https://code.angularjs.org/1.0.0rc9/angular-1.0.0rc9.js 上面的链接定义了外部js文件,我不知道Angular-1.0.0rc9.js的注入(in
我正在尝试运行一个函数并将服务注入(inject)其中。我认为这可以使用 $injector 轻松完成.所以我尝试了以下(简化示例): angular.injector().invoke( [ "$q
在 google Guice 中,我可以使用函数 createInjector 创建基于多个模块的注入(inject)器。 因为我使用 GWT.create 在 GoogleGin 中实例化注入(in
我在 ASP.NET Core 1.1 解决方案中使用配置绑定(bind)。基本上,我在“ConfigureServices Startup”部分中有一些用于绑定(bind)的简单代码,如下所示: s
我在 Spring MVC 中设置 initBinder 时遇到一些问题。我有一个 ModelAttribute,它有一个有时会显示的字段。 public class Model { privat
我正在尝试通过jquery post发布knockoutjs View 模型 var $form = $('#barcodeTemplate form'); var data = ko.toJS(vm
如何为包含多态对象集合的复杂模型编写自定义模型绑定(bind)程序? 我有下一个模型结构: public class CustomAttributeValueViewModel { publi
您好,我正在尝试实现我在 this article 中找到的扩展方法对于简单的注入(inject)器,因为它不支持开箱即用的特定构造函数的注册。 根据这篇文章,我需要用一个假的委托(delegate)
你好,我想自动注册我的依赖项。 我现在拥有的是: public interface IRepository where T : class public interface IFolderReposi
我正在使用 Jasmine 测试一些 Angular.js 代码。为此,我需要一个 Angular 注入(inject)器: var injector = angular.injector(['ng'
我正在使用 Matlab 代码生成器。不可能包含代码风格指南。这就是为什么我正在寻找一个工具来“ reshape ”、重命名和重新格式化生成的代码,根据我的: 功能横幅约定 文件横幅约定 命名约定 等
这个问题在这里已经有了答案: Where and why do I have to put the "template" and "typename" keywords? (8 个答案) 关闭 8
我开发了一种工具,可以更改某些程序的外观。为此,我需要在某些进程中注入(inject)一个 dll。 现在我基本上使用这个 approach .问题通常是人们无法注入(inject) dll,因为他们
我想使用 swing、spring 和 hibernate 编写一个 java 应用程序。 我想使用数据绑定(bind)器用 bean 的值填充 gui,并且我还希望它反射(reflect) gui
我有这段代码,当两个蜘蛛完成后,程序仍在运行。 #!C:\Python27\python.exe from twisted.internet import reactor from scrapy.cr
要点是 Spring Batch (v2) 测试框架具有带有 @Autowired 注释的 JobLauncherTestUtils.setJob。我们的测试套件有多个 Job 类提供者。因为这个类不
我是一名优秀的程序员,十分优秀!