Baca dalam bahasa Inggris

Bagikan melalui


Jalankan Pengujian UI menggunakan REST API App Center

Penting

Visual Studio App Center dijadwalkan untuk dihentikan pada 31 Maret 2025. Meskipun Anda dapat terus menggunakan Visual Studio App Center hingga sepenuhnya dihentikan, ada beberapa alternatif yang direkomendasikan yang mungkin Anda pertimbangkan untuk bermigrasi.

Pelajari selengkapnya tentang garis waktu dukungan dan alternatif.

Contoh ini menunjukkan cara mengunggah paket aplikasi, biner pengujian, dan pengujian UI antrean menggunakan API kami.

Langkah-langkah

  1. Gunakan metode BUAT POST uji coba untuk menerima ID uji coba yang akan Anda gunakan nanti untuk Header Respons.

Permintaan Sampel https://api.appcenter.ms/v0.1/apps/MSKASANI/DroidAppSampleXamarin/test_runsCuplikan layar yang menunjukkan penggunaan API

  1. Buat hash file untuk setiap file yang ingin Anda unggah ke Pengujian App Center.

Anda bisa mendapatkan hash file dengan menjalankan perintah shasum. Utilitas ini tersedia di komputer Mac/Linux secara default. Untuk Windows, pertimbangkan untuk menginstal Git Bash dan gunakan sebagai gantinya.

Contoh

ankasani@AK--PC MINGW64 ~/source/repos/AppXamarin/sampleapp-xamarin-master/UITest/bin/Debug/testdlls (master)

$ shasum nunit.framework.dll
 a2d0dbc920fb3790d4d625e5c47be042ca32c051 *nunit.framework.dll

$ shasum Xamarin.UITest.dll
c1f7342d05a9d95580a507156207e6f9283a2c8d *Xamarin.UITest.dll

$ shasum UITest.dll
542153902bc889d0d85a83b005854b5ebd9864f1 *UITest.dll

$ shasum com.mobilecenter.sampleappxamarin.apk
3f3677f8db9ba7c07ac77d4f01f912e518a6ca16 *com.mobilecenter.sampleappxamarin.apk
  1. Buat penyimpanan untuk file menggunakan POST dan nilai hash yang dihitung dari langkah sebelumnya.

Permintaan Sampelhttps://api.appcenter.ms/v0.1/apps/MSKASANI/DroidAppSampleXamarin/test_runs/fb0cc373-aa4a-455f-b083-4fc1afa87f2e/hashes/batch

  • file_type - app-file untuk apk\ipa dan test-file untuk rakitan pengujian/file terkait pengujian.

  • checksum - nilai hash dari langkah 2

  • relative_path - Anda dapat menentukan Nama File dengan Ekstensi, tidak perlu menentukan jalur lengkap.

Badan JSON terlihat seperti:

[
    {
     "file_type":"app-file", 
     "checksum":"3f3677f8db9ba7c07ac77d4f01f912e518a6ca16",
     "relative_path":"com.mobilecenter.sampleappxamarin.apk"
    }, 
    
    {
     "file_type":"test-file",
     "checksum":"a2d0dbc920fb3790d4d625e5c47be042ca32c051",
     "relative_path":"nunit.framework.dll"
    }, 
    
    {
     "file_type":"test-file",
     "checksum":"c1f7342d05a9d95580a507156207e6f9283a2c8d",
     "relative_path":"Xamarin.UITest.dll"
    }, 
    
    {
     "file_type":"test-file",
     "checksum":"542153902bc889d0d85a83b005854b5ebd9864f1",
     "relative_path":"UITest.dll"
    }
]

Cuplikan layar yang menunjukkan unggahan API Pengujian json

Responsnya seperti berikut:

