'Uji laporan menggunakan AWS CLI'sampel - AWS CodeBuild

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

'Uji laporan menggunakan AWS CLI'sampel

Pengujian yang Anda tentukan dalam file buildspec dijalankan selama build. Sampel ini menunjukkan cara menggunakan tes AWS CLI untuk menggabungkan pengujian ke dalam build in CodeBuild. Anda dapat menggunakan JUnit untuk membuat pengujian unit, atau Anda dapat menggunakan alat lain untuk membuat pengujian konfigurasi. Anda kemudian dapat mengevaluasi hasil tes untuk memperbaiki masalah atau mengoptimalkan aplikasi Anda.

Anda dapat menggunakan CodeBuild API atau AWS CodeBuild konsol untuk mengakses hasil pengujian. Contoh ini menunjukkan cara mengonfigurasi laporan agar hasil pengujiannya diekspor ke bucket S3.

Jalankan sampel laporan pengujian

Gunakan langkah-langkah berikut untuk menjalankan sampel laporan trest.

Prasyarat

  • Buat kasus uji Anda. Sampel ini ditulis dengan asumsi bahwa Anda memiliki kasus uji untuk dimasukkan dalam laporan pengujian sampel Anda. Anda menentukan lokasi file pengujian Anda dalam file buildspec.

    Format file laporan pengujian berikut didukung:

    • Mentimun JSON (.json)

    • JUnitXML(.xml)

    • NUnitXML(.xml)

    • NUnit3XML(.xml)

    • TestNG XML (.xml)

    • Studio Visual TRX (.trx)

    • Studio Visual TRX XML (.xml)

    Buat kasus pengujian Anda dengan kerangka pengujian apa pun yang dapat membuat file laporan dalam salah satu format ini (misalnya, JUnit plugin Surefire, TestNG, atau Mentimun).

  • Buat ember S3 dan catat namanya. Untuk informasi selengkapnya, lihat Bagaimana cara membuat bucket S3? di Panduan Pengguna Amazon S3.

  • Buat IAM peran dan catat ituARN. Anda membutuhkan ARN ketika Anda membuat proyek build Anda.

  • Jika peran Anda tidak memiliki izin berikut, tambahkan.

    { "Effect": "Allow", "Resource": [ "*" ], "Action": [ "codebuild:CreateReportGroup", "codebuild:CreateReport", "codebuild:UpdateReport", "codebuild:BatchPutTestCases" ] }

    Untuk informasi selengkapnya, lihat Izin untuk operasi pelaporan pengujian.

Langkah 1: Buat grup laporan

  1. Buat file bernama CreateReportGroupInput.json.

  2. Buat folder di bucket S3 tempat hasil pengujian Anda diekspor.

  3. Salin yang berikut ini ke dalamCreateReportGroupInput.json. Untuk<bucket-name>, gunakan nama bucket S3. Untuk<path-to-folder>, masukkan path ke folder di bucket S3 Anda.

    { "name": "<report-name>", "type": "TEST", "exportConfig": { "exportConfigType": "S3", "s3Destination": { "bucket": "<bucket-name>", "path": "<path-to-folder>", "packaging": "NONE" } } }
  4. Jalankan perintah berikut di direktori yang berisiCreateReportGroupInput.json.

    aws codebuild create-report-group --cli-input-json file://CreateReportGroupInput.json

    Output-nya akan terlihat seperti berikut. Buat catatan ARN untukreportGroup. Anda menggunakannya saat membuat proyek yang menggunakan grup laporan ini.

    { "reportGroup": { "arn": "arn:aws:codebuild:us-west-2:123456789012:report-group/<report-name>", "name": "<report-name>", "type": "TEST", "exportConfig": { "exportConfigType": "S3", "s3Destination": { "bucket": "<s3-bucket-name>", "path": "<folder-path>", "packaging": "NONE", "encryptionKey": "arn:aws:kms:us-west-2:123456789012:alias/aws/s3" } }, "created": 1570837165.885, "lastModified": 1570837165.885 } }

Langkah 2: Konfigurasikan proyek dengan grup laporan

