効率重視: ChatGPT と HttpRunner を使用したアジャイル自動テストの実装 (2) | JD クラウド テクノロジー チーム

1 はじめに

前回の記事: ChatGPT を使用してテスト作業効率を向上させる - テスト エンジニアのための新しいツール (1) では、chatGPT を通じて単一のインターフェイス テスト ケースを生成し、そのテスト ケースに基づいて chatGPT にインターフェイス自動化スクリプトを生成させる方法について説明しました。この記事では、ビジネス上の課題が発生したときに、チームが Httprunner フレームワークを使用して自動インターフェイス テストを実行する方法について詳しく説明します。最近、chatGPT に出会ったとき、この 2 つをどのように組み合わせて「アジャイル」な自動テストを実現すればよいでしょうか?

まず、ビジネステストの課題は、商用 Devops 製品の納品プロセスにおいて、国内のさまざまなシステムだけでなく、顧客サイトや社内のさまざまな環境が存在し、複数の顧客に並行して納品され、複数のバージョンを実行する必要がある 回帰テスト。回帰が限られた人員リソースでテスターに​​よって手動で実行される場合、配信が時間通りに完了しない可能性があります。インターフェイスの自動化と回帰支援を迅速に実現するにはどうすればよいですか? チームの内部選択の後、速度、柔軟性、使いやすさに基づいて HttpRunner フレームワークが最終的に選択されました。最終的に、さまざまな顧客サイト環境において、運用保守担当者が環境展開を完了すると、基本的な機能の回帰テストを迅速に実装できるため、テスターの復帰時間が大幅に短縮されることがわかりました。

次に、Httprunner を使用して、「クリック」、「変更」、「チェック」の 3 つのツールを通じて自動インターフェイス テストを実行する方法について詳しく説明します。ポイントは、Webフロントエンド上で業務を実行して対応するインターフェースを記録し、コマンドで自動化スクリプトを出力することです。この変更は、置き換える必要があるすべての繰り返しコンテンツをスクリプトを使用してバッチで変更する必要があることを意味します。もちろん、変数の抽出とアサーションは依然として各インターフェイスで手動で変更する必要があります。チェックとは、デバッグを実行してエラーを見つけて修正することを意味します。単一インターフェイスの手動入力を必要とする一部のインターフェイス テスト ツールやプラットフォームと比較して、Httprunner は非常に簡単で、問題はありません。以下は、Httprunner を通じて自動スクリプトを生成する方法の詳細な例です。

2.移動1:少しクリック

次に、チーム スペースの作成、イテレーションの作成、チーム スペース モジュールでのカードの作成のプロセス全体を自動化する、単純なビジネス シナリオを説明します。まず、Web 側で対応する操作を実行する必要があります。

同時に、Fiddler などのパケット キャプチャ ツールやブラウザ自体の F12 機能を使用して、ビジネス プロセス インターフェイスをキャプチャすることもできます。セカンダリの予約済みコア インターフェイスを削除し、すべてのインターフェイスを har ファイル createSpaceCardDemo.har にエクスポートします。(パケット キャプチャ ツールとブラウザの両方でエクスポートできます)

次に、 Httprunner フレームワークのツール コマンド ライン h ar2case.exe createSpaceCardDemo.harを使用して、har ファイルを py スクリプトに変換します。(もちろんyml形式でも構いません。それに比べてpy形式の方が簡潔で読みやすいです)



3. 移動 2: 変更する

コマンドの最初の実行では、次のようなものが生成されます。 観察すると、スクリプト内の URL、ヘッダー、Cookie、リクエスト本文、およびその他の情報が、異なる環境の異なるユーザーに応じて変化することが判明したため、パラメーター化が必要です。

「シークレット」スクリプトの 2 回目の置換後は、次のようになります。URL、ヘッダー、Cookie を抽出した後のスクリプトは、非常に簡潔かつ明確になりました。



手動による 3 回目の置換: 入力パラメータをパラメータ化して、毎回実行できるようにします。戻り値フィールドが抽出され、次の結果または他の依存スクリプトに吐き出されます。アサーションは、各インターフェイスのビジネス特性に基づいて的を絞った判断を行います。