[
    {
     "fileType": "app-file",
     "checksum": "3f3677f8db9ba7c07ac77d4f01f912e518a6ca16",
     "relativePath": "com.mobilecenter.sampleappxamarin.apk",
     
     "uploadStatus":
        {
         "statusCode": 412,
         "location": "https://testcloud.xamarin.com/v0.1/direct_uploads?token=ZXlKMGVYQWlPaUpLVjFRaUxDSmhiR2NpT2lKU1V6STFOaUo5LmV5SjBaWE4w%0AWDNKMWJsOXBaQ0k2SWpjNU5EVmpNbUZtTFRFeFpXTXROR1ptWVMwNU1XSTBM%0AVFExTUdJd09EVTNNbU5sT1NJc0ltVjRjQ0k2TVRVek16Z3dOVFEzTUgwLlJO%0AaTQ3VTNPYTB5YWswMVRVdTV6Q0dfWFhwV25QUWJDdkJaNmVCRWRmOENuQ19U%0AbmdpRGI4MU0yYk1lTlZNY1VCVmRWLXlkRjh4dElLaU1yNFdtQUFhOFdoay02%0AOVVjb29rYkNTYUU2eUlzamowZlZPZVJhR2lFdGpvLWJHTFJLcXNGY0ZTeUdR%0ARTQzQUZ1TFlyTWlCRnowMElpd3ZudjYzZk9wQnRGaXhNa2lNNjhUTWxxVnNa%0AOFl3TFlTeU5KSWFvYVJCM0ZZTUkwajNYOWdVb3VJclVjNnpqcGNkYkxCcWJ0%0AVUpyN0ZFaTdJeWY4UG9rMXZxTzRlUExiaEszTmItTmd0Q2JuckZzS2x6Z3Za%0AaktUWHZZb2oya0FGWXZHaVZ4LVhfNVhUcGdiVnE1Z2dxVEtIdjRaUGFuaGR4%0AdnFvZ2YxRVYwWUJYaG40YUJLM3BnUVBodw%3D%3D%0A"
        }
    },

    {
     "fileType": "test-file",
     "checksum": "a2d0dbc920fb3790d4d625e5c47be042ca32c051",
     "relativePath": "nunit.framework.dll",
     
     "uploadStatus":
        {
         "statusCode": 412,
         "location": "https://testcloud.xamarin.com/v0.1/direct_uploads?token=ZXlKMGVYQWlPaUpLVjFRaUxDSmhiR2NpT2lKU1V6STFOaUo5LmV5SjBaWE4w%0AWDNKMWJsOXBaQ0k2SWpjNU5EVmpNbUZtTFRFeFpXTXROR1ptWVMwNU1XSTBM%0AVFExTUdJd09EVTNNbU5sT1NJc0ltVjRjQ0k2TVRVek16Z3dOVFEzTUgwLlJO%0AaTQ3VTNPYTB5YWswMVRVdTV6Q0dfWFhwV25QUWJDdkJaNmVCRWRmOENuQ19U%0AbmdpRGI4MU0yYk1lTlZNY1VCVmRWLXlkRjh4dElLaU1yNFdtQUFhOFdoay02%0AOVVjb29rYkNTYUU2eUlzamowZlZPZVJhR2lFdGpvLWJHTFJLcXNGY0ZTeUdR%0ARTQzQUZ1TFlyTWlCRnowMElpd3ZudjYzZk9wQnRGaXhNa2lNNjhUTWxxVnNa%0AOFl3TFlTeU5KSWFvYVJCM0ZZTUkwajNYOWdVb3VJclVjNnpqcGNkYkxCcWJ0%0AVUpyN0ZFaTdJeWY4UG9rMXZxTzRlUExiaEszTmItTmd0Q2JuckZzS2x6Z3Za%0AaktUWHZZb2oya0FGWXZHaVZ4LVhfNVhUcGdiVnE1Z2dxVEtIdjRaUGFuaGR4%0AdnFvZ2YxRVYwWUJYaG40YUJLM3BnUVBodw%3D%3D%0A"
        }
    },
 
    {
     "fileType": "test-file",
     "checksum": "c1f7342d05a9d95580a507156207e6f9283a2c8d",
     "relativePath": "Xamarin.UITest.dll",
     
     "uploadStatus":
        {
         "statusCode": 412,
         "location": "https://testcloud.xamarin.com/v0.1/direct_uploads?token=ZXlKMGVYQWlPaUpLVjFRaUxDSmhiR2NpT2lKU1V6STFOaUo5LmV5SjBaWE4w%0AWDNKMWJsOXBaQ0k2SWpjNU5EVmpNbUZtTFRFeFpXTXROR1ptWVMwNU1XSTBM%0AVFExTUdJd09EVTNNbU5sT1NJc0ltVjRjQ0k2TVRVek16Z3dOVFEzTUgwLlJO%0AaTQ3VTNPYTB5YWswMVRVdTV6Q0dfWFhwV25QUWJDdkJaNmVCRWRmOENuQ19U%0AbmdpRGI4MU0yYk1lTlZNY1VCVmRWLXlkRjh4dElLaU1yNFdtQUFhOFdoay02%0AOVVjb29rYkNTYUU2eUlzamowZlZPZVJhR2lFdGpvLWJHTFJLcXNGY0ZTeUdR%0ARTQzQUZ1TFlyTWlCRnowMElpd3ZudjYzZk9wQnRGaXhNa2lNNjhUTWxxVnNa%0AOFl3TFlTeU5KSWFvYVJCM0ZZTUkwajNYOWdVb3VJclVjNnpqcGNkYkxCcWJ0%0AVUpyN0ZFaTdJeWY4UG9rMXZxTzRlUExiaEszTmItTmd0Q2JuckZzS2x6Z3Za%0AaktUWHZZb2oya0FGWXZHaVZ4LVhfNVhUcGdiVnE1Z2dxVEtIdjRaUGFuaGR4%0AdnFvZ2YxRVYwWUJYaG40YUJLM3BnUVBodw%3D%3D%0A"
        }
    },

    {
     "fileType": "test-file",
     "checksum": "542153902bc889d0d85a83b005854b5ebd9864f1",
     "relativePath": "UITest.dll",
     
     "uploadStatus":
        {
         "statusCode": 412,
         "location": "https://testcloud.xamarin.com/v0.1/direct_uploads?token=ZXlKMGVYQWlPaUpLVjFRaUxDSmhiR2NpT2lKU1V6STFOaUo5LmV5SjBaWE4w%0AWDNKMWJsOXBaQ0k2SWpjNU5EVmpNbUZtTFRFeFpXTXROR1ptWVMwNU1XSTBM%0AVFExTUdJd09EVTNNbU5sT1NJc0ltVjRjQ0k2TVRVek16Z3dOVFEzTUgwLlJO%0AaTQ3VTNPYTB5YWswMVRVdTV6Q0dfWFhwV25QUWJDdkJaNmVCRWRmOENuQ19U%0AbmdpRGI4MU0yYk1lTlZNY1VCVmRWLXlkRjh4dElLaU1yNFdtQUFhOFdoay02%0AOVVjb29rYkNTYUU2eUlzamowZlZPZVJhR2lFdGpvLWJHTFJLcXNGY0ZTeUdR%0ARTQzQUZ1TFlyTWlCRnowMElpd3ZudjYzZk9wQnRGaXhNa2lNNjhUTWxxVnNa%0AOFl3TFlTeU5KSWFvYVJCM0ZZTUkwajNYOWdVb3VJclVjNnpqcGNkYkxCcWJ0%0AVUpyN0ZFaTdJeWY4UG9rMXZxTzRlUExiaEszTmItTmd0Q2JuckZzS2x6Z3Za%0AaktUWHZZb2oya0FGWXZHaVZ4LVhfNVhUcGdiVnE1Z2dxVEtIdjRaUGFuaGR4%0AdnFvZ2YxRVYwWUJYaG40YUJLM3BnUVBodw%3D%3D%0A"
        }
    }
]
  1. Sekarang kita perlu mengunggah file yang sebenarnya. Dari isi respons sebelumnya, identifikasi location yang berisi URL file yang Anda unggah.

    • Di Header, Anda perlu meneruskan Content-Type: multipart/form-data
    • Di Isi, Anda perlu menggunakan jenis Body_Form dengan nilai:
      • relative_path dan file_type: dari Isi Respons sebelumnya
      • file: Jalur ke file aktual