Untuk menjalankan laporan, pertama-tama Anda membuat proyek CodeBuild build yang dikonfigurasi dengan grup laporan Anda. Kasus uji yang ditentukan untuk grup laporan dijalankan saat Anda menjalankan build.

  1. Buat file buildspec bernama. buildspec.yml

  2. Gunakan yang berikut ini YAML sebagai template untuk buildspec.yml file Anda. Pastikan untuk menyertakan perintah yang menjalankan pengujian Anda. Di reports bagian ini, tentukan file yang berisi hasil kasus uji Anda. File-file ini menyimpan hasil tes yang dapat Anda akses CodeBuild. Mereka kedaluwarsa 30 hari setelah dibuat. File-file ini berbeda dari file hasil kasus uji mentah yang Anda ekspor ke bucket S3.

    version: 0.2 phases: install: runtime-versions: java: openjdk8 build: commands: - echo Running tests - <enter commands to run your tests> reports: <report-name-or-arn>: #test file information files: - '<test-result-files>' base-directory: '<optional-base-directory>' discard-paths: false #do not remove file paths from test result files
    catatan

    Alih-alih grup laporan yang ada, Anda juga dapat menentukan nama untuk grup laporan yang belum dibuat. ARN Jika Anda menentukan nama, bukan namaARN, akan CodeBuild membuat grup laporan saat menjalankan build. Namanya berisi nama proyek Anda dan nama yang Anda tentukan dalam file buildspec, dalam format ini:. project-name-report-group-name Untuk informasi selengkapnya, silakan lihat Buat laporan pengujian dan Laporkan penamaan grup.

  3. Buat file bernama project.json. File ini berisi input untuk create-project perintah.

  4. Salin yang berikut ini JSON ke dalamproject.json. Untuksource, masukkan jenis dan lokasi repositori yang berisi file sumber Anda. UntukserviceRole, tentukan ARN peran yang Anda gunakan.

    { "name": "test-report-project", "description": "sample-test-report-project", "source": { "type": "CODECOMMIT|CODEPIPELINE|GITHUB|S3|BITBUCKET|GITHUB_ENTERPRISE|NO_SOURCE", "location": "<your-source-url>" }, "artifacts": { "type": "NO_ARTIFACTS" }, "cache": { "type": "NO_CACHE" }, "environment": { "type": "LINUX_CONTAINER", "image": "aws/codebuild/standard:5.0", "computeType": "small" }, "serviceRole": "arn:aws:iam::<your-aws-account-id>:role/service-role/<your-role-name>" }
  5. Jalankan perintah berikut di direktori yang berisiproject.json. Ini menciptakan proyek bernamatest-project.

    aws codebuild create-project --cli-input-json file://project.json

Langkah 3: Jalankan dan lihat hasil laporan

Di bagian ini, Anda menjalankan build proyek yang Anda buat sebelumnya. Selama proses pembuatan, CodeBuild buat laporan dengan hasil kasus uji. Laporan tersebut terdapat dalam grup laporan yang Anda tentukan.

  1. Untuk memulai build, jalankan perintah berikut. test-report-projectadalah nama proyek build yang dibuat di atas. Catat ID build yang muncul di output.

    aws codebuild start-build --project-name test-report-project
  2. Jalankan perintah berikut untuk mendapatkan informasi tentang build Anda, termasuk laporan Anda. ARN Untuk<build-id>, tentukan ID build Anda. Catat laporan ARN di reportArns properti output.

    aws codebuild batch-get-builds --ids <build-id>
  3. Jalankan perintah berikut untuk mendapatkan detail tentang laporan Anda. Untuk<report-arn>, tentukan laporan AndaARN.

    aws codebuild batch-get-reports --report-arns <report-arn>

    Output-nya akan terlihat seperti berikut. Output sampel ini menunjukkan berapa banyak pengujian yang berhasil, gagal, dilewati, menghasilkan kesalahan, atau mengembalikan status yang tidak diketahui.

    { "reports": [ { "status": "FAILED", "reportGroupArn": "<report-group-arn>", "name": "<report-group-name>", "created": 1573324770.154, "exportConfig": { "exportConfigType": "S3", "s3Destination": { "bucket": "<amzn-s3-demo-bucket>", "path": "<path-to-your-report-results>", "packaging": "NONE", "encryptionKey": "<encryption-key>" } }, "expired": 1575916770.0, "truncated": false, "executionId": "arn:aws:codebuild:us-west-2:123456789012:build/<name-of-build-project>:2c254862-ddf6-4831-a53f-6839a73829c1", "type": "TEST", "arn": "<report-arn>", "testSummary": { "durationInNanoSeconds": 6657770, "total": 11, "statusCounts": { "FAILED": 3, "SKIPPED": 7, "ERROR": 0, "SUCCEEDED": 1, "UNKNOWN": 0 } } } ], "reportsNotFound": [] }
  4. Jalankan perintah berikut untuk mencantumkan informasi tentang kasus uji untuk laporan Anda. Untuk<report-arn>, tentukan ARN laporan Anda. Untuk --filter parameter opsional, Anda dapat menentukan satu hasil status (SUCCEEDED,FAILED,SKIPPED,ERROR, atauUNKNOWN).

    aws codebuild describe-test-cases \ --report-arn <report-arn> \ --filter status=SUCCEEDED|FAILED|SKIPPED|ERROR|UNKNOWN

    Output-nya akan terlihat seperti berikut.

    { "testCases": [ { "status": "FAILED", "name": "Test case 1", "expired": 1575916770.0, "reportArn": "<report-arn>", "prefix": "Cucumber tests for agent", "message": "A test message", "durationInNanoSeconds": 1540540, "testRawDataPath": "<path-to-output-report-files>" }, { "status": "SUCCEEDED", "name": "Test case 2", "expired": 1575916770.0, "reportArn": "<report-arn>", "prefix": "Cucumber tests for agent", "message": "A test message", "durationInNanoSeconds": 1540540, "testRawDataPath": "<path-to-output-report-files>" } ] }