テストの自動化は、アプリケーションを自動化するだけではありません。 私は、テスト結果をプログラムでチームと共有することさえ、テスト自動化の一部であると言うでしょう。 だから、チームは結果を得るために個人に依存しません。 チームはまた、遅滞なくテスト結果に基づいてさらなる行動を取ることができます。
この記事では、Slackでテスト結果をどのように共有できるかを見ていきます。 また、Jenkins/CIツールで自動テストスイートの実行をどのようにトリガーすることができますか。
Slack
組織内でSlackを使用しています。 また、組織内のチームメンバー間で情報を伝達するためにSlackを使用している場合もあります。 Slackは素晴らしいツールであり、誰もが最新の状態に保ち、不要なメールを削減します。
Slackは、どのような仕事をしても、仕事のためのコラボレーションハブです。 それは会話が起こり、意思決定が行われ、情報が常にあなたの指先にある場所です。 Slackを使用すると、チームとのつながりがより良くなります。
このアプリはon-offで使用できます。サイト
Slack-Jenkins CIアプリ-統合
私たちのほとんどは、継続的な自動テストにJenkinsを使用していると思います。 この記事では、JenkinsとSlackを統合するための手順を説明しました。 TeamCity、Bambooなどの他のツールを使用する場合、プロセスはほぼ同じです。
:
- に移動しますhttps://slack.com
- ‘Jenkins’アプリを参照します
- slackにJenkins CIアプリをインストールします
- “設定の追加”をクリックします’
- チームドメインとトークン
- をメモして、結果を表示するチャネルを選択します
Jenkins
- Jenkinsの管理->プラグインの管理->利用可能なタブ
- Slackのインストールに移動します 通知プラグイン
- Slackドメインとトークンの更新=>Jenkinsの管理->システムの設定->グローバルSlack Notifier設定
- Jenkinsには「成功」メッセージが表示され、slackチャンネルには以下のメッセージが表示されます。
Jenkins-Test Job
- Test用のJenkinsジョブを作成します
- ここに示すようにビルド後のアクションを更新します-必要なカスタムメッセージで
Jenkins PipeLine
プラグインへの呼び出しを追加する必要があります
slackSend color: 'good', message: 'Message from Jenkins Pipeline'
次に、メッセージの正しい色と情報テキストを決定する必要があります:
def notifySlack(String buildStatus = 'STARTED') {
// Build status of null means success.
buildStatus = buildStatus ?: 'SUCCESS'
def color
if (buildStatus == 'STARTED') {
color = '#D4DADF'
} else if (buildStatus == 'SUCCESS') {
color = '#BDFFC3'
} else if (buildStatus == 'UNSTABLE') {
color = '#FFFE89'
} else {
color = '#FF9FA1'
}
def msg = "${buildStatus}: `${env.JOB_NAME}` #${env.BUILD_NUMBER}:\n${env.BUILD_URL}"
slackSend(color: color, message: msg)
}
node {
try {
notifySlack()
sh 'runbuild'
} catch (e) {
currentBuild.result = 'FAILURE'
throw e
} finally {
notifySlack(currentBuild.result)
}
}
概要
継続的なテストプロセスの一環として、Jenkinsを使用して自動化されたスクリプトを定期的に実行します。 あなただけが、テストエンジニアとして、主に結果を知っています。 他のチームメンバーは、テスト結果を認識していない可能性があります。 自動化されたツールを使用して、自動化されたスクリプトを作成し、Slack APIを使用して結果をプログラムで共有することができます。
新しいユーザーの作成
slackが使用できるように、Jenkinsで新しいユーザーを作成することから始めましょう。 APIトークンをメモします。
このslackユーザーがジョブをトリガーするのに十分なアクセス権を持っていることを前提としています。
以下のCURLコマンドを実行して、ユーザーがジョブを呼び出すことができるかどうかを確認します。
これはURLの形式です。 内のコンテンツを適切な情報に置き換えます。
curl -X POST http://@/job//build
私の場合は、ここに示すようにしてみました。
curl -X POST http://slack:[email protected]:8080/job/TEST_SMOCK_SLACK_JOB_DEMO/build
Slack—Slashコマンド
上記のJenkinsジョブを呼び出すには、Slackのslashコマンドを使用します。 したがって、スラッシュの後に何かを入力するたびに—例えば:’/smoketests’—Slackはそれをコマンドとして扱い、コマンドに応答することができます。 そのため、この例では、都市の天気予報を提供するようにSlackを設定できます。
上記のJenkinsジョブを呼び出すには、Slackのslashコマンドを使用します。 したがって、スラッシュの後に何かを入力するたびに—例えば:’/smoketests’—Slackはそれをコマンドとして扱い、コマンドに応答することができます。 そのため、この例では、都市の天気予報を提供するようにSlackを設定できます。
- Slack設定に移動して、Slash設定を追加します。Smoke testコマンドを作成します—私のチームはslackからsmoke testをトリガーしてアプリケーションの健全性を確認できます。
- ここに示すように統合設定を追加します。 Jenkinsジョブをトリガーするために呼び出す必要があるURLを提供します。
- オートコンプリートのヘルプを選択します
- 設定が完了したら、Slackですぐに確認できます。 ‘/S’と入力するだけで、’smoketest’コマンドが表示されます
- コマンドを呼び出します—Jenkinsがジョブをトリガーできるかどうかを確認します。
- ジョブにパラメーターが必要な場合は、以下のURL形式を使用して、既定のパラメーターを使用してジョブを起動します。
curl -X POST http://@/job//buildWithParameters
- 特定のパラメータを渡す必要がある場合は、パラメータに変数と値を追加するだけです。
curl -X POST http://@/job//buildWithParameters?ENVIRONMENT=UAT
- ジョブのステータス/結果を取得するには、結果をSlackにポストバックするようにジョブを設定する必要があります。 あなたはここでそれに関する記事をチェックすることができます。
注
- 上記のアプローチを機能させるには、JenkinsサーバーにSlackからアクセスできるようにする必要があります。 ファイアウォールによってブロックされていないことを確認します。
概要
Slackコマンドは非常に便利で、情報を取得したり、頻繁に行う可能性のある何かをトリガーしたりするのに便利です。 これにより、チーム内の技術者以外のユーザーは、slashコマンドを直接呼び出すことによって、自動テストスクリプトを使用できます。