あなたのK 6テストでテスライルを導入すること
14732 ワード
あなたのK 6テストでテスライルを導入すること
より賢く働くか、怠惰であることは、我々がものを自動化する理由です.私は、あなたにK 6とのTestrail統合を最適化する私の試みを示すようにしましょう.
ユースケース
私の日々の仕事で、私はazureパイプラインを使用しています.連続積分の過程を説明します.いくつかの部分はプロジェクト特有であるかもしれません、しかし、あなたが異なるテクノロジーを使用しているならば、一般的な考えとアプローチはあまり変わりません.
テッセル
私たちが始める前にあなたがしなければならない前提条件のカップルがあります.
テスケイルAPI
ドキュメント全体が見つかります.here , しかし、我々だけに焦点を当てるRuns and Results .
テスト実行を作成する
演奏
私はユーザがトークンを持っているのを好む.それで、ヘッダーの「nice」に見えます.ユーザをエンコードしましょうhere . 今カールを送ることができます
curl -X POST \
'https://company.testrail.io/index.php?/api/v2/add_run/69' \
-H 'Authorization: Basic myTokenHere' \
-H 'Content-Type: application/json' \
-d '{
"suite_id": 2137,
"name": "Performance Test Run",
"include_all": true
}'
あなたは、ちょうど新しいテストを作成しました!上記があなたのために働いているならば、我々は次のステップに進むことができます.何が応答だったかを心に留めておいてください.フレームワークでのテスト実行の作成
テストスーツからシナリオを実行するたびにテスト実行を作りたい.私たちは、一度だけそれを作成して、それから、我々のK 6テストがされるとき、そのテスト実行でテストの結果を変えたいだけです.
私はAzureパイプラインを使用しているので、私のK 6ジョブには次のような手順があります.
- task: PowerShell@2
name: CreateTestRun
inputs:
targetType: 'filePath'
filePath: $(System.DefaultWorkingDirectory)/scripts/CreateTestRun.ps1
arguments: -token $(trtoken)
およびcreateTestunファイルの内容.PS 1 :param ($token)
$Uri = "https://company.testrail.io/index.php?/api/v2/add_run/69"
$Body = @{
suite_id = 2137
name = "Performance Test Run: $(Get-Date -Format "dd/MM/yyyy, HH:mm")"
include_all = true
} | ConvertTo-Json
$Headers = @{
"Authorization" = "Basic $token"
"Content-Type" = "application/json"
}
$Result = Invoke-RestMethod -Uri $Uri -Method 'Post' -Headers $Headers -Body $Body
$runId = $Result.id
Write-Host "##vso[task.setvariable variable=runId;isOutput=true]$runId"
スクリプトは、作成されたテスト実行のIDをつかんで保存します.-e RUNID=$(CreateTestRun.runId)
-e TRTOKEN=$(trtoken)
K 6における試験結果の更新
テストを実行した後、IDを持っているので、K 6のテストを開始できます.我々はシナリオのいずれかを終了するたびに、我々はその実行で結果を更新する必要があります.
それが我々のすべてを通過するならば、K 6シナリオは通過されますthresholds . それで、我々はそれのまわりで働かなければなりません.テストの後、レポートが作成されます.私のシナリオのそれぞれでhandleSummary 機能
import tools from '../tools/tools.js'
import { textSummary } from 'https://jslib.k6.io/k6-summary/0.0.1/index.js';
export function handleSummary(data) {
const success = tools.CheckThresholds(data, 'iteration_duration')
tools.UpdateTestrail(success, 142927)
return {
'logs/DataGridTest2.json': JSON.stringify(data),
'stdout': textSummary(data, { indent: ' ', enableColors: true}),
}
}
今、私が説明しなければならないことがいくつかあります.私たちは私のフレームワークに深く行きません.tools.CheckThresholds()
は、私のしきい値の状態をチェックする関数です.それは私が作成し、ツールに格納されているカスタム機能です.jsファイルfunction CheckThresholds(data, metric) {
const res = data['metrics'][metric]['thresholds'] ? data['metrics'][metric]['thresholds'] : true
return Object.values(res).every(obj => obj['ok'])
}
これは、選択したメトリック、いずれかの組み込みまたはカスタムをチェックします.ので、テストが合格したか失敗したかを知っています.それを更新する時間!見てみましょう
tools.UpdateTestrail()
そして、142927の数が意味するmisteryを展開してください.function UpdateTestrail(success, caseId) {
const host = 'https://company.testrail.io'
let status = 3 //untested
if (success) {
status = 1
} else {
status = 5
}
let body = {
"results": [
{
"case_id": caseId,
"status_id": status,
}
]
};
let params = {
headers: {
Authorization: `Basic ${__ENV.TRTOKEN}`,
'content-type': 'application/json'
}
};
http.post(`${host}/index.php?/api/v2/add_results_for_cases/${__ENV.RUNID}`,JSON.stringify(body),params);
}
オリジナルテストのテストスーツに戻りましょう.番号142927は、単に我々のテストの1つです!
何が起こるか
テスト実行を作成し、そのidをつかんだ.
それから、私たちは、そのIDをK 6に渡し、シナリオを実行します.
我々のシナリオが失敗したときに知っているので、我々はしきい値を設定している.
テストが完了した後、我々はTestulilで結果を更新しました.
今、我々は次のシナリオに進むことができます、そこで、唯一のものは異なるです.そして、私たちの更新されたテスト実行は、以下のようになります.
Reference
この問題について(あなたのK 6テストでテスライルを導入すること), 我々は、より多くの情報をここで見つけました https://dev.to/kwidera/introducing-testrail-in-you-k6-tests-eckテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol