2015-10-19 48 views
0

我有Perl腳本,它在遠程機器上,我從本地系統調用它(我使用Jmeter的autoshell屬性調用遠程腳本)。在perl腳本中沒有問題。我想實現新功能,而不用改變本地機器中的任何東西,而必須在perl腳本中做一些改變。我只是發佈腳本的一小部分。在perl終止遠程到本地機器(jmeter機器)的信號

if($BALANCE_N == $newWalletBalance){ 
    print "Previous wallet Balance was:$prevWalletBalance New walletBalance is:$newWalletBalance\n"; 
    print "Total cost and sale price respectively: $totalCostPrice and $totalSalePrice\n\n"; 
    return 0; 
} 
else{ 
    print "Error: Wallet Balance in CDR and DB is not matching\n"; 
    return 1; 
} 

如果「if語句是成功的,它應該繼續在腳本讓它通過」,如果它進入了其他部分,那麼我的劇本應該返回一些終止樣的信號,以本地機器上應標註腳本失敗了。我已經嘗試過使用return和exit語句,但它並沒有那麼有用,Perl中的任何其他方式都可以實現我的功能。

+0

'沒那麼有用嗎?'在代碼轉到'else'塊的情況下,輸出到底是什麼? –

+0

它應該發送終止信號到jmeter autoshell in else blcok –

+0

一旦退出腳本,shell是不會自動終止的?那麼它可能足以返回一個非零的退出值(通過傳遞給'exit')。 – reinierpost

回答

0

我通常使用這樣的:

} else { 
    print "Error: Wallet Balance in CDR and DB is not matching\n"; 
    exit(1); 
} 
0
  1. 您可以通過UDP發送Shutdown消息給主機,其中JMeter是在端口4445.不知道如何正確地做它用Perl運行,你可以看到ShutdownClient.java對於Java實現
  2. 如果你調用通過JMeter的OS Process sampler你的腳本,它已經「檢查返回代碼」選項
  3. 如果JMeter的可以讀取STDOUT和/或STDERR您可以使用Response Assertion檢查得離譜點輸出。 JMeter還提供了多個assertion types,它們可以非常靈活地設置合格/不合格標準。
+0

嗨德米特里..感謝您的答覆..它是非常有用......就像你說的,我認爲我們不通過OS過程取樣調用腳本,還你的第三個點是有效的我在想,我這樣做基於返回1,並從我的Perl腳本返回0,但在迴應斷言,我將比較返回值,並與誰 –

+0

Perl腳本還有一件事是在遠程機器,我打電話給它從本地機器上,我使用jmeter的autoshell命令調用腳本,我的觀點是Jmeter對perl腳本沒有控制權,如果它返回成功或失敗,jmeter將忽略結果並繼續執行其他執行。 –

+0

什麼是JMeter的「autoshell」命令?我看不出在文檔中有關它什麼/源 –

相關問題