フレームワークとは何ですか?
フレームワーク(枠組み)または全体のシステム設計の再使用可能な部分は、
フレームは、組織及び操作コード制御の問題を解決するために使用されます。
私たちは自動化されたスクリプトを書くときは、頻繁には、データファイル、送信要求、ロギング、データベース接続を読み込み、データを比較し、設定ファイルを読み込む必要があります。各スクリプトは、すべての様々な方法を書き換え重いワークロードとエラーが発生しやすいだけではありません。だから我々は、バッグの中に独立したモジュールとしてパッケージ化され、公開、一般的な方法を抽出する方法を必要としています。また、設定ファイルなどのデータファイル、ログは、我々はまた、別のフォルダに分類維持する必要があります。このスクリプトと構成ファイルのパッケージ、そしてどのようなフレームワークと呼ばれるパブリックメソッドの機関設計。
一方、一般的なフレームワークだけでなく、に加えて、組織コードとコンフィギュレーションファイル外の操作の完全な制御を提供します。例えば、バッチ実行、一部の実行モジュールは、レポート、例外処理などを発生させます。
次の3点に要約さ:
- パブリックメソッドパッケージ
- 組織コードとコンフィギュレーションファイル
- 実行制御
テストフレームワークとは何ですか?
完全なテストスクリプト(ユースケース)は、一般的に以下の工程を含みます:
- 環境準備やチェック
- 業務執行
- アサーション結果
- 環境のクリーンアップ
通常、ローディングケースによって達成テストフレーム、バッチ実行、異常な制御と出力機能の結果。ベースのテストフレームワークは、一般的な業務執行機能の制御を提供します。
テストフレームワークは、特性を持っている必要があります
- 使いやすさ:書き込みユースケース、ユースケースの実行、レポート作成や簡単な位置決め問題
- 堅牢性:安定した、そのようなタイムアウトメカニズムとして
- スケーラビリティ:プラグイン
- 柔軟性:柔軟性組織またはケースを用いて行わ、器具の機能(およびティアダウン、セットアップの異なる範囲)、等
- カスタマイズ:便利な二次開発
ユニットテスト、pytest、鼻、ロボットフレームワーク简介
- unittestのは:Pythonは、最も基本的なユニットテストフレームワークが来ます
- 鼻:unittestのベースの開発、使いやすさが良いですが、多くのプラグインがあります
- pytest:ユニットテストにも基づいて開発、使いやすさは、良好な、より詳細な情報、プラグインの数であります
- ロボットのフレームワーク:Python言語に基づいて、キーワード駆動型テストフレームワーク、インタフェースがあり、完全に機能する、自己報告とクリアで美しいログイン
プロジェクト | 単体テスト | 鼻 | pytest | ロボットのフレームワーク |
---|---|---|---|---|
書かれたケース | 継承たunittest.TestCaseクラスがアサーションテストスイートの広い範囲を整理する必要があります | 試験方法の先頭に | これは、試験方法の始まりです | ロボットは、テキストファイルをフォーマットすることができます |
アクチュエータ | あなた自身のrun_all_tests +は+ CommandParser +を発見書きます... | nosetests ... | py.test ... | pybot ... |
彼らは発見していました。 | サポート | サポート | サポート | サポート |
スキップユースケース | unittest.skip()unittest.skipIf()昇給uniitest.SkipTest | nose.plugins.skip輸入SkipTestraise SkipTestから | @ pytest.mark.skipif(条件)@ pytest.mark.xfail | - |
備品 | SETUP /ティアダウン@ classmethodsetUpClass ... | サポート | Pytest.fixture(セッション= "セッション"、autouse =真)フィクスチャスコープ:@関数、モジュール、セッション、autouse = Trueの機能が実行をデフォルトになります | [設定] ... [ティアダウン] ... |
タグ付きの例タグ | (unittest.skip付き)+ comandParser達成 | ATTRIB标签)nose.plugins.attribインポートからのattr @ ATTR(速度= '遅い')DEF test_big_download(:遅い= $ nosetests -aスピードを渡します | Pytest.mark.webtest @カスタムマーク、次のように、とWebTestの、py.test -v -mの後、py.test -v -m WebTestの実行マークが唯一の機能「ではないWebTestの」無印WebTestのを実行します | 【タグ】試験level1pybot -i / - tagNameをCを含む:\ TF-Testpybot -e / - exculde LEVEL1 * .robot排除 |
タイムアウトタイムアウトメカニズム | 自分自身を達成するために | nose.tools インポートtimedimport時間@タイミング(1)DEF test_lean_5():time.sleep(2)パス | PIPインストール[email protected](60)或pytest --timeout = 300 | [タイムアウト] 3秒 |
パラメータ化 | DDTの使用と組み合わせ | DDTの使用と組み合わせ | @ pytest.mark.parametrize( "A、B、期待される"、テストデータ)デフtest_timedistance_v0(、bは、予想):差分= - 予想bassertデフ== | [テンプレート] 1 2 3 |
レポート | HTMLTestRunner | ピップ鼻htmloutputインストール - --html-ファイル・HTMLでの= | ピップ-U pytest-htmlpy.test --html =。/ report.htmlをインストール | サポート、デフォルトの自動生成 |
ログログ | 自分自身を達成するために | --nologcaptureログを使用しない - ログ形式= FORMAT使用カスタム表示形式ログ--logging-datefmt =上記FORMAT同様のクラス、複数の日付フォーマットは--loggingフィルタFILTER =ログフィルタを、通常使用されていません、あなたは--loggingクリア・ハンドラに焦点を当てることができないでレベル定義--loggingレベル= DEFAULTログを心配することはできません | pytest test_add.py --resultlog =。/ log.txtpytest test_add.py --pastebin =すべて | サポート、デフォルトの自動生成 |
例としては、唯一の収集のみ記載されています | ノー | nosetests --collect-onlynosetests -v --with-ID | --collect専用-v | - |
重量例が運営する再実行の失敗を失敗しました | ノー | nosetests -v --failed | PIPインストール-U [email protected](再放送= 5)py.test --rerun = 3 | ロボット--rerunfailed |
ベースラインの比較 | ノー | ノー | ノー | ノー |
によって複雑 | unittestの同時コルーチンを用いた形質転換、またはスレッドプール+美しいレポートを使用します | 同時コマンドライン | pytest-xdist:未使用のCPUまたはマシンを配布します | 同時コマンドライン |
XMLレポート | ノー | --with-のxUnit | --xunitファイル= ... / pytest +アリュール | --junit-XML = |
Seleniumのサポート | ノー | ノー | pytest - セレン | robotframework-seleniumlibraryrobotframwork-selenium2library |
概要:全体的に、比較のunittestの基礎、便利で専門家の使用に適しての二次開発; pytest /鼻より速く、より便利に、より効率的、かつ企業の効率性の追求のための白、ロボットフレームワークによるインターフェースやレポートの外観に、簡単により良い使用、わずかに悪化柔軟性とカスタマイズ性。