我用 python 编写了一些测试脚本,它们为特定应用程序调用一些 api,并将结果输出到数据库,这样我就可以使用 jasper 来报告结果。目前脚本是使用 python 解释器运行的,即双击 python 文件,该文件在脚本中修改了一些参数和变量,然后启动测试。我想转向对用户更友好的界面,以便其他人可以使用这些测试脚本而无需修改 python 代码。所以我正在考虑使用 django 并创建一个带有复选框的网页,如果勾选了复选框,那么它将执行特定的 python 测试脚本或将值传递给给定变量的文本框,例如.关于如何实现这一目标,我有几个问题。
1 - 我需要在 django 源代码中实现 python 代码,还是可以从 django 提供的网页调用 python 脚本?
2 - 如果我要从网页运行它,我如何确保如果网页关闭,测试将在后台继续。
3 - 有没有办法将测试用例的状态输出到网页,如果网页已关闭,如果重新打开网页,状态是否可用?
非常感谢 - oli
请您参考如下方法:
如果你有一个 python 函数,你可以从 Django django View 调用,也许使用一个表单作为参数输入。如果您有长时间运行的进程,您可能需要考虑这里的提示:How to start a long-running process from a Django view?
from mytests import testfunc
def test_parameter_view(request):
if request.method == 'POST': # If the form has been submitted...
form = ParameterForm(request.POST)
if form.is_valid():
testfunc(form.cleaned_data['parameter']) # <-- Here the actual testing happens
return HttpResponseRedirect(reverse(test_result)) # Redirect after POST
else:
form = ParameterForm()
return render_to_response('test.html', {
'form': form,
})
在您的 test_result View 中,您可以访问数据库中的测试结果值。
用户是否关闭浏览器不会影响已经启动的服务器进程。由于您将结果写入数据库,因此它们是持久的并且可以在测试完成后随时访问。
