我有一个接受特定格式的XML的endpoint。我正在尝试在XML文件上使用类似于循环的函数作为提要。我可以使用CSV文件做到这一点,但我似乎无法使用XML文件做到这一点。这可能吗?
我也读过:https://gatling.io/docs/3.0/session/feeder/?highlight=feeder#file-基于网络的馈线
我也是加特林的新手,到目前为止只写过一次负载测试。
以下是我的示例代码:
object ProcessXml {
val createProcessHttp = http("Process XML")
.post("/myEndpointPath")
.body(RawFileBody("data/myXml.xml"))
.asXML
.check(status is 200)
val createProcessShipment = scenario("Process Shipment XML")
.feed(RawFileBody("data/myXml.xml).circular) // feed is empty after first user
.exec(createProcessHttp)
}
出于某种原因,这场战争。csv works的feed()参数(csv(Environment.createResponseFeedCsv)。圆形的其中createResponseFeedCsv在我的环境文件中的utils下定义)。
在这个问题上的任何帮助将不胜感激。提前感谢。
CSV feeder仅适用于逗号分隔的值,因此理论上,您可以只使用一列来准备CSV文件,该列可以是XML文件的单行表示列表(假设这些文件不包含任何逗号)。但在您的情况下,最好使用这样一个事实,Feeder[T]
只是Iterator[Map[String,T]]
的别名,这样您就可以定义自己的Feeder了。从特定目录中读取文件列表,并不断迭代其路径列表:
val fileFeeder = Iterator.continually(
new File("xmls_directory_path") match {
case d if d.isDirectory => d.listFiles.map(f => Map("filePath" -> f.getPath))
case _ => throw new FileNotFoundException("Samples path must point to directory")
}
).flatten
这样,此进纸器将使用xmls_directory_path
目录中的文件路径填充filePath
属性。因此,如果您使用所有示例XML加载它,您可以使用filePath
属性(使用Gatling EL提取)调用RawFilebody()
:
val scn = scenario("Example Scenario")
.feed(fileFeeder)
.exec(
http("Example request")
.post("http://example.com/api/test")
.body(RawFileBody("${filePath}"))
.asXML
)
或者如果你是。想在更多场景中使用它,您可以定义自己的FeederBuilder
类fe:
class FileFeeder(path: String) extends FeederBuilder[File]{
override def build(ctx: ScenarioContext): Iterator[Map[String, File]] = Iterator.continually(
new File(path) match {
case d if d.isDirectory => d.listFiles.map(f => Map[String, File]("file" -> f))
case _ => throw new FileNotFoundException("Samples path must point to directory")
}
).flatten
}
在本例中,逻辑与此类似,我刚刚将其更改为使用file
对象馈送file
属性,以便在更多用例中使用它。由于它不返回String
path,我们需要使用SessionExpression[String]
fe从File
中提取它:
val scn = scenario("Example Scenario")
.feed(new FileFeeder("xmls_directory_path"))
.exec(
http("Example request")
.post("http://example.com/api/test")
.body(RawFileBody(session => session("file").as[File].getPath))
.asXML
)
假设我需要编写一个gatling负载测试脚本,它需要调用两个api A1和A2。它首先需要调用A1,A1将返回一个JSON负载,它需要在JSON负载中提取一个字段,并在调用第二个API时使用该字段值。有人能告诉我怎么做吗?此脚本用于负载测试通过HTTP的服务器restful API。
伙计们对BrowserStack还不熟悉。 任何建议都将得到高度赞赏,因为它将解决我前面的路障
我目前在AWS中使用Gatling加载测试我的服务。我使用HTTP做了几次负载测试,我的服务工作得很好。没有TLS握手错误。当我们移动到HTTPS时,负载测试结果显示TLS握手超时异常到处都是,最后因为未处理的请求排队而抛出OOM。 其他信息: Gatling场景如下:发送三个请求,然后使用头发送一个请求。我想模拟发送三个保持活动状态的请求,并在最后关闭它 我的服务由Kubernetes管理 我所
我想单击单击时下载文件的按钮,并测试是否已下载预期的文件。 我已经用谷歌搜索过这个,但不幸的是没有找到关于这个主题的任何具体答案,我找到的很多帖子都已经过时了(2014 年),我敢打赌 Selenium 现在一定已经改变了 API 定义。
问题内容: 我正在使用某些文件,并且想知道是否存在一种检查文件是否为图像的方法? 问题答案: 这对我来说很好。希望我能帮上忙
本文向大家介绍性能测试和负载测试之间的区别,包括了性能测试和负载测试之间的区别的使用技巧和注意事项,需要的朋友参考一下 性能测试 在软件上执行性能测试,以测试其在特定工作负载下的性能,灵敏度,反应时间和稳定性。 负载测试 负载测试检查软件的性能,以检查在基于实际负载的负载下的性能。 以下是性能测试和负载测试之间的一些重要区别。 序号 键 性能测试 负载测试 1 目的 性能测试可以测试各种负载下的系