ジャワ+ HttpClientを+自動テストフレームワークTestNGの(V)------テスト機能インタフェースの実装クラスとクラスに基づいて、インターフェイス

  まず一つは、我々は、治療パラメータに焦点を当てています。

  しかし、これらのパラメータは、基本的に直接割り当てます。必要に応じて、実際のインタフェースのテストは、我々はこれらの試験データは、さまざまな状況に応じて使用される、テストデータの多くを行います。例えば、私はランダムに生成された中国の文字列、またはすばやくファイルまたはMD5の文字列の値を見つけることができるようにする必要性を必要とする場合があります。この場合、我々は、呼び出しを行うためにいくつかの関数を書くために手を必要としています。

  それはテストケースでExcelで記述された(または別のテキストエディタ)された場合は、どのように、私は、着信を修正するプログラムは、私は関数を呼び出すことができたことを知らせることができ、そしてこの関数は、変数に値を返すことができます場所?ここでは、特定の実装を見てみましょう。

       まず、私たちは、この関数ではなく、文字列であることを認識するためのプログラムを取得する方法をどのように決定する必要があります。ここでは、困難です。

  それは関数、問題のパラメータであるので、何があってもよい、複数あってもよい、引数が存在しない場合があります。したがって、私たちはここにいる不確実なパラメータに対処することです。(もちろん、パラメータの数の具体的な機能は、我々が定義することができます)

  同様の形式$ {PARAM_NAME}を使用する前に、我々は、このプログラムの機能を行うことが決定された相似形の__funcName(引数)の代わりに関数を使用します。

  レッツ・デザイン関数のプロトタイプは、あなたは私たちがインタフェースを送信するときに使用する関数を参照するために使用するインタフェースクラスを、使用することができます。機能については、ここで我々は、それは2つの部分である必要がある、一つは、特定の機能を実行するために、関数の名前です。

      コードの側のセクションを参照してください。

パブリック インターフェースfunctionInterface { 
    文字列(文字列[]引数)を実行します。

    ストリングgetReferenceKey()。
}

  クラスは2つのメソッドを有するインターフェースここで、実行は、関数の名前を取得し、文字列を返します。実行の私達の方法のパラメータを定義するためにここで、それが理解され、文字列[] argsを、不確実なパラメータです。

機能の私たちの最初のクラスを達成するために、このインターフェイスに基づいて、我々クラス(取得日付関数日付)の下に

インポート; java.text.SimpleDateFormatの
 インポートjava.util.Date;
 インポートutils.stringUtilと、

パブリック クラス dateFunctions   実装しfunctionInterface {
     // 実行のオーバーライドメソッド
    @Override
     パブリック文字列実行(文字列[]引数){
         // パラメータなしの場合、 Unixタイムスタンプ(ミリ秒単位の時間)、そうでない場合は、現在のシステム時刻を返します。
        IF(args.length stringUtil.isEmpty == 0 ||(引数[0 ])){
             戻り String.Formatの( "%のS"、新たな新規A日付()getTime()); 
        } {
             // 現在の時刻が返さ。これは、カスタムフォーマット、最初の書かれた「YYYY-MM-DD」することができ、必要に応じて変更することができる
            リターンgetCurrentDate( "YYYY-MM-DD" ); 
        } 
    } 

    プライベート文字getCurrentDate(文字列パターン){ 
        てSimpleDateFormat形式 = 新しいてSimpleDateFormat(パターン)。
        文字列str = format.format(新しい日付());
        リターンSTR。
    } 
    
    // 定义该函数的名字为「日付」
    @Override
     パブリックストリングgetReferenceKey(){
         // TODO自動生成方法スタブ
        リターン "日付" 
    } 
}

ここでは、実行、名前のメソッドをカスタマイズしました。また、独自のニーズに応じて変更することができ、コンテンツ実行方法。以下のフォームを使用して:

  • __date(PARAM1):この機能を実行するときにフォーマットされた文字列を生成します。PARAM1フォーマット変換は、デフォルトでは "YYYY-MM-DD" です。もちろん、我々はまた、そのようなので、上の "YYYY-MM-DD-HH-MM-SS" となどの他の形式を指定することができます。要するに、あなたは関数の引数で必要なデータを取得することができます。

この考え方によると、私たちは、頻繁に使用する機能の一部を書くことができます。

第二の機能(要求文書のMD5値)

 注:インポートする必要のapache-コモンズは、コーデックプロジェクトにjarファイルをパッケージ化

インポートはjava.io.File;
 インポートjava.io.FileInputStream;
 インポートjava.io.FileNotFoundException;
 インポートにjava.io.IOException;
 インポートのjava.net.URL; 

インポートorg.apache.commons.codec.digest.DigestUtils; 

パブリック クラス md5Functions 実装functionInterface {
     // 実行のオーバーライドメソッド
    @Override
     パブリック実行文字列(文字列[]引数){
         試み{ 
            文字列filePathに =引数[0 ]; 
       ファイルパスがHTTPである場合、リンクとして扱われ、//始めます。
IF(filePath.startsWith( "HTTP")){ リターン DigestUtils.md5Hex(新しいURL(filePathに).openStream()); } { リターン DigestUtils.md5Hex(新規のFileInputStream(新しいファイル( filePathに)))。 } } キャッチ(例外e){ // TODO自動生成されたcatchブロック e.printStackTrace(); } 戻り ヌル } @Override パブリックストリングgetReferenceKey(){ //TODO自動生成されたメソッドのスタブ リターン「MD5」; } }

ここでは、関数は、MD5は、パラメータを入力するには、この機能の必要性、ファイルへのパスを呼ば完了しました。もちろん、私たちは少しを変更することができ、それの関数MD5値は、それはまた、非常に簡単です、書かれた文字列を取ることです。

文字列md5_value = DigestUtils.md5Hex(target_str)。

これは缶の中核です。

  フォームまたは前と同じように使用します。

  • __MD5(PARAM1):ここでのparam1が文字列のパスで、パスができるHTTP、それはまた、ファイルへのパスを指定できます。

  関数値がMD5ファイルとパスを注文することができるように、あなたもmd5の文字列を評価することができます修正コード:ここでは、小さな問題を残します。  

  上記の考え方に基づいて、我々はまた、インタフェースは、テストを容易にするときに呼び出さいくつかの最小値と最大値、合計直交ので、一般的に使用されるツールの機能を行うことができます。ここでは、自分の小さなパートナーの拡大に興味を持ってください、開始されません。

 

おすすめ

転載: www.cnblogs.com/generalli2019/p/12202513.html