Opsgenie を Ghost Inspector と統合する
Opsgenie が Ghost Inspector ユーザーに提供するもの
Ghost Inspector は、テストの実行時に Webhook 通知を送信します。Opsgenie の Ghost Inspector インテグレーションによって、Opsgenie はこれらのアラートのディスパッチャーとして機能し、オンコール スケジュールに基づいて通知する適切な担当者を決定します。メール、テキスト メッセージ (SMS)、電話、iPhone、Android のプッシュ通知によって通知して、アラートが確認されるかクローズされるまでアラートをエスカレートします。
さらに、Opsgenie はテストからアラートにスクリーンショット画像を添付します。また、アラートには画像へのリンクが表示されます。
統合の機能性
Ghost Inspector でテストが失敗すると、統合によって Opsgenie でアラートが自動で作成されます。
Opsgenie で Ghost Inspector インテグレーションを追加する
Opsgenie の Free プランまたは Essentials プランを使用している、または Jira Service Management の Standard プランで Opsgenie を使用している場合は、チーム ダッシュボードからのみこの統合を追加できます。 このプランでは、[設定] の [統合] ページが利用できません。
[チーム] に移動して自分のチームを選択します。
左側のナビゲーションで [統合] を選択し、[統合を追加] を選択します。
統合をチーム ダッシュボードから追加すると、そのチーム統合の所有者になります。Opsgenie では、この統合を通じて受信したアラートはそのチームのみに割り当てられます。このセクションの残りの手順に従って、統合を設定してください。
Go to Settings > Integrations. Search for Ghost Inspector and select Add.
Specify who is notified of Ghost Inspector alerts using the Responders field. Auto-complete suggestions are provided as you type.
統合 URL をコピーします。 URL には、Opsgenie のエンドポイントと API キーが含まれます。
[Save Integration (統合の保存)] を選択します。
Ghost Inspector での設定
In Ghost Inspector App, create a new test suite and define new test in it, if not already created.
テストの設定に進みます。
設定ページの下部にある [Webhook 設定] を見つけます。
前にコピーした URL を [Webhook URL を追加] フィールドに貼り付けて、+ アイコンをクリックします。
[保存] をクリックします。
Ghost Inspector から Opsgenie Close に送信されたペイロードの例
JSON
{
"type": "result",
"data": {
"__v": 0,
"executionTime": 21641,
"dateExecutionFinished": "2014-12-26T12:44:16.238Z",
"endUrl": "https://www.opsgenie.com/alert/create",
"dateExecutionStarted": "2014-12-26T12:43:54.597Z",
"startUrl": "https://www.opsgenie.com/auth/login",
"test": {
"_id": "549d11f534fd04ab414f1bd7",
"name": "Create Alert",
"suite": "549d10e134fd04ab414f1bd6",
"organization": "549c158c8eebf29b7976b7b8"
},
"screenshotCompare": {
"compareSmall": {
"depth": 8,
"format": "PNG",
"oname": "549d580a52a9666f152ffb33-compare.png",
"mtime": "2014-12-26T12:44:18.000Z",
"ctime": "2014-12-26T12:44:18.000Z",
"size": 27425,
"path": "/screenshots/549d580a52a9666f152ffb33-compareSmall.png",
"defaultUrl": "https://ghostinspector.s3.amazonaws.com/screenshots/549d580a52a9666f152ffb33-compareSmall.png",
"dims": {
"w": 320,
"h": 240
}
},
"compareOriginal": {
"depth": 8,
"format": "PNG",
"oname": "549d580a52a9666f152ffb33-compare.png",
"mtime": "2014-12-26T12:44:18.000Z",
"ctime": "2014-12-26T12:44:18.000Z",
"size": 41948,
"path": "/screenshots/549d580a52a9666f152ffb33-compareOriginal.png",
"defaultUrl": "${url}?",
"dims": {
"w": 1024,
"h": 768
}
}
},
"screenshot": {
"small": {
"depth": 8,
"format": "PNG",
"oname": "549d580a52a9666f152ffb33.png",
"mtime": "2014-12-26T12:44:17.000Z",
"ctime": "2014-12-26T12:44:17.000Z",
"size": 11532,
"path": "/screenshots/549d580a52a9666f152ffb33-small.png",
"defaultUrl": "https://ghostinspector.s3.amazonaws.com/screenshots/549d580a52a9666f152ffb33-small.png",
"dims": {
"w": 320,
"h": 240
}
},
"original": {
"depth": 8,
"format": "PNG",
"oname": "549d580a52a9666f152ffb33.png",
"mtime": "2014-12-26T12:44:16.000Z",
"ctime": "2014-12-26T12:44:16.000Z",
"size": 34474,
"path": "/screenshots/549d580a52a9666f152ffb33-original.png",
"defaultUrl": "${url}",
"dims": {
"w": 1024,
"h": 768
}
}
},
"_id": "549d580a52a9666f152ffb33",
"video": {
"path": "/videos/549d580a52a9666f152ffb33.mp4",
"url": "https://ghostinspector.s3.amazonaws.com/videos/549d580a52a9666f152ffb33.mp4",
"dims": {
"w": 1024,
"h": 768
}
},
"screenshotCompareDifference": 0.118959,
"screenshotComparePassing": false,
"passing": false,
"console": [],
"urls": [
"https://www.opsgenie.com/auth/login",
"https://www.opsgenie.com/auth/signIn",
"https://www.opsgenie.com/customer/welcome",
"https://www.opsgenie.com/alert/index",
"https://www.opsgenie.com/alert/create"
],
"steps": [
{
"target": "#login",
"command": "click",
"value": "",
"url": "https://www.opsgenie.com/auth/login",
"dateExecuted": "2014-12-26T12:43:56.719Z",
"_id": "549d580c52a9666f152ffb34",
"passing": true,
"optional": false,
"private": false,
"sequence": 0
},
{
"target": "#login",
"command": "assign",
"value": "abc@gmail.com",
"url": "https://www.opsgenie.com/auth/login",
"dateExecuted": "2014-12-26T12:43:57.897Z",
"_id": "549d580d52a9666f152ffb35",
"passing": true,
"optional": false,
"private": false,
"sequence": 1
},
{
"target": "#password",
"command": "assign",
"value": "123",
"url": "https://www.opsgenie.com/auth/login",
"dateExecuted": "2014-12-26T12:43:58.518Z",
"_id": "549d580e52a9666f152ffb36",
"passing": true,
"optional": false,
"private": true,
"sequence": 2
},
{
"target": "#password",
"command": "keypress",
"value": "13",
"url": "https://www.opsgenie.com/auth/login",
"dateExecuted": "2014-12-26T12:43:59.098Z",
"_id": "549d580f52a9666f152ffb37",
"passing": true,
"optional": false,
"private": false,
"sequence": 3
},
{
"target": "a[href=/alert/create] > .l.title",
"command": "click",
"value": "",
"url": "https://www.opsgenie.com/alert/index",
"dateExecuted": "2014-12-26T12:44:03.269Z",
"_id": "549d581352a9666f152ffb38",
"passing": true,
"optional": false,
"private": false,
"sequence": 4
},
{
"target": "#message",
"command": "click",
"value": "",
"url": "https://www.opsgenie.com/alert/create",
"dateExecuted": "2014-12-26T12:44:04.767Z",
"_id": "549d581452a9666f152ffb39",
"passing": true,
"optional": false,
"private": false,
"sequence": 5
},
{
"target": "#message",
"command": "assign",
"value": "asdasd",
"url": "https://www.opsgenie.com/alert/create",
"dateExecuted": "2014-12-26T12:44:05.569Z",
"_id": "549d581552a9666f152ffb3a",
"passing": true,
"optional": false,
"private": false,
"sequence": 6
},
{
"target": "input[type=subm]",
"command": "click",
"value": "",
"url": "https://www.opsgenie.com/alert/create",
"error": "Element not found",
"dateExecuted": "2014-12-26T12:44:15.885Z",
"_id": "549d581f52a9666f152ffb3b",
"passing": false,
"optional": false,
"private": false,
"sequence": 7
},
{
"target": ".alerts > .alertrow.clearfix.row:nth-of-type(2) > div:nth-of-type(2) > a.message.unseen",
"command": "assertTextPresent",
"value": "asdasd",
"_id": "549d581f52a9666f152ffb3c",
"passing": null,
"optional": false,
"private": false,
"sequence": 8
},
{
"target": "a[href=/alert/create] > .l.title",
"command": "assertTextPresent",
"value": "New Alert",
"_id": "549d581f52a9666f152ffb3d",
"passing": null,
"optional": false,
"private": false,
"sequence": 9
}
],
"viewportSize": {
"width": 1024,
"height": 768
}
}
}
このペイロードは Opsgenie によって次のように解析されます。
JSON
{
"passing": true,
"screenshotComparePassing": false,
"executionTime": 21641,
"dateExecutionStarted": "2014-12-26T12:43:54.597Z",
"startUrl": "https://www.opsgenie.com/auth/login",
"testId": "549d11f534fd04ab414f1bd7",
"testName": "Create Alert",
"testSuite": "549d10e134fd04ab414f1bd6",
"testOrganization": "549c158c8eebf29b7976b7b8",
"steps": [
{
"target": "#login",
"command": "click",
"value": "",
"url": "https://www.opsgenie.com/auth/login",
"dateExecuted": "2014-12-26T12:43:56.719Z",
"_id": "549d580c52a9666f152ffb34",
"passing": true,
"optional": false,
"private": false,
"sequence": 0
},
{
"target": "#login",
"command": "assign",
"value": "abc@gmail.com",
"url": "https://www.opsgenie.com/auth/login",
"dateExecuted": "2014-12-26T12:43:57.897Z",
"_id": "549d580d52a9666f152ffb35",
"passing": true,
"optional": false,
"private": false,
"sequence": 1
},
{
"target": "#password",
"command": "assign",
"value": "123",
"url": "https://www.opsgenie.com/auth/login",
"dateExecuted": "2014-12-26T12:43:58.518Z",
"_id": "549d580e52a9666f152ffb36",
"passing": true,
"optional": false,
"private": true,
"sequence": 2
},
{
"target": "#password",
"command": "keypress",
"value": "13",
"url": "https://www.opsgenie.com/auth/login",
"dateExecuted": "2014-12-26T12:43:59.098Z",
"_id": "549d580f52a9666f152ffb37",
"passing": true,
"optional": false,
"private": false,
"sequence": 3
},
{
"target": "a[href=/alert/create] > .l.title",
"command": "click",
"value": "",
"url": "https://www.opsgenie.com/alert/index",
"dateExecuted": "2014-12-26T12:44:03.269Z",
"_id": "549d581352a9666f152ffb38",
"optional": false,
"private": false,
"sequence": 4
},
{
"target": "#message",
"command": "click",
"value": "",
"url": "https://www.opsgenie.com/alert/create",
"dateExecuted": "2014-12-26T12:44:04.767Z",
"_id": "549d581452a9666f152ffb39",
"passing": true,
"optional": false,
"private": false,
"sequence": 5
},
{
"target": "#message",
"command": "assign",
"value": "asdasd",
"url": "https://www.opsgenie.com/alert/create",
"dateExecuted": "2014-12-26T12:44:05.569Z",
"_id": "549d581552a9666f152ffb3a",
"passing": true,
"optional": false,
"private": false,
"sequence": 6
},
{
"target": "input[type=subm]",
"command": "click",
"value": "",
"url": "https://www.opsgenie.com/alert/create",
"error": "Element not found",
"dateExecuted": "2014-12-26T12:44:15.885Z",
"_id": "549d581f52a9666f152ffb3b",
"passing": false,
"optional": false,
"private": false,
"sequence": 7
},
{
"target": ".alerts > .alertrow.clearfix.row:nth-of-type(2) > div:nth-of-type(2) > a.message.unseen",
"command": "assertTextPresent",
"value": "asdasd",
"_id": "549d581f52a9666f152ffb3c",
"passing": null,
"optional": false,
"private": false,
"sequence": 8
},
{
"target": "a[href=/alert/create] > .l.title",
"command": "assertTextPresent",
"value": "New Alert",
"_id": "549d581f52a9666f152ffb3d",
"passing": null,
"optional": false,
"private": false,
"sequence": 9
}
],
"testUrl": "https://app.ghostinspector.com/results/549d11f534fd04ab414f1bd7",
"screenshotUrl": "${url}",
"screenshotCompareUrl": "https://ghostinspector.s3.amazonaws.com/screenshots/549d580a52a9666f152ffb33-compareSmall.png"
}
この内容はお役に立ちましたか?