Anda berada di jalur yang benar jika Anda mendapatkan 201 Created sebagai respons seperti di bawah ini.

Cuplikan layar API yang membuat uji coba

(Kami setengah jalan di sana)

  1. Ulangi langkah sebelumnya untuk file lainnya yang ingin Anda unggah.

  2. Kami siap untuk Menjalankan tes sekarang. Untuk ini, kita perlu device_slug.

Catatan: Anda harus terlebih dahulu membuat "Set Perangkat" di Org Anda atau Anda dapat menggunakan REST API untuk membuat set perangkat.

Kemudian, Anda dapat menggunakan Metode GET untuk mendapatkan daftar set perangkat.

Permintaan Sampel: https://api.appcenter.ms/v0.1/apps/MSKASANI/DroidAppSampleXamarin/owner/device_sets

Cuplikan layar panggilan API untuk mencantumkan set perangkat

Isi Respons yang Sesuai:

{
     "id": "00917fb6-f30f-4d36-bd53-f900a94efe9f",
     "name": "UI Test",
     "slug": "ui-test",
     "osVersionCount": 1,
     "manufacturerCount": 1,

    "owner":
    {
        "type": "organization",
        "id": "5dd75115-3832-4f10-9cfe-5ac8cc8a51a5",
        "displayName": "MSKASANI",
        "name": "MSKASANI"
    },
 
    "deviceConfigurations":
    {
        {
            "id": "717cfc38-4817-41fc-8a8e-06beef4f73b2",
            "image":
            {
                "thumb": "https://testcloud-prod-system-files.s3-eu-west-1.amazonaws.com/system_files/0dee6ee7-6839-4e4e-ad0b-333e3952f75c?response-cache-control=max-age%3D157788000&AWSAccessKeyId=AKIAI4UZT4FCOF2OTJYQ&Signature=r9EEm/x0YAA4NhRJ%2BhVSQwGtBbI%3D&Expires=1691079085"
            },

            "os": "8.1.0",
            "osName": "Android 8.1.0",
            "model":
            {
                "name": "Google Pixel 2 XL", 
                "manufacturer": "Google", 
                "releaseDate": "October 2017", 
                "formFactor": "phone"
            }
        }
    }
}
  1. Kami sekarang siap untuk menggunakan API Uji mulai untuk memicu pengujian! Isi Permintaan di bawah ini dibuat untuk Xamarin.UITest Framework. Jika Anda menggunakan kerangka kerja lain, lihat akhir dokumen untuk detail selengkapnya!

