インタフェーステストプラットフォームの構築を一歩一歩教えます(1)

6595 ワード

多くの学生がテストプラットフォームに興味を持っていることがわかり、私たちの一連のチュートリアルはテストプラットフォームの開発をめぐって展開されています.
このシリーズのチュートリアルでは、postmanのような超簡単なインタフェーステストプラットフォームを実現します.クライアントバージョンではなく、Web版にすぎません.
このセクションでは,フロントエンドインタフェースでgetリクエストを送信し,応答を得る機能を実現する.これは、getインタフェースをデバッグするプラットフォームツールと同じです.
実現した後の効果はこのようなものです.

どこから


チュートリアルをよりよく理解するには、次の知識が必要かもしれません.
  • pythonベースで、コードが大体読める
  • webサーバの知識
  • htmlの知識は、提出フォーム
  • に関連するためです.
  • 最も基本的なcss知識は、数行のcssコード
  • に関連する.
    もしあなたが全く基礎がなければ大丈夫です.チュートリアルを勉強しながら出会った新しい知識点を勉強して、少し積み重ねて、堅持すれば収穫があります.

    ぎじゅつせんたく


    できるだけ簡単にするために、pythonを使用してテストプラットフォームを実現することを選択しました.結局、pythonの学習コストは相対的に高くありません.また、python以降もテスト職場の標準的なスキルであるべきです.
    私たちのプラットフォームは主にwebアプリケーションなので、flaskフレームワークを選択して機能を迅速に実現します.
    フロントエンドのページを少しきれいにするためにbootstrap 4をフロントエンドコンポーネントとして選びました.
    httpリクエストと応答をより簡単に処理するためにrequestsを使用してリクエスト処理プロセスを簡略化します.

    インストール依存


    初心者にとってはこの一歩が一番難しいはずですが、間違いがあったら、簡単に諦めないで解決策を探してほしいです.
    まずpython 3をインストールします.
    次にpipを使用してコマンドラインからreqeustsとflaskをインストールし、コマンドは次のとおりです.
    pip install requests
    
    pip install Flask
    

    UIの実装


    まず、ブラウザからアクセスできるUIをテストプラットフォームに作成します.
    以下の内容のファイルmain.pyを作成します.
    from flask import Flask, render_template, request
    import requests
    
    app = Flask(__name__)
    
    @app.route('/')
    def home():
        return render_template('home.html', resp=None)
    main.py同級ディレクトリの下にtemplatesフォルダを作成し、フォルダ内にhome.htmlファイルを作成します.
    
      
        
        
        
    
        
        
        
    
        ETF
      
      
        

    ETFインタフェーステストプラットフォーム


    のhtmlコードは コピーすればいいので、 な はありません.
    コマンドラインを き、cdからmain.pyパスの でlinux/macユーザーが
    export FLASK_APP=main.py
    export FLASK_ENV=development
    flask run #  python -m flask run

    Windowsユーザーはたぶんこのように できます(テストしたことがありませんが、 があれば で してください)
    set FLASK_APP=main.py
    set FLASK_ENV=development
    flask run #  python -m flask run

    いがなければ、 は の りです.
    * Serving Flask app "main.py" (lazy loading)
    * Environment: development
    * Debug mode: on
    * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
    * Restarting with stat
    * Debugger is active!
    * Debugger PIN: 235-696-725

    ブラウザでlocalhost:5000にアクセスすると、フロントエンドページが されるはずです.


    main.pyでは,/パスの ロジックを した.ブラウザがlocalhost:5000にアクセスすると、このロジックがヒットします.localhost:5000はlocalhost:5000/と なので、localhost:5000に アクセスする 、 のhome()メソッドが されます
    @app.route('/')
    def home():
        return render_template('home.html', resp=None)
    

    return render_template('home.html',resp=None)メソッドは、templatesディレクトリのhome.htmlファイルをレンダリングすることを し、2 のパラメータは に します.


    フロントエンドページの ボックスに の を し、「OK」ボタンをクリックすると、ページが って されます.getこのパスは にヒットしていないため、404エラーが する.
    /handle_getこのパスは はlocalhost:5000/handleですgetパスは、 の を します.
  • ユーザは ボックスから1つのインタフェースアドレスを 、 ボタンをクリックするとそのアドレスがサーバ の コード、すなわちmainに .pyファイルのコード
  • バックグラウンドコードは、ユーザが インタフェースurlを し、get を してそのurlにアクセスし、インタフェースの
  • を する.
  • をフロントエンドページに す
  • .
    サービス コードmain.pyは の りです
    @app.route('/handle_get', methods=['POST'])
    def handle_get():
        url = request.form['url']
        try:
            r = requests.get(url)
        except Exception as e:
            print(e)
            r = None
    
        return render_template('home.html', resp=r)

    のコードではまずヒット/handleを しましたgetパス の コード、すなわちhandle_get()メソッド.POST の び しにのみ するのはなぜですか?
    handle_get()メソッドでは,ユーザが したurlを し,requestsライブラリを いてgetリクエストを し,responseオブジェクトを するとフロントエンドページ,すなわちrender_に する.templateの2 のパラメータの .
    ここでは を っていますが、 を して、 が こるか てみましょう.
    たちはホームを します.htmlページは、 の を できるようにします.
    ...
    ...
    ...
    
    

    ETF


    {% if resp %}

    : {{resp.url}}

    : {{resp.status_code}}


    Headers

    {% for key, value in resp.headers.items() %}

    {{key}}: {{value}}

    {% endfor %}
    Body
    
            
              {{resp.text}}
            
          
    {% else %}
    なし
    {% endif%}
    ここではjinjaテンプレートエンジンを いたが,これはhtmlに な を す であり, または のルートと できる.
    ここでは のステータスコード,headers,bodyを した.


    インタフェースurlを1つ し、 を して する を しました.
    たちは 4つの を っています.
  • python
  • html
  • CSS
  • jinjaテンプレート
  • たちは の に れました
  • webサービス
  • htmlフロントエンド のほんの し、 えばフォーム
  • pythonを してhttpプロトコルのgetインタフェース
  • にアクセスする
    このセクションのすべてのコードはここで できます.
    のセクションでは、 を します.