【发布时间】:2020-06-29 18:19:13
【问题描述】:
我有一个 Flask 应用程序,可以将我的 Web 应用程序启动到特定端口(例如,8080)。它通过运行python run.py 启动。我还有一个 Python 文件,它为 Web 应用程序运行 Selenium 端到端测试。
这是 GitHub 存储库的一部分,我已将其连接起来,以便每当我推送/提交到 GitHub 存储库时,它都会启动 Jenkins 测试。 Jenkins 使用我的机器作为代理来运行命令。我在 Jenkins 的管道中有一系列命令要执行。
理想情况下,命令的顺序应该是:
- 启动 Flask Web 应用程序
- 运行 Selenium 测试
- 终止 Flask Web 应用程序
现在,我的问题是:我可以使用 Jenkins 将 repo 克隆到我的计算机(代理)上的本地工作区,然后运行 Python 命令来启动我的 Web 应用程序。我可以使用 Jenkins 并行运行一个任务,在 Web 应用程序使用的端口上进行 Selenium 测试。
但是一旦 Selenium 测试完成,我无法弄清楚如何结束 Flask Web 应用程序。如果我不结束 run.py 执行,它就会陷入无限循环,无休止地为端口提供应用程序。我可以让 Jenkins 在指定的时间后自动中止,但这会将整个过程标记为失败。
Selenium 测试完成后,是否有人知道如何结束 Flask 托管进程?或者,如果我以一种笨拙的方式来做这件事(我承认我是出于大量的无知和缺乏经验而说话),有没有更好的方法来处理这个问题?
【问题讨论】:
-
澄清一下,我不需要 Selenium 来进行关闭;我只提到 Selenium 是为了说明我为什么要这样做。关键部分是以编程方式关闭端口的实际行为。谢谢!
-
这能回答你的问题吗? How to run Flask Server in the background
标签: python selenium jenkins testing flask