ソケットスクリプト書き込み方法のLR 2(ファイルのパケットから読み取ります)

 

  以前は、スクリプト契約書ソケットのLoadRunner共有する基本的な方法とルールをローカルファイルから、内容を読み取る方法を共有するために、今日の下、およびサーバーに送信されたメッセージとして、この方法は、また、仕事で出会います1つの難易度は、このように、いくつかのパラメータ化取引メッセージは、繰り返して別のファイルを読み込んだと思う、それは、トランザクションの異なるメッセージを送ることができます。

1. int型のデフォルトと同じで終わり、説明されていません。

2.アクションスクリプトの書き込み

#include「lrs.h」


アクション()
{ 

        int型RC、RV; //接続を保存成功した戻り値で
	、受信したデータの内容を保存//; * recvBuf文字
	recvLenをint型; //受信データサイズセーブ


    int型のカウント数を、合計= 0 ; 
    CHARバッファ[1000]; 
    ロングfile_streamは、
    CHAR *ファイル名= "E:/LR_date/ZHQZ/LR_scripts/baowen.txt"; 
    IF {((=でのfopen(ファイル名、 "RB"))== NULL file_stream)
        (lr_error_messageを"開かない%のSができます"、filename)は、
        -1を返す; 
    } 
    //ファイルANの終了を読むまで、
    しばらく(!FEOF(file_streamを)){ 
        // COUNTを実行している間の保守読む1000バイト
        COUNT =のfread(バッファ、はsizeofを(文字)、1000年、file_stream)。
        lr_output_message( "%dバイトを読み込み"、カウント); 
// lr_output_message( "读取文件的バッファ内容:\ n%sの"バッファ)。
        もし(ferror関数(file_stream)){/ *ファイルI / Oエラーをチェック* / 
            lr_output_message( "読み取りエラーファイル%s"、ファイル名); 
            ブレーク; 
        } 
        合計+ =数えます。//実際のバイトが読み出されアップ追加
    } 
    //は最終総表示
    lr_output_message(合計「=%dを読み取られたバイトの総数」)。
    //ファイルストリームを閉じます
    (fcloseを(file_stream))場合
		lr_error_message( "エラー閉鎖ファイル%s"、ファイル名); 


//のmemcpy(バッファ+ 271、lr_eval_string( "<CUSTID>")、8)。

	lrs_save_param_ex( "socket0"、 "ユーザ"、バッファ、0、strlenを(バッファ)、NULL、 "

	lrs_create_socket = RC( "SOCKET0"、 "TCP"、 "RemoteHostプロパティ= 188.177.155.233:7700"、LrsLastArg); 


	lr_start_transaction( "テスト"); //トランザクションを開始

	//ソケットがデータのリクエストメッセージ(パケットの内容を送信します。 WSで)
	lrs_send "BUF1の"( "sOCKET0"、LrsLastArg); //はフェッチバッファBUF0とパケット送信


	RV = lrs_receive( "socket0"、 "BUF2"、LrsLastArgを); //は、 応答パケットを受信


	//最後のバッファとサイズの受信取得し
	、lrs_get_last_received_buffer(「SOCKET0」、&recvbuf、&recvLenを)


	判断、戻りデータが成功したかどうかを確認するために、/ *チェックポイントを設定し、* /それぞれの取引状況に応じ

	た場合(recvLen> 3。)
	{ 
		lr_end_transactionを( "試験"、PASS); 
	} 
	{ 
		lr_end_transaction( "試験"、FAIL);  
		lr_error_message( "テストが失敗したエラーメッセージ:! [%のS]"、recvbuf); 
	}

	lrs_free_buffer(recvbuf)。//リークし、それ以外の場合はメモリにつながる、recvBufメモリ空間を解放


	lrs_close_socket(「SOCKET0を」); 

	
    0を返します; 
}

  上部は、ファイルの内容を読み取るために、特定のパスでスクリプトから指定されます。一部の人々は私がファイルにしたい場合は、フィールドを行う方法をパラメータ化することを言う。その後、我々はそのような例の場合と同様に、この関数のmemcpyをパラメータ化すること使用することができます(memcpyを(バッファ+ 271、lr_eval_string「<CUSTID>」)、 8); //これは、279から272のリードパケットCUSTIDプール、パラメータの8バイトの合計を呼び出すことによって、パラメトリック値です。

書かれた3 data.ws

; WSRData 2 1つの

送信BUF1 683 
"<paraBuf>" 

RECVのBUF2 350 
"" 
-1

   ここで、アクションのパケットには、取得されたparaBuf lrs_save_param_exパラメータに相関関数によって保存され、この場合、我々は直接パラメータ名の上に呼び出すことができます。

 

エンディング...

 

  

 

おすすめ

転載: www.cnblogs.com/zwh-Seeking/p/11119148.html