web-dev-qa-db-ja.com

自動化テストWebサービス

私は中間層チームで働いており、SOAP UIを使用して手動でWebサービスをテストしています。回帰テストケースを自動化するタスクがあります。自動化チームが正しくありません。今、したがって、私は好きなツールを使用する完全な自由を与えられ、どのツールが適切であるかをマネージャーに知らせます。しかし、私はまだ自動化テストを学んでいません。 ?SAPでの結果を使用して結果を検証するサービスが多数あります。たとえば、中間層でアイテムの価格をテストする場合、返された価格がSAPでの価格と一致するかどうかを確認する必要があります。これは手動で行っています。 SAPにログインして、提供されたトランザクションコードに移動し、そのアイテムの価格を確認します。この種の状況を処理できる優れた自動化テストツールを誰かが考えられますか?

13
izna009

私は同様の要求に取り組んでいます。クライアントはすでにsoapUI(OS)を使用して一部のサービスを自動化しているため、私の仕事は少し難しくなります。

OSバージョンには、データ駆動型テストスイートを作成するためのデータソース、データループテスト手順がありませんが、常に回避策があります。

オープンソースバージョンでも、3種類の一般的な自動化フレームワークを実装できます。

  1. アクションドリブンフレームワーク-このフレームワークをsoapUIに適用するには、サービスのセットアップ、実行、検証におけるいくつかの一般的なテストステップを特定する必要があります。識別されたら、テストスイートやテストケースに分けて、適切なテストスイート/テストステップを呼び出すだけです。

    例:サービスによってデータベースに注文エントリが作成されたことを検証するテストステップがあるので、テストスイートとテストケースを作成し、そこにjdbcテストステップを追加して、に基づいて注文IDを検索します。私が提供するデータ。クエリはパラメータ化されます。実際のスクリプトでは、サービスを実行し、dbクエリの実行に必要なすべての値を抽出します。これらの値は、テストテストの実行ステップを使用して再利用可能なテストケースに渡されます。

    覚えておくべきいくつかのことは、テストケース/パラメーターが多数あり、サービスを変更する必要があると思われる場合は、パラメーターをExcelファイルに入れ、テストスイートのセットアップスクリプト領域からgroovyを使用してロードすることです。

    ExcelまたはJxl(もう少し複雑な実装)で動作するにはscriptomapiが必要です

  2. データ駆動型フレームワーク。このフレームワークでは、基本的に、サービスで実行するさまざまなシナリオを特定し、Excelに関連データを入力してから、groovyとscriptomまたはjexcelまたはjxl apiループを使用してExcelのすべての行をループし、サービスを実行しますさまざまなデータ要素を使用します。このアプローチは、必要に応じて複雑にし、必要に応じて単純にすることができます。

  3. キーワード駆動型フレームワーク-これは、多くの計画、開発などを行う必要があるため、実装するのにおそらく最も複雑なフレームワークです。私は現在、そのようなフレームワークを設計しています。機密保持契約が結ばれていなかったら、私はあなたといくつかの詳細を共有したでしょう。

また、あなたはgroovyを初めて使用することも理解しています。soapUIとgroovyのサイトには、非常に優れた例がたくさんあり、クエリに答えるために常にstackoverflowがあることを覚えておいてください。

この努力でどのように解決するか教えてください。

7

大規模なプロジェクトで行ったことは、多くの接続されたレガシーシステム(200以上のサービス)を使用したことです。

  • サービスごとに、サービスの良さ(接続性、機能性など)を反映する適切なアサーションを使用してSoapUIプロジェクトを作成しました
  • Hudson を設定して、サービスのSoapUIプロジェクトのリストを実行します。実行されたすべてのサービスがログに記録されます(要求、応答)
  • ログに記録された応答を分析し、日次レポートを作成するためのantジョブを作成しました(Hudsonでも実行されます)

また、サーバーログのパターンを検索して、非同期サービスにも触れました。 SoupUIプロジェクト作成規則(命名、必要なアサーションなど)を持つためにここで重要だったこと。

2
nzs

Webサービスの回帰テストを自動化する場合は、Soap-UIProを使用できます。 soapuiの自動化は非常に簡単です。私も同じことに取り組んでいます。私はsoapuiを使用してすべてのフライト統合Webサービスを自動化しました。複雑なシナリオでは、Groovyスクリプト言語を使用できます。

ありがとう、ハヌマント

1
Hanumant

同様の状況で行ったこと(品質の問題が繰り返し発生する傾向がある非常に複雑なサードパーティアプリケーションをテストする必要があります):通常のJUnit 4環境を使用していくつかの単体テストを作成しましたが、ローカルをテストする代わりにJavaクラスでは、Webサービス呼び出しを実行し、応答を確認しました。SAPR/ 3バックエンドに対して結果を検証する必要がある場合は、Java Connector( JCo)は http://service.sap.com/connectors から入手できます。欠点は-Javaでテストをコーディングする方法を知っている必要があることは明らかです。

1
vwegert

WebサービスがRESTの場合は、最初にREST Client(Chrome Plugin)export withMaven。Mavenプロジェクトを作成し、プラグインexpを追加します。

<plugin>
    <groupId>com.restlet.client</groupId>
    <artifactId>maven-plugin</artifactId>    
    <version>2.3.0.1</version>
    <executions>
        <execution>
            <phase>test</phase>
            <goals>
                <goal>test</goal>
            </goals>   
            <configuration>
                <file>API_Testing.json</file>
                <selectedEnvironment>Staging</selectedEnvironment>
                <licenseKey/>
            </configuration>
        </execution>
    </executions>
</plugin>
0
Pavan T

テスト自動化大学Applitools によって無料で提供されている「テスト自動化によるサービスAPIの探索」の無料コースを確認できます。また、視覚テストと自動化テストの同様のトピックについて無料で利用できる他のコースもあります。

0
Bill