我有一个简单的REST应用程序,我想使用Jenkins进行测试。 Jenkins构建编译二进制文件,在带参数的shell中运行它,然后使用Jenkins插件向应用程序发送HTTP POST。
问题是HTTP请求构建步骤一直运行,直到Execute shell终止,因此它总是收到408错误。
如何让shell脚本保持运行足够长的时间,以便我可以发送一些HTTP请求?有人建议詹金斯管道,但这似乎比这里需要的更重。
答案 0 :(得分:0)
总而言之,您需要在构建过程继续运行时让您的应用程序运行。
要实现您想要的功能,您必须在shell调用期间在后台启动应用程序(可能在linux OS下的命令末尾使用&
或使用{{3}之类的工具}})... 但是 Jenkins不允许你做这样的事情......好吧,如果你不知道如何低声说话;)
为了让jenkins在构建期间让你泄漏描述符和进程,你必须使用一个技巧,即将BUILD_ID
设置为除当前BUILD_ID之外的其他内容。
在启动守护程序之前,set BUILD_ID=dontKillMe
之类的内容应该足够明确
这样,您就可以在构建步骤中启动应用程序,然后,在之后发生的另一个步骤中,您将能够向其发送您的HTTP请求。
不要忘记在构建完成之前停止应用程序,以避免让这个过程停留并占用内存。
答案 1 :(得分:0)
如果应用程序在Linux上运行,您可以使用“screen”在后台启动它。