2014-04-01 51 views
0

我對Jmeter完全陌生。Jmeter發送電子郵件狀態更新

在我的公司,我們使用Jmeter來分析我們的應用程序的性能。 Jmeter必須連續運行,一些SLA依賴於Jmeter。

有些時候,由於Jmeter停止運行。我們不能有一個監測這個任務。我正在尋找一個選項,Jmeter將根據當前狀態每1小時發送一次電子郵件更新。不過,我無法找到任何細節。如果有人詳細分析這是否可能,那將是非常好的。

感謝

回答

1

最簡單的方法是使用JMeter的SMTP Sampler在單獨的線程組如果你需要運行的線程,運行時間更多的控制權,並附加額外的信息,需要更多的將觸發每隔一小時或通過Constant Timer

然而控制您的郵件,您可以使用Beanshell

參考BeanShell的代碼來發送電子郵件:

import javax.mail.Message; 
import javax.mail.Session; 
import javax.mail.Transport; 
import javax.mail.internet.InternetAddress; 
import javax.mail.internet.MimeMessage; 
import java.util.Date; 
import java.util.List; 
import java.util.Properties; 

Properties mailprops = new Properties(); 
mailprops.put("mail.smtp.host", props.get("mail.host")); 
mailprops.put("mail.smtp.auth", "true"); 
MailAuthenticator mailauth = new MailAuthenticator(props.get("mail.username"), props.get("mail.password")); 
mailprops.put("mail.smtp.sumbitter", mailauth.getPasswordAuthentication()); 
Session session = Session.getDefaultInstance(mailprops, mailauth); 
Message message = new MimeMessage(session); 
InternetAddress from = new InternetAddress(props.get("mail.username")); 
message.setFrom(from); 
for (String recipient : props.get("email").split(",")) { 
    InternetAddress to = new InternetAddress(recipient); 
    message.addRecipient(Message.RecipientType.TO, to); 
} 

message.setSubject("Any reasonable subject for " + new Date()); 
message.setHeader("Content-Type", "text/plain; charset=UTF-8"); 
StringBuilder sb = new StringBuilder(); 
sb.append("Anything you would like to include in your email"); 
message.setContent(sb.toString(), "text/plain; charset=UTF-8"); 
Transport.send(message); 

這兩種方法都假設外部SMTP服務器存在和配置(您可以使用任何公開的一種)

+0

嗨,我試圖用你的代碼並且出現錯誤: 響應代碼:500 響應消息:org.apache.jorphan.util.JMeterException:調用bsh方法時出錯:eval \t源文件:內嵌評估:import javax.mail.Message; import javax.mail.Session;導入javax.mail.Transpor。 。 。 '':方法調用mailprops.put 任何想法?在任何地方找不到合適的答案。 – user2880391

+0

爲什麼不使用[SMTP Sampler](http://jmeter.apache.org/usermanual/component_reference.html#SMTP_Sampler)? Beanshell代碼作爲熟悉Beanshell和/或Java的人員的參考。請參閱[負載測試您的電子郵件服務器:如何使用JMeter發送和接收電子郵件](https://blazemeter.com/blog/load-testing-your-email-server-how-send-and-receive-e-郵件-Jmeter)指南的詳細說明 –

+0

嗨,我正在嘗試做一些我不能用取樣器做的事情。我創建了一個變量,用於說明測試是成功還是失敗,並且只有在失敗時纔將電子郵件發送給特定的收件人。順便說一句 - 我使用BeanShell取樣器。 – user2880391