Ghost Inspector と統合する
統合でできるようになること
Ghost Inspector は、テストの実行時に Webhook 通知を送信します。Jira Service Management の Ghost Inspector 統合によって、Jira Service Management はこれらのアラートのディスパッチャーとして機能し、オンコール スケジュールに基づいて通知する適切な担当者を決定します。メール、テキスト メッセージ (SMS)、電話、iPhone や Android のプッシュ通知による通知を行い、アラートが承認またはクローズされるまでアラートをエスカレーションします。
さらに、Jira Service Management はテストからアラートにスクリーンショット画像を添付します。また、アラートには画像へのリンクが表示されます。
統合による機能
Ghost Inspector でテストが失敗すると、統合を通じて Jira Service Management でアラートが自動で作成されます。
統合をセットアップする
Ghost Inspector は API ベースの統合です。設定は次の手順で行います。
Jira Service Management で Ghost Inspector 統合を追加する
Ghost Inspector で統合を設定する
Ghost Inspector 統合を追加する
The following capabilities are available in Jira Service Management Premium and Enterprise:
双方向の統合
Outgoing integrations at the team level
Integrations at a site level through Settings (icon) > Products (under Jira settings) > Operations
To access Jira Service Management Premium features, you must subscribe to a Service Collection Premium or Enterprise plan.
Adding an integration from your team’s operations page makes your team the owner of the integration. This means Jira Service Management only assigns the alerts received through this integration to your team.
Jira Service Management で Ghost Inspector 統合を追加するには、次の手順を実行します。
Next to Operations in the sidebar, select More actions (), then General configuration.
Select Integrations and then Add integration.
検索を実行して「Ghost Inspector」を選択します。
次の画面で、統合の名前を入力します。
オプション: 特定のチームが統合からのアラートを受信するようにする場合は、[Assignee team (担当者チーム)] のチームを選択します。
[Continue] を選択します。
この時点で、統合が保存されます。[統合を設定する手順] セクションを展開して、API URL をコピーします。
この URL は、後ほど Ghost Inspector で統合を設定する際に使用します。[統合をオンにする] を選択します。
統合のために作成したルールは、統合をオンにした場合にのみ機能します。
Ghost Inspector で統合を設定する
Ghost Inspector と Jira Service Management の統合を設定するには、次の手順を実行してください。
Ghost Inspector で、新しいテスト スイートを作成してその中にテストを定義します (まだ作成されていない場合)。
テストの設定に移動します。
[Webhook 設定] に移動します。
以前に Jira Service Management からコピーした API URL を [Add Webhook URL (Webhook URLを追加)] に貼り付けます。
[+] アイコンを選択します。
[保存] を選択します。
Ghost Inspector から Jira Service Management に送信されたペイロードの例閉じる
JSON
{
"type": "result",
"data": {
"__v": 0,
"executionTime": 21641,
"dateExecutionFinished": "2014-12-26T12:44:16.238Z",
"endUrl": "https://www.jsm.com/alert/create",
"dateExecutionStarted": "2014-12-26T12:43:54.597Z",
"startUrl": "https://www.jsm.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.jsm.com/auth/login",
"https://www.jsm.com/auth/signIn",
"https://www.jsm.com/customer/welcome",
"https://www.jsm.com/alert/index",
"https://www.jsm.com/alert/create"
],
"steps": [
{
"target": "#login",
"command": "click",
"value": "",
"url": "https://www.jsm.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.jsm.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.jsm.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.jsm.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.jsm.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.jsm.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.jsm.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.jsm.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
}
}
}
Jira Service Management ではペイロードは次のように解析されます。
JSON
{
"passing": true,
"screenshotComparePassing": false,
"executionTime": 21641,
"dateExecutionStarted": "2014-12-26T12:43:54.597Z",
"startUrl": "https://www.jsm.com/auth/login",
"testId": "549d11f534fd04ab414f1bd7",
"testName": "Create Alert",
"testSuite": "549d10e134fd04ab414f1bd6",
"testOrganization": "549c158c8eebf29b7976b7b8",
"steps": [
{
"target": "#login",
"command": "click",
"value": "",
"url": "https://www.jsm.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.jsm.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.jsm.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.jsm.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.jsm.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.jsm.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.jsm.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.jsm.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"
}
この内容はお役に立ちましたか?