2

特定のアプリケーション用にいくつかのAPIを呼び出し、結果をデータベースに出力するPythonでいくつかのテストスクリプトを作成したので、ジャスパーを使用して結果を報告できます。現在、スクリプトは python インタープリターを使用して実行されます。つまり、スクリプト内でいくつかのパラメーターと変数が変更されている python ファイルをダブルクリックすると、テストが開始されます。他の人が Python コードを変更せずにこれらのテスト スクリプトを使用できるように、よりユーザー フレンドリーなインターフェイスに移行したいと考えています。だから私はdjangoを使用してチェックボックスを持つWebページを作成することを考えています。チェックボックスがチェックされている場合、その特定のpythonテストスクリプトまたは値を特定の変数に渡すテキストボックスを実行します。 . これを達成する方法についていくつか質問があります。

1 - python コードを django ソース コードに実装する必要がありますか、それとも django が提供する Web ページから python スクリプトを呼び出すことができますか?

2 - これを Web ページから実行する場合、Web ページが閉じられた場合にテストがバックグラウンドで続行されるようにするにはどうすればよいでしょうか。

3 - テスト ケースのステータスを Web ページに出力する方法はありますか? また、Web ページが閉じられていた場合、Web ページが再度開かれた場合にステータスを利用できるようにする方法はありますか?

どうもありがとう - オリ

4

2 に答える 2

3

Python 関数がある場合は、Django django ビューから、おそらくフォームをパラメーター入力として呼び出すことができます。実行時間の長いプロセスがある場合は、ここからヒントを検討することをお勧めします: 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ビューで、データベースからのテスト結果の値にアクセスできます。

ユーザーがブラウザーを閉じても閉じなくても、既に開始されているサーバー プロセスには影響しません。また、結果をデータベースに書き込むため、結果は永続的であり、テストが終了した後はいつでもアクセスできます。

于 2012-06-05T01:42:59.927 に答える
0

スクリプトを django ビューに移植したくない場合は、別の方法があります。

1 - スクリプトに渡すすべてのオプションを含むフォームを設定します

2 - フォーム パラメータを GET または POST しvar1 = request.POST['param1']、などを使用して変数に保存します。

subprocess3 -スクリプトを実行するために呼び出されるモジュールを使用します。http://docs.python.org/library/subprocess.html

于 2012-06-05T09:33:18.793 に答える