Eggplant Functionalでメールサーバーを設定する
Eggplant Functionalは、テスト結果の通知としてメールを送信することができます。メール通知により、関係者はテストの実行結果を素早く把握し、必要に応じて対応することができます。Eggplant Functionalでは、SendMailコマンドを使用してメールを送信するため、これらのメール通知はスクリプトレベルで制御されます。
SMTP設定の設定
組織が提供するSMTPサーバーまたは第三者(Gmailなど)が提供するSMTPサーバーのアカウントが必要です。SMTPサーバーの管理者に相談すると、特定のSMTPサーバーに関連する設定についてよく理解することができます。SMTPサーバーの詳細が不明な場合は、設定の異なる組み 合わせを試行錯誤する必要があります。
EggplantはSMTPサーバーを提供していません。
Eggplant Functionalは、提供されたSMTPサーバーのプロパティを取得し、それらの設定を使用してメールを送信しようとします。また、それらのプロパティを使用してメールを送信できない場合はエラーを表示します。WindowsでのEggplant Functionalのエラーは一般的で、提供されたSMTPプロパティを使用してメールを送信できないことを示しています。Mac OSでは、エラーの性質についての追加情報をConsoleで確認することができます。
スクリプトレベルまたはアプリケーションレベルのどちらでSMTPメールサーバーのプロパティを指定することも可能です。
Eggplant Manager、Jenkins、HP ALMなどを介してコマンドラインで実行されるEggplant FunctionalスクリプトでSendMailを使用する場合、通常は必要なメールサーバーのプロパティをすべてSendMailコマンドとともにインラインで提供する必要があります。これは、Eggplant Functionalのインスタン スが通常、アプリケーションレベルの設定にアクセスできないユーザーとして実行されているためです。スクリプトレベルの設定はsmtp_host、smtp_type、smtp_user、smtp_password、smtp_portのプロパティとそれに関連する値をSendMailコマンドの一部として含めることで達成されます。
アプリケーションレベルのSMTPプロパティが正しいかを素早くテストするためには、SMTPメールサーバーに必要なプロパティを含む簡単なSendMailコマンドを作成し、Eggplant Functionalでコマンドを実行します。Eggplant Functionalがメールが送信されたと報告し、テストメールを受け取った場合、設定は正しいです。
例:
sendMail (To:"tester@testing.com", from:"tester@testing.com", smtp_host:"<smtp mail server IP or hostname>",smtp_type:"login", smtp_user:"tester", smtp_password:"123456", smtp_port:"465" ,Subject:"test email")
Eggplant Functionalから送信されるすべてのメールに同じSMTPサーバーを一貫して使用し、スクリプトをEggplant Functional GUIを通じてのみ実行する予定であれば、コードを簡略化するために、アプリケーションレベルでSMTPサーバー情報を設定することができます。
全体のEggplant Functional PreferencesのSMTPサーバー設定を設定するには、Eggplant > Preferences > Accountsに移動します。SMTP Server ID
、Transport type
、Port number
、およびAuthentication type
を提供します。ほとんどのSMTPサーバーはユーザー名とパスワードを必要としますが、すべてではありません。そのため、該当する場合はこれらの詳細を提供します。
例:
sendMail (To:"test@gmail.com", Subject:"Test email worked!")
以下は、Eggplant Functionalの設定内でGmailを正しく設定する例です。
メール通知の設定
Eggplant Functionalからのメール通知はSendMailコマンドによって制御されますので、スクリプト実行中にメール通知をいつ送るか選択することができます。例えば、スクリプトが失敗したときや、特定のUI要素がテスト対象のシステムに表示されたときだけがメール通知の対象になるかもしれません。また、Eggplant Functional Suiteの設定パネルを使って、すべての実行後にSendMailコマンドを実行するよう設定することもできます。
SendMailコマンド
は、Eggplant Functionalのログファイルやスクリーンショットなどのファイルをメールに添付することができます。
以下は、SenseTalkの例で、スクリプトの実行が終了するたびにメールを送り、実行結果に応じて適切な添付ファイルとタイトルを設定します。
例:
set TestList to ("script1","script2","script3") -- 実行したいスクリプトのリストを作成し、それらを実行したい順序で並べます。
//リスト内の各スクリプトに対してこのプロセスを繰り返します
repeat with each item TestScript of TestList
RunWithNewResults TestScript -- テストの各スクリプトを実行し、それぞれに新しい結果セットを作成します。
put the result into Outcome -- スクリプト実行の結果を取得し、変数に保存します。
put TestScript & the long date into title -- メールのタイトルを作成します。
put Outcome's logfile into screenError -- ログファイルのファイルパスを保存します。
replace "logfile.txt" with "screen_error.tiff" in screenError -- スクリーンエラーがある場合、そのファイルパスを保存します。
// スクリプトが失敗したかどうかに基づいてメールを送るための条件文を使用します
if Outcome's status is "failure"
then
SendMail(To: "someone@somecompany.com",\
subject:title,\
body:"the test script generated an error.",\
attachment:(screenError, Outcome's Logfile)) -- 添付ファイルを指定します。注意: スクリーンエラーが添付できない場合 // send an email with the log file attached
else
// ログファイルを添付したメールを送信する
SendMail(to: "firstname.lastname@somecompany.com",\
subject: title,\
body: "the test script ran successfully.",\
attachment: Outcome's logfile)
end if
end repeat
トラブルシューティングと特別な考慮事項
Eggplant Functionalはあなたのメールサーバと通信できる必要があります。しかし、すべてのメールサーバがSMTPクライアントと通信できるわけではなく、また、SMTPクライアントとメールサーバとの間の通信をブロックするように設定されているネットワークもあります。
各メールサーバとネットワークの設定は異なるため、自分のメールサーバと通信するために必要なSMTPメールサーバのプロパティについて不確かな場合は、IT部門やシステム管理者に相談してください。
例えば、Microsoft Exchangeメールサーバを使用している場合、メールサーバはSMTPに設定されている必要があり、これはデフォルトでは無効になっています。また、GmailのSMTPメールサーバを使用している場合は、2ステップ認証を_無 効_にし、安全性の低いアプリによるアクセスを許可する必要があります。