gpt4 book ai didi

python - 在持续集成测试期间使用 Python 脚本启动和停止 Google App Engine dev_appserver

转载 作者:太空狗 更新时间:2023-10-30 02:34:54 25 4
gpt4 key购买 nike

我正在尝试编写一个 Python 脚本,使我能够使用 coverage.py 启动 Google App Engine dev_appserver,从我启动的应用程序中获取/test url,等待服务器完成返回页面,然后关闭dev_appserver,然后生成报告。

我的挑战是如何在后台启动 dev_appserver 以便我可以执行 http 提取,然后如何在生成报告之前关闭 dev_appserver。

我正朝着这样的方向前进:

# get_gae_coverage.py
# Launch dev_appserver with coverge.py
coverage run --source=./ /usr/local/bin/dev_appserver.py --clear_datastore --use_sqlite .
#Fetch /test
urllib.urlopen('http://localhost:8080/test').read()
# Shutdown dev_appserver somehow
# ??
# Generate coverage report
coverage report

编写 python 脚本来执行此操作的最佳方法是什么?

最佳答案

你应该选择 subprocess Popen

import os
import signal
import subprocess

coverage_proc = subprocess.Popen(
['coverage','run', your_flag_list]
stdout=subprocess.PIPE,
stderr=subprocess.STDOUT)
time.sleep(5) #Find the correct sleep value
urllib.urlopen('http://localhost:8080/test').read()
time.sleep(1)
os.kill(coverage_proc.pid, signal.SIGINT)

Here您可以找到另一种方法来测试服务器是否已启动并正在运行:

line = proc.stdout.readline()
while '] Running application' not in line:
line = proc.stdout.readline()

关于python - 在持续集成测试期间使用 Python 脚本启动和停止 Google App Engine dev_appserver,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5786887/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com