حالات الاختبار لـcreateUiDefinition.json
توضح هذه المقالة الاختبارات التي يتم تشغيلها باستخدام مجموعة أدوات اختبار النموذج لملفات createUiDefinition.json . تتضمن الأمثلة أسماء الاختبار ونماذج التعليمات البرمجية التي تجتاز أو تفشل في الاختبارات.
تشتمل مجموعة الأدوات على حالات اختبار لقوالب Azure Resource Manager (قوالب ARM) وملفات القوالب الرئيسية المسماة azuredeploy.json أو Maintenanceemplate.json . عندما يحتوي الدليل على ملف createUiDefinition.json ، يتم تشغيل اختبارات محددة لعناصر تحكم واجهة المستخدم. لمزيدٍ من المعلومات حول كيفية إجراء الاختبارات أو كيفية إجراء اختبار معين، راجع Test parameters.
ينشئ ملف createUiDefinition.json عناصر تحكم مخصصة لواجهة المستخدم (UI) باستخدام العناصر و الوظائف .
تحقق معلمة القالب تسمح بالقيم
اسم الاختبار: يجب السماح بالقيم المسموح بها بالفعل
يتحقق هذا الاختبار من السماح بقيم كل عنصر تحكم في createUiDefinition.json في معلمات النموذج الرئيسي. يتم تعيين المعلمات حسب الاسم بين القالب الرئيسي وملف createUiDefinition.json .
يجب أن تقبل معلمة القالب الرئيسي القيم من عنصر التحكم allowedValues
. يتحقق الاختبار أيضًا من الإشارة إلى عنصر التحكم في قسم createUiDefinition.json outputs
.
يتحقق هذا الاختبار من النموذج الرئيسي وملف createUiDefinition.json . يظهر مثال لملف createUiDefinition.json بعد أمثلة النموذج الرئيسي.
المثال التالي فشل لأن اسم معلمة النموذج الرئيسي combo
لا يتطابق مع اسم معلمة عنصر التحكم comboBox
.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"combo": {
"type": "string",
"defaultValue": "two"
}
},
"resources": [],
"outputs": {
"comboBoxOutput": {
"type": "string",
"value": "[parameters('combo')]"
}
}
}
المثال التالي فشل لأن نوع معلمة النموذج الرئيسي int
لا يقبل قيمة عنصر التحكم string
. وإذا كانت معلمة النموذج الرئيسي تحدد defaultValue
فيجب أن تكون value
صالحة في عنصر التحكم allowedValues
.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"comboBox": {
"type": "int",
"defaultValue": 4
}
},
"resources": [],
"outputs": {
"comboBoxOutput": {
"type": "string",
"value": "[parameters('combo')]"
}
}
}
المثال التالي يمر لأن اسم معلمة النموذج الرئيسي يطابق اسم معلمة عنصر التحكم. ونوع معلمة النموذج هو string
مع defaultValue
المحدد في عنصر التحكم allowedValues
.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"comboBox": {
"type": "string",
"defaultValue": "two"
}
},
"resources": [],
"outputs": {
"comboBoxOutput": {
"type": "string",
"value": "[parameters('comboBox')]"
}
}
}
الملف createUiDefinition.json لهذا المثال:
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [],
"steps": [
{
"name": "demoComboBox",
"label": "demoComboBoxLabel",
"elements": [
{
"name": "comboBox",
"type": "Microsoft.Common.DropDown",
"label": "Example drop down",
"defaultValue": "Value two",
"toolTip": "This is a tool tip",
"constraints": {
"allowedValues": [
{
"label": "Value one",
"description": "The value to select for option 1.",
"value": "one"
},
{
"label": "Value two",
"description": "The value to select for option 2.",
"value": "two"
}
],
"required": true
},
"visible": true
}
]
}
],
"outputs": {
"comboBox": "[steps('demoComboBox').comboBox]"
}
}
}
يجب أن توجد ضوابط الإخراج
اسم الاختبار: يجب أن تكون عناصر التحكم في المخرجات موجودة
يجب أن تكون عناصر التحكم المستخدمة في القسم outputs
موجودة في عنصر في مكان آخر في createUiDefinition.json . يجب أن يتطابق الاسم المشار إليه في outputs
مع الاسم المستخدم في basics[]
أو steps[]
.
المثال التالي يفشل.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{
"name": "nameDoesNotMatchOutput",
"type": "Microsoft.Common.DropDown",
"label": "Example drop down",
"toolTip": "This is a tool tip"
}
],
"steps": [],
"outputs": {
"comboBox": "[basics('comboBox')]"
}
}
}
مر المثال التالي.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{
"name": "comboBox",
"type": "Microsoft.Common.DropDown",
"label": "Example drop down",
"toolTip": "This is a tool tip"
}
],
"steps": [],
"outputs": {
"comboBox": "[basics('comboBox')]"
}
}
}
يجب أن تحتوي الخصائص على قيم
اسم الاختبار: يجب ألا يحتوي CreateUIDefinition على فراغات
يجب أن تحتوي الخصائص على قيم. يجب أن تستخدم الخصائص المطلوبة قيمًا صالحة. يجب إزالة الخصائص الاختيارية الفارغة. يسمح الاختبار فارغًا "basics": []
أو "steps": []
أو defaultValue
.
المثال التالي فشل لأن label
و placeholder
و toolTip
فارغة.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{
"name": "comboBox",
"type": "Microsoft.Common.DropDown",
"label": "",
"placeholder": "",
"defaultValue": "",
"toolTip": ""
}
],
"steps": [],
"outputs": {
"comboBox": "[basics('comboBox')]"
}
}
}
المثال التالي يمر لأن label
و toolTip
لهما قيم، وتمت إزالة placeholder
.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{
"name": "comboBox",
"type": "Microsoft.Common.DropDown",
"label": "Example drop down",
"defaultValue": "",
"toolTip": "This is a tool tip"
}
],
"steps": [],
"outputs": {
"comboBox": "[basics('comboBox')]"
}
}
}
استخدم مخططًا وإصدارًا صالحين
اسم الاختبار: CreateUIDefinition should have Schema
يجب أن يشتمل ملف createUiDefinition.json على خاصية $schema
واستخدام $schema
و version
صالحين. يجب أن تتطابق أرقام الإصدار في $schema
و version
.
المثال التالي يفشل.
{
"$schema": "https://schema.management.azure.com/schemas/0.9.9-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.9.9-preview"
}
المثال التالي يمر لأنه يستخدم الأحدث $schema
و version
.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview"
}
لا تخفي تأكيد الاعتماد
اسم الاختبار: يجب عدم إخفاء تأكيد بيانات الاعتماد
يتحقق هذا الاختبار من تأكيد بيانات الاعتماد لـ Microsoft.Common.PasswordBox أو Microsoft.Compute.CredentialsCombo . يجب تعيين الخاصية hideConfirmation
على false
حتى يكون التأكيد مرئيًا.
المثال التالي فشل لأن hideConfirmation
هو true
.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{
"name": "credentials",
"type": "Microsoft.Compute.CredentialsCombo",
"label": {
"password": "Password",
"confirmPassword": "Confirm password"
},
"toolTip": {
"password": "Type your credentials"
},
"constraints": {
"required": true,
"customPasswordRegex": "^(?=.*[A-Za-z])(?=.*\\d)[A-Za-z\\d]{12,}$",
"customValidationMessage": "The password must be alphanumeric, contain at least 12 characters, and have at least 1 letter and 1 number."
},
"options": {
"hideConfirmation": true
},
"osPlatform": "Windows",
"visible": true
}
],
"steps": [],
"outputs": {
"location": "[location()]",
"credentials": "[basics('credentials')]"
}
}
}
المثال التالي يمر لأن hideConfirmation
هو false
.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{
"name": "credentials",
"type": "Microsoft.Compute.CredentialsCombo",
"label": {
"password": "Password",
"confirmPassword": "Confirm password"
},
"toolTip": {
"password": "Type your credentials"
},
"constraints": {
"required": true,
"customPasswordRegex": "^(?=.*[A-Za-z])(?=.*\\d)[A-Za-z\\d]{12,}$",
"customValidationMessage": "The password must be alphanumeric, contain at least 12 characters, and have at least 1 letter and 1 number."
},
"options": {
"hideConfirmation": false
},
"osPlatform": "Windows",
"visible": true
}
],
"steps": [],
"outputs": {
"location": "[location()]",
"credentials": "[basics('credentials')]"
}
}
}
استخدم المعالج الصحيح
اسم الاختبار: يجب أن يكون المعالج صحيحًا
استخدم Microsoft.Azure.CreateUIDef
أو Microsoft.Compute.MultiVm
في ملف createUiDefinition.json .
المثال التالي يفشل.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.",
"version": "0.1.2-preview"
}
مر المثال التالي.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview"
}
لا تخفي الموارد الموجودة
اسم الاختبار: يجب معالجة HideExisting بشكل صحيح
إذا تم تعيين hideExisting
على false
أو تم حذفه، فيجب أن يحتوي outputs
على resourceGroup
و newOrExisting
. الافتراضي لـhideExisting
هو false
.
من أمثلة أنواع عناصر التحكم التي تتضمن hideExisting
Microsoft.Storage.StorageAccountSelector أو Microsoft.Network.PublicIpAddressCombo أو Microsoft.Network.VirtualNetworkCombo .
المثال التالي يفشل.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{
"name": "storage",
"type": "Microsoft.Storage.StorageAccountSelector",
"label": "Storage account",
"toolTip": "This is a demo storage account",
"defaultValue": {
"name": "storageaccount01",
"type": "Premium_LRS"
},
"options": {
"hideExisting": false
},
"visible": true
}
],
"steps": [],
"outputs": {
"location": "[location()]"
}
}
}
مر المثال التالي.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{
"name": "storage",
"type": "Microsoft.Storage.StorageAccountSelector",
"label": "Storage account",
"toolTip": "This is a demo storage account",
"defaultValue": {
"name": "storageaccount01",
"type": "Premium_LRS"
},
"options": {
"hideExisting": false
},
"visible": false
}
],
"steps": [],
"outputs": {
"location": "[location()]",
"resourceGroup": "[basics('storage').resourceGroup]",
"newOrExisting": "[basics('storage').newOrExisting]"
}
}
}
استخدام الموقع في النواتج
اسم الاختبار: يجب إدخال الموقع في النواتج
يجب أن يحتوي قسم outputs
على موقع باستخدام وظيفة الموقع .
المثال التالي فشل لأن outputs
لا يتضمن موقعًا.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{
"name": "comboBox",
"type": "Microsoft.Common.DropDown",
"label": "Example drop down",
"toolTip": "This is a tool tip"
}
],
"steps": [],
"outputs": {
"comboBox": "[basics('comboBox')]"
}
}
}
مر المثال التالي.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{
"name": "comboBox",
"type": "Microsoft.Common.DropDown",
"label": "Example drop down",
"toolTip": "This is a tool tip"
}
],
"steps": [],
"outputs": {
"comboBox": "[basics('comboBox')]",
"location": "[location()]"
}
}
}
تضمين نواتج التحكم في معلمات القالب
اسم الاختبار: يجب أن تكون المخرجات موجودة في معلمات النموذج
يتحقق الاختبار من أن createUiDefinition.json تتضمن قسمًا outputs
. يتحقق الاختبار أيضًا من أن هذه outputs
محددة في قسم parameters
للنموذج الرئيسي. يجب أن تتطابق الأسماء لأنه يتم تعيين المعلمات بالاسم بين createUiDefinition.json والقالب الرئيسي.
يتحقق هذا الاختبار من النموذج الرئيسي وملف createUiDefinition.json . يظهر مثال لملف createUiDefinition.json بعد أمثلة النموذج الرئيسي.
إن المثال التالي فشل لأن النموذج الرئيسي لا يتضمن comboBox
المعلمة من قسم ملف createUiDefinition.jsonoutputs
.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]"
}
},
"resources": [],
"outputs": {
"location": {
"type": "string",
"value": "[parameters('location')]"
}
}
}
المثال التالي يمر لأن النموذج الرئيسي يتضمن المعلمة comboBox
.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"comboBox": {
"type": "string",
"defaultValue": "two"
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]"
}
},
"resources": [],
"outputs": {
"comboBox": {
"type": "string",
"value": "[parameters('comboBox')]"
},
"location": {
"type": "string",
"value": "[parameters('location')]"
}
}
}
الملف createUiDefinition.json لهذا المثال:
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{
"name": "comboBox",
"type": "Microsoft.Common.DropDown",
"label": "Example drop down",
"toolTip": "This is a tool tip"
}
],
"steps": [],
"outputs": {
"comboBox": "[basics('comboBox')]",
"location": "[location()]"
}
}
}
يجب أن توجد المعلمات بدون تقصير في النواتج
اسم الاختبار: يجب أن تكون المعلمات التي ليس لها افتراضي موجودة في CreateUIDefinition
يجب أن تكون المعلمات في النموذج الرئيسي بدون قيمة افتراضية موجودة في قسم createUiDefinition.json outputs
للملف.
يتحقق هذا الاختبار من النموذج الرئيسي وملف createUiDefinition.json . يتم عرض مثال لملف azuredeploy.json بعد أمثلة عنصر التحكم.
المثال التالي فشل لأن ملف createUiDefinition.json outputs
لا يتضمن معلمة النموذج الرئيسي comboBox
.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{
"name": "comboBox",
"type": "Microsoft.Common.DropDown",
"label": "Example drop down",
"toolTip": "This is a tool tip"
}
],
"steps": [],
"outputs": {
"location": "[location()]"
}
}
}
المثال التالي يمر لأن createUiDefinition.json يتضمن comboBox
في outputs
.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{
"name": "comboBox",
"type": "Microsoft.Common.DropDown",
"label": "Example drop down",
"toolTip": "This is a tool tip"
}
],
"steps": [],
"outputs": {
"comboBox": "[basics('comboBox')]",
"location": "[location()]"
}
}
}
ملف azuredeploy.json لهذا المثال. المعلمة comboBox
ليس لها قيمةً افتراضيةً.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"comboBox": {
"type": "string"
},
"location": {
"type": "string"
}
},
"resources": [],
"outputs": {
"comboBox": {
"type": "string",
"value": "[parameters('comboBox')]"
},
"location": {
"type": "string",
"value": "[parameters('location')]"
}
}
}
استخدم معلمة آمنة مع مربع كلمة المرور
اسم الاختبار: يجب استخدام مربعات نص كلمة المرور لمعلمات كلمة المرور
يتحقق هذا الاختبار من تحديد عنصر Microsoft.Common.PasswordBox في النموذج الرئيسي parameters
و createUiDefinition.json outputs
. يجب أن يكون نوع معلمة النموذج الرئيسي لمربع كلمة المرور هو secureString
أو secureObject
.
يتحقق هذا الاختبار من النموذج الرئيسي وملف createUiDefinition.json . يظهر مثال لملف createUiDefinition.json بعد أمثلة النموذج الرئيسي.
المثال التالي فشل لأن معلمة النموذج الرئيسي passwordBox
هي string
.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"passwordBox": {
"type": "string"
},
"location": {
"type": "string"
}
},
"resources": [],
"outputs": {
"location": {
"type": "string",
"value": "[parameters('location')]"
}
}
}
المثال التالي يمر لأن معلمة النموذج الرئيسي passwordBox
هي secureString
.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"passwordBox": {
"type": "secureString"
},
"location": {
"type": "string"
}
},
"resources": [],
"outputs": {
"location": {
"type": "string",
"value": "[parameters('location')]"
}
}
}
الملف createUiDefinition.json لهذا المثال:
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{
"name": "passwordBox",
"type": "Microsoft.Common.PasswordBox",
"label": {
"password": "Password",
"confirmPassword": "Confirm password"
},
"toolTip": "Type a password"
}
],
"steps": [],
"outputs": {
"location": "[location()]",
"passwordBox": "[basics('passwordBox')]"
}
}
}
يتطلب مربع كلمة المرور الحد الأدنى للطول
اسم الاختبار: يجب أن يكون لدى PasswordBoxes حد أدنى من الطول
يتحقق الاختبار من أن عنصر Microsoft.Common.PasswordBox يستخدم constraints
مع regex
يتطلب 12 حرفًا على الأقل.
المثال التالي فشل لعدم وجود constraints
.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{
"name": "passwordBox",
"type": "Microsoft.Common.PasswordBox",
"label": {
"password": "Password",
"confirmPassword": "Confirm password"
},
"toolTip": "Type a password"
}
],
"steps": [],
"outputs": {
"location": "[location()]",
"passwordBox": "[basics('passwordBox')]"
}
}
}
المثال التالي يمر لأن regex
يتطلب 12 حرفًا على الأقل.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{
"name": "passwordBox",
"type": "Microsoft.Common.PasswordBox",
"label": {
"password": "Password",
"confirmPassword": "Confirm password"
},
"toolTip": "Type a password",
"constraints": {
"required": true,
"regex": "^[a-zA-Z0-9]{12,}$",
"validationMessage": "Password must be at least 12 characters long, contain only numbers and letters"
}
}
],
"steps": [],
"outputs": {
"location": "[location()]",
"passwordBox": "[basics('passwordBox')]"
}
}
}
يجب أن يستخدم مربع النص التحقق من الصحة
اسم الاختبار: مربعات النص جيدة التنسيق
استخدم التحقق مع مربعات النص للتحقق من constraints
التي تحتوي على regex
و message
.
المثال التالي يفشل.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{
"name": "textBox",
"type": "Microsoft.Common.TextBox",
"label": "Text box",
"toolTip": "Type 1-30 alphanumeric characters",
"placeholder": "Type your text here",
"visible": true
}
],
"steps": [],
"outputs": {
"location": "[location()]",
"textBox": "[basics('textBox')]"
}
}
}
مر المثال التالي.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{
"name": "textBox",
"type": "Microsoft.Common.TextBox",
"label": "Text box",
"toolTip": "Type 1-30 alphanumeric characters",
"placeholder": "Type your text here",
"constraints": {
"required": true,
"validations": [
{
"regex": "^[a-z0-9A-Z]{1,30}$",
"message": "Only 1-30 characters alphanumeric characters are allowed."
}
]
},
"visible": true
}
],
"steps": [],
"outputs": {
"location": "[location()]",
"textBox": "[basics('textBox')]"
}
}
}
يجب أن يتواجد تلميح الأدوات بقيمة
اسم الاختبار: يجب أن تكون التلميحات موجودة
يتحقق هذا الاختبار من وجود خاصية toolTip
وتحتوي على قيمة.
المثال التالي يفشل.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{
"name": "comboBox",
"type": "Microsoft.Common.DropDown",
"label": "Example drop down",
"toolTip": ""
}
],
"steps": [],
"outputs": {
"location": "[location()]",
"comboBox": "[basics('comboBox')]"
}
}
}
مر المثال التالي.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{
"name": "comboBox",
"type": "Microsoft.Common.DropDown",
"label": "Example drop down",
"toolTip": "This is a tool tip"
}
],
"steps": [],
"outputs": {
"location": "[location()]",
"comboBox": "[basics('comboBox')]"
}
}
}
لا تقم بتعيين اسم مستخدم افتراضي
اسم الاختبار: يجب ألا تحتوي أسماء المستخدمين على اسم افتراضي
يتحقق الاختبار مما إذا كانت هناك مجموعة defaultValue
لـ Microsoft.Compute.UserNameTextBox .
المثال التالي فشل بسبب توفير defaultValue
.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{
"name": "userNameBox",
"type": "Microsoft.Compute.UserNameTextBox",
"label": "User name",
"defaultValue": "admin",
"toolTip": "Enter your user name",
"osPlatform": "Windows"
}
],
"steps": [],
"outputs": {
"location": "[location()]",
"userNameBox": "[basics('userNameBox')]"
}
}
}
مر المثال التالي.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{
"name": "userNameBox",
"type": "Microsoft.Compute.UserNameTextBox",
"label": "User name",
"toolTip": "Enter your user name",
"osPlatform": "Windows"
}
],
"steps": [],
"outputs": {
"location": "[location()]",
"userNameBox": "[basics('userNameBox')]"
}
}
}
استخدم الرسالة مع عمليات التحقق من الصحة
اسم الاختبار: يجب أن تحتوي عمليات التحقق على رسالة
يتحقق هذا الاختبار من أن أي validations
في createUiDefinition.json يتضمن message
.
المثال التالي فشل لأن التحقق من الصحة regex
لا يحتوي على message
.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{
"name": "textBox",
"type": "Microsoft.Common.TextBox",
"label": "Text box",
"toolTip": "Type 1-30 alphanumeric characters",
"placeholder": "Type your text here",
"constraints": {
"required": true,
"validations": [
{
"regex": "^[a-z0-9A-Z]{1,30}$"
}
]
},
"visible": true
}
],
"steps": [],
"outputs": {
"location": "[location()]",
"textBox": "[basics('textBox')]"
}
}
}
مر المثال التالي.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{
"name": "textBox",
"type": "Microsoft.Common.TextBox",
"label": "Text box",
"toolTip": "Type 1-30 alphanumeric characters",
"placeholder": "Type your text here",
"constraints": {
"required": true,
"validations": [
{
"regex": "^[a-z0-9A-Z]{1,30}$",
"message": "Only 1-30 characters alphanumeric characters are allowed."
}
]
},
"visible": true
}
],
"steps": [],
"outputs": {
"location": "[location()]",
"textBox": "[basics('textBox')]"
}
}
}
يجب أن تتطابق أحجام الجهاز الظاهري
اسم الاختبار: يجب أن تتطابق أحجام VM مع النموذج
يتحقق هذا الاختبار من أن Microsoft.Compute.SizeSelector موجود في createUiDefinition.json outputs
وقسم النموذج الرئيسي parameters
. يجب أن تتطابق معلمات النموذج الرئيسية التي تحدد defaultValue
مع قيمة في عنصر التحكم allowedSizes
.
يتحقق هذا الاختبار من النموذج الرئيسي وملف createUiDefinition.json . يظهر مثال لملف createUiDefinition.json بعد أمثلة النموذج الرئيسي.
المثال التالي فشل لأن النموذج الرئيسي defaultValue
لا يتطابق مع قيمة في allowedSizes
.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"location": {
"type": "string"
},
"vmSize": {
"type": "string",
"defaultValue": "Standard_D9"
}
},
"resources": [],
"outputs": {
"location": {
"type": "string",
"value": "[parameters('location')]"
},
"vmSize": {
"type": "string",
"value": "[parameters('vmSize')]"
}
}
}
المثال التالي يمر لأن النموذج الرئيسي defaultValue
يطابق قيمة في allowedSizes
.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"location": {
"type": "string"
},
"vmSize": {
"type": "string",
"defaultValue": "Standard_D3"
}
},
"resources": [],
"outputs": {
"location": {
"type": "string",
"value": "[parameters('location')]"
},
"vmSize": {
"type": "string",
"value": "[parameters('vmSize')]"
}
}
}
الملف createUiDefinition.json لهذا المثال:
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{
"name": "vmSize",
"type": "Microsoft.Compute.SizeSelector",
"label": "VM Size",
"toolTip": "Select a virtual machine size",
"recommendedSizes": [
"Standard_D1"
],
"constraints": {
"allowedSizes": [
"Standard_D1",
"Standard_D2",
"Standard_D3"
]
},
"osPlatform": "Windows",
"visible": true
}
],
"steps": [],
"outputs": {
"location": "[location()]",
"vmSize": "[basics('vmSize')]"
}
}
}
الخطوات التالية
- لإنشاء واجهة مستخدم مدخل Azure، راجع CreateUiDefinition.json لتجربة إنشاء تطبيق Azure المُدار .
- لاستخدام بينة الاختبار المعزولة لإنشاء تعريف واجهة المستخدم، راجع اختبار واجهة البوابة الإلكترونية لتطبيقات Azure المُدارة .
- لمزيد من المعلومات حول عناصر تحكم واجهة المستخدم، راجع عناصر CreateUiDefinition و وظائف CreateUiDefinition .
- لمعرفة المزيد حول اختبارات قالب ARM، راجع حالات الاختبار لقوالب ARM .