⭐⭐ انضم إلينا في SNIA SDC لحضور مختبر SMB3 IO (28 سبتمبر - 1 أكتوبر 2026)، واطّلع على فعاليات قابلية التشغيل البيني القادمة
توفر مجموعات اختبار بروتوكولات Windows اختبارًا للتشغيل البيني مقابل تنفيذ مواصفات Windows المفتوحة بما في ذلك خدمات الملفات وإدارة الهوية وسطح المكتب البعيد وغيرها.
تم تطوير مجموعات اختبار بروتوكولات Microsoft في الأصل للاختبار الداخلي لمواصفات Microsoft المفتوحة، وقد استُخدمت على نطاق واسع خلال Plugfests ومختبرات التشغيل البيني للاختبار مقابل عمليات التنفيذ من الشركاء. تقيّم مجموعة الاختبار ما إذا كان تنفيذ بروتوكول أو عائلة بروتوكولات يستوفي متطلبات معينة للتشغيل البيني. لا تغطي مجموعات الاختبار كل متطلبات البروتوكول ولا تعتمد بأي شكل من الأشكال أي تنفيذ، حتى لو نجحت جميع الاختبارات. ومع ذلك، توفر كل مجموعة اختبار للمستخدمين مؤشرًا مفيدًا على التشغيل البيني.
تحتوي مجموعات اختبار بروتوكولات Windows على المكونات التالية:
تستند مجموعات اختبار بروتوكولات Windows إلى .NET لذا يمكن تطويرها وتشغيلها عبر منصات مختلفة. يجب تثبيت البرامج المدرجة أدناه بناءً على غرض الاختبار الخاص بك، بما في ذلك تبعياتها الخاصة.
.NET والمكونات ذات الصلة
a. بالنسبة إلى Windows وLinux وmacOS، ثبّت .NET 8.0 SDK لبناء مجموعات الاختبار أو تشغيلها.
b. لمن يعملون على Windows ويفضلون بيئة تطوير متكاملة، ثبّت Visual Studio 2022 أو أحدث (يُوصى بـ Visual Studio 2022 Community)، مع هذه المكونات الفردية من المثبّت:
| القسم | المكون الفردي في Visual Studio 2022 | تشغيل مجموعات اختبار بروتوكولات Windows | بناء مجموعات اختبار بروتوكولات Windows من الكود المصدري |
|---|---|---|---|
| .NET | .NET SDK | مطلوب | مطلوب |
| Compilers, build tools, and runtime | C# and Visual Basic Roslyn compilers | مطلوب | |
| Compilers, build tools, and runtime | MSVC v143 - VS 2022 C++ x64/x86 build tools (Latest) | مطلوب1 | |
| Compilers, build tools, and runtime | C++/CLI support for v143 build tools (Latest) | مطلوب1 | |
| Compilers, build tools, and runtime | C++ 2022 Redistributable Update | مطلوب1 | مطلوب1 |
| Development Activities | C++ core features | مطلوب1 | |
| SDKs, libraries, and frameworks | Windows 10 SDK (10.0.19041.0) | مطلوب1 |
ملاحظة:
[1]: هذا المكون الفردي مطلوب من قِبل ADFamily وMS-SMBD اللذين يحتويان على كود C++.
Protocol Test Framework v2.6 (build 2.6.1)
تتم الإشارة إلى Protocol Test Framework من قِبل مشاريع ProtoSDK وTestSuites كـ حزم NuGet.
من NetworkDirect_DDK.zip استخرج ndspi.h وndstatus.h إلى مسار المشروع ProtoSDK\RDMA\include. هذا لبناء مجموعة اختبار SMBD.
هذا مطلوب فقط عندما يرغب المستخدم في استخدام PowerShell Core Remoting over SSH.
هذا مطلوب فقط عندما يرغب المستخدم في استخدام PowerShell Core Remoting over SSH لمنصة Windows.
هذا مطلوب فقط عندما يرغب المستخدم في استخدام تنفيذ PowerShell على Windows Server 2012R2 لـ ISutCommonControlAdapter في CommonTestSuite.ptfconfig.
a. إذا اخترت تنفيذ PowerShell لـ ISutCommonControlAdapter في بيئة نطاق حيث يعمل DC على Windows Server 2012R2، للحصول على SID من DC، تحتاج إلى تثبيت WMF 5.1 على DC، وبالنسبة لإصدارات Windows Server الأخرى الأحدث من Windows Server 2012R2، لا تحتاج إلى تثبيت WMF 5.1 على DC.
b. إذا اخترت تنفيذ PowerShell لـ ISutCommonControlAdapter على منصات Windows (بما في ذلك Windows Server 2012R2 والإصدارات الأحدث) في بيئة مجموعة عمل، فلا تحتاج إلى تثبيت WMF 5.1 على SUT.
c. إذا اخترت التنفيذ المُدار لـ ISutCommonControlAdapter على منصات Windows (بما في ذلك Windows Server 2012R2 والإصدارات الأحدث)، فسيستخدم استعلامات LDAP للحصول على SID ويدعم بيئة النطاق فقط.
إذا كنت تعمل على Windows، يمكنك استخدام النص البرمجي في مجلد InstallPrerequisites لتنزيل هذه البرامج وتثبيتها تلقائيًا.
نصائح عند استخدام النص البرمجي في مجلد InstallPrerequisites:
يتطلب النص البرمجي اتصالاً بالإنترنت لتنزيل بعض التبعيات.
تُستخدم المعلمة Category لتحديد مجموعة الأدوات التي يجب تنزيلها وتثبيتها، بناءً على أسماء مجموعات الاختبار المختلفة، مثل FileServer وKerberos وSMBD وRDP وBranchCache وADFamily وAZOD وADFSPIP وADOD. الفئات معرّفة في PrerequisitesConfig.xml ويمكنك تحديث ملف التكوين هذا لتحقيق المتطلبات المطلوبة.
تُستخدم المعلمة ConfigPath لتحديد مسار ملف تكوين المتطلبات الأساسية، والقيمة الافتراضية هي ".\PrerequisitesConfig.xml".
لتشغيل النص البرمجي لمجموعة اختبار FileServer، على سبيل المثال، افتح Windows PowerShell، ونفّذ الأوامر أدناه في نافذة PowerShell:
cd WindowsProtocolTestSuites\InstallPrerequisites
.\InstallPrerequisites.ps1 -Category FileServer -ConfigPath ".\PrerequisitesConfig.xml"
Set-ExecutionPolicy RemoteSigned
يمكنك تشغيل الأمر أدناه للتحقق مما إذا كانت Execution Policy مضبوطة بشكل صحيح:
Get-ExecutionPolicy
ثم أعد تشغيل النص البرمجي.
بعد استنساخ نسخة من هذا المستودع، يمكنك تشغيل build.ps1 في PowerShell أو build.sh في shell لكل مجموعة اختبار على حدة بعد تثبيت جميع البرامج المطلوبة للبناء المدرجة في المتطلبات الأساسية.
على سبيل المثال، إذا كنت تريد بناء مجموعة اختبار FileServer:
cd WindowsProtocolTestSuites\TestSuites\FileServer\src
build.ps1
بعد نجاح البناء، يجب إنشاء بنية المجلد الشائعة في المجلد WindowsProtocolTestSuite\drop\TestSuites\[TestSuiteName]\.
Bin: جميع الملفات الثنائية المبنية بما في ذلك ProtoSDK والمحولات ومجموعات الاختبار.Batch: ملفات دفعية (.ps1، .sh) يمكن استخدامها لتشغيل الاختبارات.Scripts: نصوص برمجية يمكن استخدامها لتكوين بيئة الاختبار.Utils: بعض الأدوات المساعدة التي يمكن استخدامها في الاختبارات.بدلاً من ذلك، يمكنك تنزيل أرشيف مجموعة الاختبار المبني مسبقًا من Releases.
قبل تشغيل مجموعة اختبار، تحتاج إلى القيام بأحد ما يلي:
على macOS، تستخدم مجموعة اختبار FileServer فئتي AesCcm وAesGcm اللتين تتطلبان OpenSSL، لذا إذا لم يكن هناك OpenSSL 1.1 على macOS الخاص بك، فيرجى تثبيت OpenSSL 1.1 وتعيين متغير البيئة كما يلي قبل تشغيل مجموعة اختبار FileServer على macOS،
brew install [email protected]
export DYLD_LIBRARY_PATH="/usr/local/opt/[email protected]/lib:$DYLD_LIBRARY_PATH"
ملاحظة:
brew مثبتًا على macOS الخاص بك، يمكنك تثبيته وفقًا لـ brew.DYLD_LIBRARY_PATH أم لا. بمجرد تثبيت OpenSSL 1.1 على macOS الخاص بك، يكون موقع مكتبة التشفير هو /usr/local/Cellar/[email protected]/1.1.1m/lib/libcrypto.1.1.dylib ويرتبط /usr/local/opt/openssl بالمجلد /usr/local/Cellar/[email protected]/1.1.1m افتراضيًا.في مجلد Batch ضمن المسار الجذر لمجموعة الاختبار، هناك عدة نصوص برمجية يمكنك استخدامها لتشغيل الاختبارات.
تشغيل جميع حالات الاختبار
نفّذ RunAllTestCases.ps1 في PowerShell، أو RunAllTestCases.sh في shell مباشرةً.
تشغيل حالات الاختبار حسب عوامل التصفية
نفّذ RunTestCasesByFilter.ps1 -Filter [your filter expression] في PowerShell، أو RunTestCasesByFilter.sh [your filter expression] في shell مباشرةً.
على سبيل المثال، يمكنك تشغيل الأمر أدناه إذا كنت تريد تشغيل حالات الاختبار بفئة الاختبار BVT وSMB311:
RunTestCasesByFilter.sh "TestCategory=BVT&TestCategory=SMB311"
لمزيد من المعلومات حول كيفية إنشاء تعبير التصفية، يمكنك الرجوع إلى تفاصيل خيار التصفية.
تشغيل تجريبي
إذا كنت تريد سرد حالات الاختبار قبل تشغيلها فعليًا، يمكنك إضافة مفتاح -DryRun إلى نصوص .ps1 البرمجية أو تمرير سلسلة غير فارغة كوسيطة أخيرة إلى نصوص .sh البرمجية.
على سبيل المثال، يمكنك تشغيل الأمر أدناه إذا كنت تريد سرد حالات الاختبار بفئة الاختبار BVT وSMB311:
RunTestCasesByFilter.sh "TestCategory=BVT&TestCategory=SMB311" "list"
Protocol Test Manager Service (PTMService) هي أداة تطبيق صفحة ويب واحدة تساعدك في تكوين وتشغيل حالات الاختبار في مجموعات الاختبار. يدعم PTMService منصات متعددة، بما في ذلك Windows وLinux وmacOS. للبدء مع PTMService، يمكنك الرجوع إلى PTMService Wiki.
بالنسبة لتكوينات FileServer، يرتبط إعداد واجهة PTM Enable Parallel Test Execution بخاصية .ptfconfig المؤهلة بالكامل Common.PTF.LogProfileParserPatch.Enabled. اضبطها على true لتمكين التنفيذ المتوازي المرحلي ضمن تشغيل اختبار FileServer.
يمكنك إعداد بيئة الاختبار وتكوين مجموعة الاختبار وفقًا لـ دليل المستخدم الخاص بها.
لكل مجموعة اختبار دليل المستخدم الخاص بها في مجلد WindowsProtocolTestSuites\TestSuites\[TestSuiteName]\docs.
هناك نوعان آخران من المستندات في المجلد نفسه:
يمكنك العثور على دليل المساهمة هنا.
مجموعات اختبار بروتوكولات Windows تحت ترخيص MIT.
الموارد التالية مخصصة لأخبار مجموعة اختبار بروتوكولات Windows والمناقشة والدعم:
اعتمد هذا المشروع مدونة قواعد السلوك للمصادر المفتوحة من Microsoft. لمزيد من المعلومات، اطّلع على الأسئلة الشائعة حول مدونة قواعد السلوك أو اتصل بـ [email protected] لأي أسئلة أو تعليقات إضافية.