BMC Remedy IT Service Management のサポート

Silk Performer を用いた BMC Remedy IT Service Management のテストのワークフローは、Web ベースのアプリケーションのテストのワークフローと同じですが、次の例外があります。

BMC チュートリアル

BMC は優れたチュートリアルを作成しました。このチュートリアルは、BMC Remedy Action Request System (AR System) を使用する BMC Remedy IT Service Management (ITSM) アプリケーション テストをロードする方法について説明します。 チュートリアルを入手するには、BMC に問い合わせて次のホワイト ペーパーを請求します。『Performance Benchmarking Kit: Using Incident Management with Silk Performer 』。

ライセンス

Silk Performer を用いて Remedy をテストするには、プレミアム仮想ユーザー ライセンスが必要です。

TrueLog サポート

TrueLog 機能は、Remedy のテストではサポートされていません。

Silk Performer でのデータ表現

Remedy はクライアントからサーバーに送信するデータに独自仕様の形式を使用します。 この形式には length prefix が付いていて、これによってカスタマイズが困難になります。

例:

157/GetTableEntryList/11/smi-web-00126/
SMI:TEL35:SHR:AgentConsole12/Windows_View9/53687098211/
smi-web-00127/SMI:TEL35:SYS:IncomingEmail0/
1/01/02/0/0/2/0/2/0/2/0/

このようなデータは HTTP リクエストに含まれて URL http://<ホスト名>/arsys/BackChannel に送信されます。

Remedy versions 6.3 パッチ レベル 2 以前では、このようなデータは HTTP POST リクエストのボディに含めて送信されます。 Versions 6.3 以降では、このようなデータは HTTP GET リクエストのクエリ文字列に含めて送信されます。

Silk Performer の Remedy アドオンの主な利点は、このデータの独自仕様の形式が、length prefix を削除して、個々のデータ項目に名前を付けた XML ベースの表現に変換されることです。 こうすることでスクリプトが理解しやすくなり、カスタマイズが容易になります。 この XML ベースの形式は、スクリプトの再生時にユーザーが気付かないうちに元の形式に変換されます。

この逆変換は、WebRemedyBackChannelUrl 関数と WebRemedyBackChannelPost により行われます。

WebRemedyBackChannelUrl は、WebPageUrl に代わる関数です。WebRemedyBackChannelPost は、WebPagePost に代わる関数です。

たとえば、Remedy アドオンを使用しない場合、以下の API 呼び出しは次のように記録されます。

WebPagePost("http://213.131.176.85/arsys/BackChannel",
	"157/GetTableEntryList/11/smi-web-00126/
SMI:TEL35:SHR:AgentConsole12/W"
	"indows_View9/53687098211/smi-web-00127/
SMI:TEL35:SYS:IncomingEmail0/1"
	"/01/02/0/0/2/0/2/0/2/0/",
	STRING_COMPLETE,
	"text/plain; charset=UTF-8",
	"arsys/BackChannel");

Remedy アドオンを使用する場合、API 呼び出しは次のように記録されます。

WebRemedyBackChannelPost("http://213.131.176.85/arsys/BackChannel",
"<?xml version='1.0'?>\r\n"
"<SegueRemedyXml 
operation=\"GetTableEntryList\">\r\n"
"  <string name=\"table_server\">smi-web-001</string>\r\n"
"  <string name=\"table_schema\">SMI:TEL35:SHR:AgentConsole</string>\r\n"
"  <string name=\"table_vui_name\">Windows_View</string>\r\n"
"  <long name=\"table_field_id\">536870982</long>\r\n"
      "  <string name=\"server\">smi-web-001</string>\r\n"
"  <string name=\"schema\">SMI:TEL35:SYS:IncomingEmail</string>\r\n"
      "  <string name=\"app_name\"></string>\r\n"
      "  <long name=\"start_row\">0</long>\r\n"
      "  <long name=\"num_rows\">0</long>\r\n"
"  <Array name=\"sort_order\"></Array>\r\n"
      "  <string name=\"qualification\"></string>\r\n"
"  <Array name=\"qual_field_ids\"></Array>\r\n"
      "  <Array name=\"qual_field_values\"></Array>\r\n"
      "  <Array name=\"qual_field_types\"></Array>\r\n"
"</SegueRemedyXml>",
      STRING_COMPLETE,
"text/plain; charset=UTF-8",
      "BackChannel - GetTableEntryList");

