当社独自のパッケージ・インタフェースのテスト自動化フレームワークの - アクションを構築するための20191011-リクエストメソッド

アクションモジュール

当社のインタフェースでその特性を取得し、POSTメソッドであるため、要求のパッケージ・インターフェース・メソッドは、メソッドの呼び出し要求に渡されたパラメータに応じて、これだけ取得し、POSTメソッドをカプセル化:

インポート要求が
 インポートJSONを
 から Util.Log インポート *
 インポートトレースバックが声をかけ
 DEF :api_request(メソッド、BASEURL、ヘッダ、認証、ボディ、test_case_name)
     「」 " アクションキーワード、方法を確認するか、投稿するgetメソッドを使用することによって、リクエストパスのBASEURL、ヘッダ空の要求ヘッダー、承認のための認証ログインは、体があるとき場合、POST要求データ情報の要求方法「」 " 
    グローバルレスポンス 
    default_header = { のContent-Type ファイルアプリケーション/ JSON }
     ないリクエストヘッダは、If情報、デフォルトの要求ヘッダーが
    IF  ない:ヘッダ
        ヘッダ = default_headerの
     文字列が読み出されているので優れたヘッダ情報であれば、それは辞書に必要なヘッダ情報である
    #のGETリクエスト
    のIF method.lower()== GET 試しIF でisinstance(ボディ、辞書):
                情報(" - " * 80 
                情報(" 要求インタフェース操作である:%S "%のtest_case_name)
                情報(インターフェイスアドレスの要求は次のとおりです。%S BASEURL)
                情報(" データ要求がある:%S "%のボディ)
                R = requests.get(BASEURL、paramsは=本体、ヘッダー=ヘッダ、AUTH = AUTH)
                INFO(" 请求返回状态码:%S "%のr.status_code)
             R = requests.get(BASEURL + STR(本体)、ヘッダ=ヘッダ、AUTH = AUTH) 
                R = requests.get(BASEURL、ヘッダー=ヘッダ、AUTH = AUTH)
                情報(" - " * 80 
                情報(" 要求インタフェース操作である:%S "%のtest_case_name)
                情報(インターフェイスアドレスの要求は次のとおりです。%S BASEURL)
                情報(" データ要求がある:%S "%のボディ)
                情報(" ステータスコードを返すように要求されます:%S "%のr.status_code)
             リターン・R&LT
         除く例外E AS: #
              "例外を入力してください")印刷 
            情報(メソッド要求例外が発生GET:URLリクエストは%sと、コンテンツを要求しましたある%S \ nは次のように異常情報が発生した:%S "(BASEURL、本体、traceback.format_exc()))
            R = なし
         リターンのR
     #のポスト请求
    のelif method.lower()== " ポスト" 試してください場合でisinstance(ボディ、辞書):
                情報(" - " * 80 
                情報(" 要求インタフェース操作である:%S "%のtest_case_name)
                情報(インターフェイスアドレスの要求は次のとおりです。%S BASEURL)
                情報(" データ要求がある:%S "%のjson.dumps(ボディ))
                R = requests.post(BASEURL、ヘッダ=ヘッダ、データ=のjson.dumps(本体)、AUTH = AUTH)
                情報(ステータスコードを返すように要求した:%S %のr.status_code)
             昇給とValueError
         を除くE ASとValueError:
            情報(POSTメソッド要求例外が発生:URL要求は%sと、要求されたコンテンツは、%sの\ nは次のように異常情報が発生します。%S %(BASEURL、身体、リクエストパラメータが辞書型ではありません))
            R = なし
         を除いて電子などの例外:
            情報(" POSTメソッド要求例外が発生:URL要求は%sと、要求されたコンテンツがある%sの\ nは次のように異常情報が発生します。%S "(BASEURL、ボディ、traceback.format_exc()))
            R = なし
         戻り R

詳細:

プロジェクト、ポストプロセスのContent-Typeの "の特徴は、「アプリケーション/ JSON」ですので、私はパッケージ内にカプセル化方式ヘッダー要求をデフォルト。バグトレーサビリティコードが容易に後に書き込みログを追加しています。

すなわち、6つのパラメータを受信するリクエストメソッド

  1. 方法:リクエストメソッド名、
  2. BASEURL:リクエストURL
  3. ヘッダ:要求ヘッダ
  4. 認証:認証情報
  5. ボディ:リクエストボディ
  6. test_case_name:要求インターフェース名は、主にログ・レコード・インタフェース名を記述するために使用されます

着信要求を選択された方法は、取得または要求がある場合にPOST要求は、GETメソッドは、URL、要求ヘッダー、要求の承認を提供する方法は、POSTリクエストのURL、要求ヘッダー、リクエストボディ、要求の承認を提供する場合。

要求処理なし、その後、JSON形式のプロセスを変換するために、既定の要求ヘッダー要求ヘッダー、要求の本体を使用する場合など、データに先立って行います。

ロギングのための操作要求を行う際に、記録フォーマット:

2019年10月11日11時20分57秒Log.py [ライン:30] INFO ------------------------------- -------------------------------------------------
2019 -10-11午前11時20分57秒Log.py [ライン:30] INFOの要求インタフェースの動作である:*******
2019年10月11日午前11時20分57秒Log.py [ライン:30] INFO要求インターフェイスアドレスは次のとおりです。http:// *********************************
2019年10月11日11:20 :57 Log.py [ライン:30]:*********データINFO要求であります

 

おすすめ

転載: www.cnblogs.com/hyj691001/p/11654034.html