Contoh Isi Permintaan JSON:

{
   "test_framework":"ui_test",
   "device_selection":"MSKASANI/ui-test",
   "locale":"en_US",
   "test_series":"apimain",
 
   "test_parameters":
        {
         "tests":
            {
    
             "method":
                {
                 "UITest.dll":
                    [
                     "UITest.Tests(Android).AppLaunches",
                     "UITest.Tests(iOS).AppLaunches"
                    ]
                },
             
             "fixture":
                {
                 "UITest.dll":
                    [
                     "UITest.Tests(Android)",
                     "UITest.Tests(iOS)"
                    ]
                }
            }
        }
}

Isi respons yang sesuai:

{
    "accepted_devices":["Google Pixel 2 XL (8.1.0)"],
    "rejected_devices":[]
}

Cuplikan layar panggilan API ke perangkat daftar

Jika sekarang Anda membuka halaman Uji Aplikasi, Anda akan melihat...

Cuplikan layar uji coba sedang berlangsung

Selamat! :)

PS: Untuk Kerangka Kerja Pengujian lainnya, jika Anda ingin tahu bagaimana tampilan JSON (misalnya, uji Appium)

Jalankan perintah Uji secara manual dengan --debug sakelar.

appcenter test run appium --app "MSKASANI/Appium" --devices "MSKASANI/my" --app-path C:\VSAC\AllTest\AppCenter-Test-Samples-main\Appium\Android\swiftnote.apk --test-series "main" --locale "en_US" --build-dir C:\VSAC\AllTest\AppCenter-Test-Samples-main\Appium\Android\Mavenex\target\upload --debug

Setelah pengujian selesai, Anda dapat memeriksa output Perintah untuk melihat tampilan Isi Permintaan:

Cuplikan layar output terminal API

BONUS! Dengan cara ini Anda dapat menggunakan output CLI untuk melihat bagaimana perintah kami mengantre Pengujian menggunakan API kami!