4. 移動 3: 確認してください

変更が完了したら、コマンドhrun .\testcases\space\space\createSpaceCardDemo_test.py --html=reports\index.html を実行して、スクリプトが正しいことを確認します。

とてもシンプルな気がしませんか?象を冷蔵庫に詰め込むよりも簡単です。



注: 初期のフレームワークはよく計画する必要があり、変数抽出関数のカプセル化を適切に行う必要があります。また、環境の違い、導入方法の違い、インターフェースプレフィックスの変更などのビジネス特性も考慮する必要があります。これにより、後の自動化スクリプトが簡素化されます。

5. ChatGPT はユースケースを生成します

上記は、Httprunner がインターフェイスの自動化を実装するための基本的なプロセスです。ただし、コア インターフェイスの異常なシナリオをテストする場合は、フロント エンドをクリックすることはできず、記録後にスクリプトが自動的に生成されます。手動で記述すると、テスターの作業負荷が大幅に増加します。現在、chatGPT が登場しています。最初のアイデアは、chatGPT インターフェイスのパラメーターと制約を入力することです。次に、chatGPT にインターフェイスの異常なシナリオのテスト ケースを生成させます。chatGPT を使用して、テスト ケースを必要な自動化スクリプトに変換します。とてもシンプルで簡単です!何か間違っている場合は、chatGPT に修正を依頼してください。

数回の変更を経て、chatGPT によって生成された最終的なユースケースは次のようになります。



6. ChatGPT は Httprunner スクリプトを生成します

次に、生成されたテスト ケースを chatGPT にフィードし、インターフェース自動化スクリプトを自動的に生成させます。まず、ユースケースに基づいて期待を満たすインターフェイス自動化スクリプトを生成するようにトレーニングします。

次に、生成されたすべてのテスト ケースを chatGPT に「フィード」し、すべてのテスト ケースを Httprunner インターフェイス自動化スクリプトに生成させます。コマンド hrun .\testcases\space\Exceptions\createSpaceException_P01_test.py を実行すると、直接成功したことがわかりました。もちろん、現在のアサーションはステータス コード アサーションのみであり、さまざまなシナリオでメッセージ本文に対してアサーションを作成する必要があります。



7. まとめ

上記は、 chatGPT が Httprunner と衝突したときの火花です(公式サイトのリンク)。Httprunner は、インターフェイスのユースケースを作成するのにすでに非常にシンプルであり、chatGPT に出会ってからその機能が大幅に強化されました。記録可能なインターフェイスの場合、わずか 3 つのステップ、数回のクリック、いくつかの変更、および数回の検索でシナリオのユースケースを作成できます。記録できない単一インターフェイスの場合は、chatGPT を使用してユースケースを生成し、chatGPT に自動化スクリプトを自動的に生成させることができます。もちろん、現在のアプリケーションはまだ比較的シンプルなインターフェイスであり、初期段階では子供が歩き方を学ぶようなものかもしれませんが、継続的な探索と学習により、chatGPT は開発が進むにつれてますます習熟できるようになると信じています。たった一つの火花が草原の火災を引き起こす可能性があるからです。

 

著者: JD Technology の Zhang Xinglei

出典:JD Cloud Developer Community 転載の際は出典を明記してください

オープンソース フレームワーク NanUI の作者がスチールの販売に切り替えたため、プロジェクトは中断されました。Apple App Store の無料リストのナンバー 1 はポルノ ソフトウェア TypeScript です。人気が出てきたばかりなのに、なぜ大手はそれを放棄し始めるのでしょうか。 ? TIOBE 10月リスト:Javaが最大の下落、C#がJavaに迫る Rust 1.73.0リリース AIガールフレンドに英国女王暗殺を勧められた男性に懲役9年の判決 Qt 6.6正式リリース ロイター:RISC-Vテクノロジーが中米テクノロジー戦争の鍵となる 新たな戦場 RISC-V: 単一の企業や国に支配されない レノボ、Android PC の発売を計画
{{名前}}
{{名前}}

おすすめ

転載: my.oschina.net/u/4090830/blog/10117347