主な相違点は、次のとおりです。

  • WebRemedyBackChannelPost の代わりに WebPagePost を使用します。
  • データは、元の形式ではなく XML 形式です。
  • XML 形式には length prefix が含まれていません。含まれている場合は、スクリプトのカスタマイズ時に考慮する必要があります。
  • XML 形式では、各データ項目のデータ型と意味のある名前が指定されています。

その他の Remedy アドオンの利点

データ表現がさまざまであるだけでなく、Remedy アドオンを使用する利点は他にもあります。

  • Remedy.bdh: WebRemedyBackChannelPost 関数、WebRemedyBackChannelUrl 関数、および WebRemedyInit 関数を実装します。
  • レコーダは、WebRemedyInit() 関数への呼び出しを TInit トランザクションに配置します。
  • WebRemedyInit() 関数は、アプリケーションレベルのエラーを捕捉するための検証をインストールします。
  • レコーダは、すべてのタイムスタンプ (スクリプトにハード コードされていることがあります) を検出し、代わりに GetTimeStamp() 関数を記録します。
  • レコーダは新たに作成されたエンティティの ID を解析する関数、および解析された変数を使用するスクリプトでこれらの ID が使用された場合に、そのすべてについて適切な値を記録します。

Remedy SilkEssential

Remedy アプリケーションの種類は、SilkEssential パッケージを介してトリガされます。 これには記録規則および remedy.bdh が含まれます。 remedy.bdh は、WebPageCalls をラップします。

// wrapper function for WebPagePost
// param nDataLength will be ignored
function WebRemedyBackChannelPost(sUrl        : string;
                                  sData       : string;
                                  nDataLength : number optional;
                                  sContent    : string optional;
                                  sTimer      : string optional;
                                  formUrl     : form optional) : boolean <API_FUNCTION>
  begin
    WebRemedyBackChannelPost := WebPagePost(sUrl, RemedyBackChannelData(sData),
    STRING_COMPLETE, sContent, sTimer, formUrl);
  end WebRemedyBackChannelPost;

および

// wrapper function for WebPageUrl for use with BackChannel requests
  function WebRemedyBackChannelUrl(sUrl :    string;
                                   sTimer :  string optional;
formUrl : form optional) : boolean <API_FUNCTION>
  var
sXmlData : string(100000);
sDummy   : string;
begin
WebFormExpand(formUrl, sDummy, 1, true);
WebFormValueGet(formUrl, sXmlData, sizeof(sXmlData), "param");
WebFormValueSet(ARSYS_BACKCHANNEL_INTERNAL_HELPER, "param", RemedyBackChannelData(sXmlData));
WebRemedyBackChannelUrl := WebPageUrl(sUrl, sTimer, ARSYS_BACKCHANNEL_INTERNAL_HELPER);
end WebRemedyBackChannelUrl;
dclform
ARSYS_BACKCHANNEL_INTERNAL_HELPER <ENCODE_URICOMPONENT> :
    "param"                     := "";

プロトコル検出と変換

Remedy プロトコル検出は、デフォルトでは利用できません。 ただし、既に Silk Performer Recorder に組み込まれているので、新規プロジェクトの作成時に適切な Remedy アプリケーションの種類を選択することで有効になります。

Remedy での XML へのデータ変換および XML からの変換は、記録のために ProxyEngine に実装されています。そして Remedy.bdh によって perfRun にロードされる perfRemedy.dll にも実装されています。