ベース層、API層、ケース層:インタフェースオートメーションフレームワークの合計は、3つの層に分かれ
1.ベース層
1.1 helper.pyファイル:
1 JsonHelper:情報JSON抽出方法 2 MySqlHelper:MySQLを接続する方法を 図3 TimeHelper:そのようなアクセス時間または現在のタイムスタンプなどの時間に依存する方法 。4 StringHelper:そのようなランダムに生成された文字列として文字列に関連する方法、 5 AllureHelper:例示的なアサーション法の魅力と関連する方法。
1.2 request.pyファイル:アナログhttpリクエスト
1。1 。一般的な方法を使用して、要求タイプのHTTPリクエストのpythonライブラリリクエストによってカプセル化されています。 2 2 。各リクエストメッセージボディは、必要なパラメータに応答して要求パラメータ、および他のパラメータを含むデータ・ディクショナリに戻されます。 3 3. HTTPレスポンスコードは、一般的なエラーコードである場合には、例外をスローしたり、プログラムを終了します。
1.3 decorators.pyファイル:デコレータを定義します
1つの retry_common_apiデコレータ:あなたはcommon_apiを呼び出したときに、いくつかのシナリオでは、ランダムにテストケースの実行に影響を与えるであろう、異常な使用シナリオインターフェイスをトリガすることができます。このデコレータを使用して、知られているビジネス例外にキャプチャすることができますし、このAPIを再実行してください。 2 allure_attachデコレータ:すべての関連情報の処理のインタフェースは、レポートに表示されるデータのための魅力に返されます。 3 wait_untilデコレータ:いくつかのケースでは、データがデータベースに遅い動作に書き込まれます。ときに結果コール問合せインタフェースで、および所望の結果を得ることはありませんでした。指定された時間内に、このデコレータを使用すると、高速で柔軟なクエリとすることができるデータの内容を返します。
2. api层
API層は、層及び共通ベースのAPIのAPI層に分けることができます。
2.1ベースレイヤパッケージ
ルール説明:
ビジネスパラメータ1.ベース層インタフェースの命名規則:必須オプション_ _パラメータの型パラメータ名
報告書の内容を作るためにallure.step API @使用する各リターンラベルのコンテンツの場合2.魅力を提示しました。
コード前記ベース層は、一般的に、自動的に補助ツールによって生成されてもよいです。
2.2共通封入層
ルール説明:
1.共通API層は、APIベース層を継承し、共通の封入層を助けるために、必要に応じてデータベースから情報を取得する必要があります。
2.各サービスモジュールは、PYファイルに対応しています。common_api.py PYファイルには、すべてのビジネス・モジュールを継承し、ケース層の使用に提供されます。
クラスのデータ提出、データプレゼンテーションクラス、派生クラス:3.各サービスモジュールインターフェイスは、次の3つのカテゴリに分かれています。
データ提出カテゴリ:インタフェースデータがデータベースに書き込まれます。このような、追加、編集、削除など。
データは、クラスを提示:データベースインタフェースにデータを読み込みます。このようなクエリとして。
派生クラス:インタフェース上記2種類のための精錬事業。クラスに提出されたデータは、人員を追加するためのインタフェースを持って、派生クラスのインターフェイスは、モールのスタッフや他のインタフェースを追加し、インターフェイスをカプセル化するために人々を追加し、パッケージプラットフォーム管理者を追加し、運用スタッフを追加していきます。
4.各3つのカテゴリに分類サービス戻りコードのインタフェース:成功したサービスコード、サービスコード知ら異常、異常な未知のサービスコード。
1つの ビジネスの成功コード:デフォルトでは、すべてのパラメータ情報は、API要求を返されたが成功しました。また、パラメータの正確な戻り値をサポートしています。 2 異常トラフィックコードで知られている:異常情報は、デフォルトのインターフェイスを返さ。また、スローをサポートしています。 3未知の異常トラフィックコード:直接投げます。
パラメータの命名規則の機能:時間パラメータ、一覧カテゴリパラメータ、編集パラメータ、設定されたデフォルトパラメータ
時間パラメータ: 2 startDateTime:2019年9月6日0時00分00秒 位デフォルトを設定 3。 endDateTime:2019年9月6日夜11時59分59秒 位デフォルトを設定 4。 たstartDate:2019年9月6日 5。 endTimeは:23であるの:59:59 。6 。7つの リストインタフェースクラスにパラメータをlist_始まる 。8 list_pageNo #1 。デフォルトとして、リストページを1 。9 list_pageSize #のリストページのサイズ、デフォルトは20である 10 list_order #は、リストをソート 11。 12は 編集インターフェース: 13 edit_します代わって編集することができるパラメータの先頭のインターフェイスパラメータ 14の デフォルトのパラメータ値は、インターフェイスリスト情報から編集またはインタフェースの詳細することができます
2.3 APIアプリケーションのシーン記述
1.シーン1:フィールド・レベルのキャリブレーションパラメータへのインタフェースとして
使用方法:レイヤーAPIの下にダイレクトコール機能層base_api.pyファイルの場合
2.シーン2:リバースサービスのユースケース
層の下にダイレクトコール機能層common_api.py APIファイルの場合は、Falseをパラメータbusiness_exception =:使用。
3.シナリオ3:ビジネスユースケースや前提条件の実施を推進
使用方法:直接の層の下に通話機能層common_api.py APIファイル、およびパラメータbusiness_exceptionの場合=真。修飾retry_common_apiデコレータこの場合、インタフェースは、既知の異常トラフィック干渉試験を除外してもよいです。
3.ケース層
実施例に記載された設計ルールに3.1
1.例階層セット:ユースケースにフィールドレベル、モジュールレベルのユースケース、シナリオ。
2.階層内のテストケースは:allure.stepコメントによって階層的試験手順を実装します。
3.各ユースケースは、機能、物語のラベルの魅力しなければならない、ラベルの説明は、状況に応じて追加されます。
4.例命名関数名:ヘッダとTEST_実施形態。
ブロッカー、通常、マイナー:3つのカテゴリに分類例5レベル。
実施例の方法により、3.2多重化ステップ
1.多重化前提条件:テストインタフェース可能依存性は、固定具又はpytest conftestによって解決されます。
2.事後多重:ユースケースステップの高頻度は、個々にutilsの中に包装します。ネーミング:positive_ *とnegative_ *
3.3留意事項
実施例1試験ポイントを伴わないケースが多いできるだけ低くテストポイントとのカップリングの程度、
複雑なインタフェース2.適切な分割をする必要があります。ユースケースの可読性と保守性を確認してください
3.事前条件モジュールレベル、合理的な設計の必要性に基づいています。
4.アクセシビリティ
4.1テンプレートコードは、自動的にAPI層を生成しました。
1.まず、yaml_dirディレクトリにYAMLファイルのインタフェース情報を書き込みます。
2.コマンドの実行、目的の位置にコピーし、一時領域コードを支援します。
4.2パラメータ化ビジネスデータ
ランダム固定サービスパラメータとサービスパラメータに1.サービスデータ。
2.固定サービスデータ:テストデータ/ fixed_businessData.pyにおける店舗
3.ランダムなデータサービス:テストデータ/ gen_businessData.pyに保存されています