loadrunner xmlスクリプトとjsonスクリプト

10044 ワード

今日はシンプルな開発とコミュニケーション
メッセージはxmlとjsonに分かれています
xmlには私が普段録画しているときにパラメータごとに提出したaもあれば、新聞体全体で提出したbもあります.
jsonがカッコで提出したc.
a.xmlパラメータでコミット
b.xmlは文書体で提出する
開発提供メッセージ

<MbfService>
<input1>
<MbfHeader>
<ServiceCode>CloudProviderCardOrderMgmt</ServiceCode>
<Operation>syncCPOrderSummaryInfo</Operation>
<AppCode>OMS</AppCode>
<UId>d24de41c71e744a085f682123f8972999638ddc0e74d4cc5</UId>
<AuthId>OMS;NULL</AuthId>
</MbfHeader>
<MbfBody>
<salesOrderItems>
<salesOrderMain>
<opType>A</opType>
<orderId>123456000001</orderId>
<omsCreateTime>20150509144225</omsCreateTime>
<operatMum>13091704</operatMum>
<orderItemId>12345600000101</orderItemId>
<preOrderItemId/>
<distChannel>10</distChannel>
<saleOrg>1001</saleOrg>
<storeCode>7610</storeCode>
<cmmdtyCode>509990080</cmmdtyCode>
<price>100.00</price>
<saleQty>1.000</saleQty>
<totalAmount>100.00</totalAmount>
<customerName>    </customerName>
<memberCardNo>025051600001</memberCardNo>
</salesOrderMain>
<extendedInformation>
<activeType></activeType>
<arrearageType></arrearageType>
<rebateType></rebateType>
<documenNum></documenNum>
<documenType></documenType>
<soaNum/>
<remark/>
</extendedInformation>
<salesOrderPayItem>
<payCode>1001</payCode>
<payAmount>100.00</payAmount>
<payTime>20150509144225</payTime>
</salesOrderPayItem>
</salesOrderItems>
</MbfBody>
</input1>
</MbfService>

loadrunnerスクリプト
int respCode0;
    lr_start_transaction("OMS Order Information Synchronization"); 

	web_reg_save_param("respCode",
		"LB=<respCode>",
		"RB=</respCode>",
		"NotFound=ERROR",
		"Search=All",
		LAST);

    [color=blue]web_custom_request[/color]("esbHttpService",  
        "URL=http://*.*.*.*:3/ManagementFrontEndWeb/esbHttpService", 
        "Method=POST",  
        "Mode=HTTP",  
      [color=blue]  "EncType=text/xml; charset=GB2312",  
        "Body=<?xml version=\"1.0\" encoding=\"utf-8\"?>"  [/color]
        "<MbfService>[color=red]" [/color]
        "<input1>[color=red]"[/color]
        "<MbfHeader>[color=red]"  [/color]     
        "<ServiceCode>CloudProviderCardOrderMgmt</ServiceCode>"
        "<Operation>syncCPOrderSummaryInfo</Operation>"
        "<AppCode>OMS</AppCode>"
        "<UId>d24de41c71e744a085f682123f8972999638ddc0e74d4cc5</UId>"
        "<AuthId>OMS;NULL</AuthId>"
        "</MbfHeader>" 
        "<MbfBody>"
        "<salesOrderItems>"
        "<salesOrderMain>"
        "<opType>A</opType>"
        "<orderId>123456000001</orderId>"
        "<omsCreateTime>20150509144225</omsCreateTime>"
        "<operatMum>13091704</operatMum>"
        "<orderItemId>12345600000101</orderItemId>"
        "<preOrderItemId/>"
        "<distChannel>10</distChannel>"
        "<saleOrg>1001</saleOrg>"
        "<storeCode>7610</storeCode>"
        "<cmmdtyCode>509990080</cmmdtyCode>"
        "<price>100.00</price>"
        "<saleQty>1.000</saleQty>"
        "<totalAmount>100.00</totalAmount>"
        "<customerName>    </customerName>"
        "<memberCardNo>025051600001</memberCardNo>"
        "</salesOrderMain>"
        "<extendedInformation>"
        "<activeType></activeType>"
        "<arrearageType></arrearageType>"
        "<rebateType></rebateType>"
        "<documenNum></documenNum>"
        "<documenType></documenType>"
        "<soaNum/>"
        "<remark/>"
        "</extendedInformation>"
        "<salesOrderPayItem>"
        "<payCode>1001</payCode>"
        "<payAmount>100.00</payAmount>"
        "<payTime>20150509144225</payTime>"
        [color=red]"[/color]</salesOrderPayItem>"
        [color=red]"[/color]</salesOrderItems>"
        [color=red]"[/color]</MbfBody>"  
        [color=red]"[/color]</input1>"  
        [color=red]"[/color]</MbfService>",
		LAST); 
	 respCode0=strcmp(lr_eval_string("respCode"),lr_eval_string("00"));
	 
	 if(respCode0==0)	
		 { 
       
		 lr_output_message("PASS-----respCode:%s",lr_eval_string("{respCode}"));
		 lr_output_message("PASS-----respCode0:%s",lr_eval_string("respCode0"));
	     lr_end_transaction("OMS Order Information Synchronization",LR_PASS); 
	    }
	   else
      	{
		 lr_output_message("FAIL----respCode:%s",lr_eval_string("{respCode}"));
         lr_end_transaction("OMS Order Information Synchronization",LR_FAIL); 
	   };

         return 0;  

