java - 试图用 Postman 引发内存不足异常

标签 java testing gradle out-of-memory

我正在尝试测试一个简单的脚本,如果它遇到内存不足错误,它将终止并重新启动服务。服务本身执行完整的 CRUD 操作,并在其启动脚本中定义的 JVM 选项中调用脚本。

在start.sh脚本中:

DEFAULT_JVM_OPTS='"-Xmx512m" "-Dapp.name=app-service" "-XX:OnOutOfMemoryError=./oom.sh" "-Dspring.profiles.active='"$1"'"'

exec nohup "$JAVACMD" $DEFAULT_JVM_OPTS -jar $CLASSPATH > stdout.out 2> stderr.err &

在 oom.sh 中

#!/usr/bin/env sh

kill %p;

echo "service out of memory"
sleep 5
echo "Restarting service"

./start.sh profileName

我现在最大的问题实际上是通过引发 OOM 错误来测试脚本。理论上,将发生的是 oom.sh 脚本将被调用,杀死然后重新启动服务。我试过使用 Postman Runner 发送 500 个获取所有请求,但没有成功。有谁知道更好的方法吗?

最佳答案

Java Service Wrapper 会起作用吗?它旨在处理您的应用程序应该运行但由于某种原因不能运行(包括内存不足)的各种情况。它也非常坚韧。 https://wrapper.tanukisoftware.com

您可能有特定的原因/要求反对使用 Wrapper 之类的东西,但如果您还没有,那么值得一看。

关于java - 试图用 Postman 引发内存不足异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56977900/

相关文章:

Gradle 无法扩展 ZIP : is not a ZIP archive

java - Maven 构建失败 - 编译器插件

java - JDBC中CreateStatement和PreparedStatement的区别

java - 将参数传递给 View

testing - 使用属性 server.port=0 运行 spock 测试时如何查找 Spring Boot 容器的端口

testing - Protractor - 如何将每个测试分离到一个文件和单独的变量

java - 如何使用原始 JDBC 实现数据访问层而不使用对象关系模型 (ORM)

testing - QA 工程师在持续部署方法中的角色

gradle - 通过Gradle上传到 Artifactory 时如何更改jar文件名

gradle - 如何使用gradletestkit测试现有的gradle.build?