c.フォームで提出し、json形式で使用する
JSONは簡単に言えばjavascriptのオブジェクトと配列です.
JSON(JavaScript Object Notition)は軽量レベルのデータ交換フォーマットで、そのルールは非常に簡単で面白いです.
1)並列データ間をカンマ(",")で区切る.
2)マッピングはコロン(":")で表される.
3)並列データの集合(配列)は括弧("[])で表される.
4)マッピングされた集合(オブジェクト)は括弧("{}")で表される.
このルールに従って、以下のように理解できます.
1.配列は「[]で作成され、オブジェクトは「{}」で作成され、Jsonは基本的に[]または{}で作成された配列またはオブジェクトを使用します.そうしないと、普通の文字列には意味がありません.
2.配列でもオブジェクトでも、間の要素は「,」で区切られます.
3.オブジェクトの内部には、名前と値が「:」で区切られ、「:」で区切らなければならない.属性名または値は単独で存在しない.
4.オブジェクトと配列は互いにネストすることができ、すなわち配列の要素はオブジェクトであっても配列であってもよく、同理オブジェクトの属性の値はオブジェクトであっても配列であってもよい.
例を挙げる

data={"authInfo":{"orderInfo":"account_no=0000000001114011378&total_fee=100","orderType":"01"},"deviceInfo":{"deviceId":"865179020041956","deviceName":"TCLP728M","deviceSysVersion":"19","serialNumber":"SSOBFACQS4GUSSBE","wlanMacAddress":"d8:e5:6d:b6:97:a1"},"platformType":"02","platformInfo":{"appId":"120001","sdkVersion":"2"},"clientKey":"k78Rn23s"}"

jsonフォーマットについて説明します.次に、フォームのコミットについて説明します.
http://sdkspre.*.com/sdkservice/showCashier/showCashier.do?data={"authInfo":{"orderInfo":"account_no=0000000001114011378&total_fee=100","orderType":"01"},"deviceInfo":{"deviceId":"865179020041956","deviceName":"TCLP728M","deviceSysVersion":"19","serialNumber":"SSOBFACQS4GUSSBE","wlanMacAddress":"d8:e5:6d:b6:97:a1"},"platformType":"02","platformInfo":{"appId":"120001","sdkVersion":"2"},"clientKey":"k78Rn23s"}"  	[MsgId: MMSG-26548]

フォームの提出はITEMDATAに入れる必要があります
スクリプトは次のとおりです.
Action()
{   
	lr_start_transaction("show");

	web_reg_find("Fail=NotFound",
		"Search=All",
		"Text=\"success\":true,",
		LAST);

	web_submit_data("showCashier.do", 
		"Action=http://sdkspre.*.com/sdkservice/showCashier/showCashier.do",
		"Method=POST", 
		"TargetFrame=", 
		"RecContentType=text/html", 
		"Referer=", 
		"Snapshot=t3.inf", 
		"Mode=HTML", 
		 ITEMDATA, 
	     "Name=data", "Value={\"authInfo\":{\"orderInfo\":\"account_no=0000000001114011378&total_fee=100\",\"orderType\":\"01\"},\"deviceInfo\":{\"deviceId\":\"865179020041956\",\"deviceName\":\"TCLP728M\",\"deviceSysVersion\":\"19\",\"serialNumber\":\"SSOBFACQS4GUSSBE\",\"wlanMacAddress\":\"d8:e5:6d:b6:97:a1\"},\"platformType\":\"02\",\"platformInfo\":{\"appId\":\"120001\",\"sdkVersion\":\"2\"},\"clientKey\":\"k78Rn23s\"}", ENDITEM, 
		 LAST);

	lr_end_transaction("show", LR_AUTO);

	return 0;
}

補足:
urlアドレスにdataを一緒にコミットし始め、ログにdataしか受信できない最初のパラメータencryptStr:{"authInfo":{"orderInfo":"account_no=0000000111411378
だからitemdataに置いてフォームで提出する必要があります.
getを使って発見してもokではありません.私たちが送ったフィールドには特殊な文字があるので、getでurl encodeが必要であれば伝えられませんが、postシステムで自動的に符号化されるのでpostを選択します.