टेस्ट इंजन और नाटककार एकीकरण (बहिष्कृत)

नोट

टेस्ट इंजन को बहिष्कृत कर दिया गया है और भविष्य में रिलीज में हटा दिया जाएगा। Power Platform और Dynamics 365 सेवाओं में परीक्षण स्वचालन क्षमताओं के लिए Power Platform Playwright नमूने का उपयोग करें.

अवलोकन

Power Apps टेस्ट इंजन अपनी मुख्य ब्राउज़र स्वचालन तकनीक के रूप में Playwright का उपयोग करता है। यह एकीकरण टेस्ट इंजन को शक्तिशाली, विश्वसनीय और क्रॉस-ब्राउज़र परीक्षण क्षमताएं प्रदान करता है, साथ ही अनुप्रयोगों के लिए परीक्षण निर्माण को सरल बनाने के लिए अमूर्तता की कई परतें जोड़ता है। Power Platform

टेस्ट इंजन किस प्रकार प्लेराइटर को बेहतर बनाता है

जबकि Playwright उत्कृष्ट ब्राउज़र स्वचालन क्षमताएं प्रदान करता है, टेस्ट इंजन इन क्षमताओं को विशेष रूप से Power Platform के लिए विस्तारित करता है:

परीक्षण इंजन संवर्द्धन विवरण
ऐप-स्तरीय सार-संक्षेप टेस्ट इंजन DOM तत्वों के बजाय ऐप-स्तरीय ऑब्जेक्ट्स के साथ काम करता है, जिससे परीक्षण UI परिवर्तनों के प्रति अधिक लचीला हो जाता है
Power Fx एकीकरण टेस्ट इंजन समर्थन जोड़ता है, जिससे परीक्षण लेखन के लिए कम-कोड दृष्टिकोण सक्षम होता है Power Fx
अंतर्निहित प्रमाणीकरण पूर्वनिर्मित प्रमाणीकरण प्रणाली Microsoft Entra और सशर्त पहुँच परिदृश्य को संभालते हैं
Dataverse एकीकरण Dataverse के साथ सीधा एकीकरण व्यापक एंड-टू-एंड परीक्षण की अनुमति देता है
विशिष्ट प्रदाता कैनवास ऐप और मॉडल-संचालित ऐप के लिए अनुकूलित प्रदाता

तकनीकी कार्यान्वयन

निम्नलिखित अनुभागों में बताया गया है कि टेस्ट इंजन किस प्रकार प्लेराइट के ब्राउज़र स्वचालन आधार पर निर्माण करता है और इसे Power Platform-विशिष्ट अमूर्तताओं के साथ एकीकृत करता है, जिससे मजबूत और रखरखाव योग्य परीक्षण स्वचालन सक्षम होता है।

ब्राउज़र स्वचालन आधारशिला

टेस्ट इंजन सुसंगत ब्राउज़र स्वचालन के लिए प्लेराइट की मुख्य क्षमताओं का उपयोग करता है:

  • क्रोम, फ़ायरफ़ॉक्स और Microsoft Edge के लिए क्रॉस-ब्राउज़र समर्थन
  • विश्वसनीय प्रतीक्षा तंत्र जो स्वचालित रूप से तत्वों के तैयार होने की प्रतीक्षा करते हैं
  • API प्रतिक्रियाओं का अनुकरण करने के लिए नेटवर्क अनुरोध अवरोधन
  • परीक्षण विफलताओं का निदान करने के लिए ट्रेसिंग और डिबगिंग उपकरण

टेस्ट इंजन का वास्तुशिल्प एकीकरण

  • प्रदाता परत: टेस्ट इंजन में प्रदाता परत ब्राउज़र व्यवहार को नियंत्रित करने के लिए सीधे Playwright API के साथ इंटरफेस करती है
  • ऑब्जेक्ट मॉडल: कच्चे DOM तत्वों के साथ काम करने के बजाय, टेस्ट इंजन एप्लिकेशन-विशिष्ट ऑब्जेक्ट मॉडल पर मैप करता है
  • Power Fx परत: Power Fx में लिखे गए परीक्षण चरणों की व्याख्या प्रदाता परत के माध्यम से की जाती है और उन्हें निष्पादित किया जाता है

प्रमुख तकनीकी विशेषताएं

निम्नलिखित अनुभाग उन महत्वपूर्ण तकनीकी विशेषताओं पर प्रकाश डालते हैं जिन्हें टेस्ट इंजन Playwright के शीर्ष पर जोड़ता है, जिसमें ऐप-विशिष्ट चयनकर्ता, ब्राउज़र संदर्भ प्रबंधन और उन्नत परिदृश्यों के लिए Playwright फ़ंक्शन तक सीधी पहुंच शामिल है।

ऐप-विशिष्ट चयनकर्ता

टेस्ट इंजन CSS या XPath चयनकर्ताओं के बजाय ऐप-विशिष्ट चयनकर्ताओं का उपयोग करता है:

# Test Engine (using app-level selectors)
- testSteps: |
    Select(Button1)

# Equivalent in raw Playwright (using DOM selectors)
    Select(Button1)
# page.locator('div[data-control-name="Button1"]').click();

ब्राउज़र संदर्भ प्रबंधन

परीक्षण इंजन विभिन्न प्रमाणीकरण परिदृश्यों का समर्थन करने के लिए ब्राउज़र संदर्भों का प्रबंधन करता है:

# Test Engine handles browser context automatically
pac test run `
   --provider canvas `
   --test-plan-file testplan.te.yaml `
   --tenant $tenantId `
   --environment-id $environmentId

प्रत्यक्ष नाटककार कार्य

जबकि टेस्ट इंजन कई प्लेराइटर इंटरैक्शन को अमूर्त करता है, ऐसे परिदृश्य हैं जहां प्लेराइटर क्षमताओं तक सीधे पहुंच मूल्यवान हो सकती है। टेस्ट इंजन कई पूर्वावलोकन फ़ंक्शन प्रदान करता है जो आपके परीक्षण चरणों के भीतर से Playwright के साथ सीधे बातचीत को सक्षम करता है। Power Fx

टेस्ट इंजन में प्लेराइट फ़ंक्शन का उपयोग करना

टेस्ट इंजन में निम्नलिखित पूर्वावलोकन फ़ंक्शन शामिल हैं जो आपको प्लेराइट की तत्व चयन क्षमताओं को लागू करने की अनुमति देते हैं:

फ़ंक्शन विवरण उदाहरण
पूर्वावलोकन.नाटककारकार्रवाई CSS या DOM चयनकर्ताओं का उपयोग करके तत्वों पर कोई क्रिया निष्पादित करें Preview.PlaywrightAction("//button", "click")
देखें सामान्य नाटककार कार्रवाई संचालन
पूर्वावलोकन.PlaywrightActionValue एक ऐसी कार्रवाई निष्पादित करें जिसके लिए मान पैरामीटर की आवश्यकता हो Preview.PlaywrightActionValue("//input[@data-id='1']", "fill", "Hello")
देखें सामान्य नाटककार कार्रवाई मूल्य संचालन
पूर्वावलोकन.नाटककारस्क्रिप्ट Playwright के साथ इंटरफेस करने वाली कस्टम C# स्क्रिप्ट निष्पादित करें Preview.PlaywrightScript("sample.csx")
देखें उन्नत: कस्टम प्लेराइटर स्क्रिप्ट
पूर्वावलोकन.रोकें परीक्षण निष्पादन रोकें और Playwright Inspector प्रदर्शित करें Preview.Pause()

नोट

इन पूर्वावलोकन फ़ंक्शनों का उपयोग करने के लिए, आपको अपने परीक्षण सेटिंग अनुभाग में अनुमत सूची में पूर्वावलोकन फ़ंक्शनों को जोड़ना होगा।

सामान्य नाटककार क्रिया संचालन

Preview.PlaywrightAction के साथ निम्नलिखित ऑपरेशन किए जा सकते हैं:

कार्रवाई विवरण उदाहरण
click क्लिक इवेंट का उपयोग करके तत्व का चयन Preview.PlaywrightAction("//button[@id='submit']", "click")
exists जाँचें कि क्या कोई तत्व मौजूद है Preview.PlaywrightAction("//div[@class='error-message']", "exists")
wait किसी तत्व के उपलब्ध होने की प्रतीक्षा करें Preview.PlaywrightAction("//table[@data-loading='false']", "wait")

सामान्य नाटककार क्रिया मूल्य संचालन

Preview.PlaywrightActionValue के साथ निम्नलिखित ऑपरेशन किए जा सकते हैं:

कार्रवाई विवरण उदाहरण
fill फॉर्म फ़ील्ड को टेक्स्ट से भरें Preview.PlaywrightActionValue("//input[@name='search']", "fill", "Product name")
select चयन सूची से कोई विकल्प चुनें Preview.PlaywrightActionValue("//select", "select", "Option2")
setAttribute किसी तत्व पर विशेषता सेट करें Preview.PlaywrightActionValue("//div", "setAttribute", "data-custom='value'")

प्रत्यक्ष प्लेराइटर फ़ंक्शन का उपयोग कब करें

जबकि ऐप-स्तरीय अमूर्तता को प्राथमिकता दी जाती है, प्रत्यक्ष प्लेराइटर फ़ंक्शन इन परिदृश्यों में उपयोगी होते हैं:

  • जटिल UI इंटरैक्शन मानक टेस्ट इंजन फ़ंक्शन द्वारा कवर नहीं किए गए
  • तृतीय-पक्ष घटक ऐप्लिकेशन के भीतर जिन्हें विशेष हैंडलिंग की आवश्यकता होती है Power Platform
  • जटिल परीक्षण परिदृश्यों को डीबग करना जहाँ अधिक नियंत्रण की आवश्यकता होती है
  • तत्व स्थितियों या गुणों का उन्नत सत्यापन

उदाहरण: संयुक्त दृष्टिकोण

यह उदाहरण ऐप-स्तरीय अमूर्तता को प्रत्यक्ष प्लेराइटर क्रियाओं के साथ संयोजित करने का प्रदर्शन करता है:

testSteps: |
  # Use app-level abstraction for Power Apps control
  Select(SubmitButton);
  
  # Use direct Playwright action for a third-party component
  Preview.PlaywrightAction("//div[@class='custom-calendar']//button[@data-day='15']", "click");
  
  # Wait for a specific condition using Playwright
  Preview.PlaywrightAction("//div[@data-status='complete']", "wait");
  
  # Resume using app-level abstractions
  Assert(Label1.Text = "Submission Complete");

उन्नत: कस्टम प्लेराइटर स्क्रिप्ट

अत्यधिक विशिष्ट परिदृश्यों के लिए, आप कस्टम प्लेराइटर स्क्रिप्ट बना सकते हैं:

  1. अपने कस्टम Playwright तर्क के साथ एक .csx फ़ाइल बनाएँ
  2. संदर्भ आवश्यक नाटककार सभाएँ
  3. आवश्यक वर्ग संरचना को कार्यान्वित करें
  4. अपने परीक्षण चरणों से स्क्रिप्ट को कॉल करें
// sample.csx
#r "Microsoft.Playwright.dll"
#r "Microsoft.Extensions.Logging.dll"
using Microsoft.Playwright;
using Microsoft.Extensions.Logging;

public class PlaywrightScript {
    public static void Run(IBrowserContext context, ILogger logger) {
        Execute(context, logger).Wait();
    }

    public static async Task Execute(IBrowserContext context, ILogger logger) {
        var page = context.Pages.First();
        // Custom Playwright logic here
    }
}

नोट

पूर्वावलोकन.PlaywrightScript केवल स्रोत से निर्मित टेस्ट इंजन के डीबग बिल्ड के लिए कार्यान्वित किया गया है, न कि रिलीज़ किए गए pac test run टूल में।

विकास प्रक्रिया के साथ एकीकरण

निम्नलिखित अनुभागों में बताया गया है कि टेस्ट इंजन और प्लेराइट का उपयोग स्थानीय विकास और CI/CD दोनों वातावरणों में कैसे किया जा सकता है, जो इंटरैक्टिव डिबगिंग से लेकर स्वचालित पाइपलाइन निष्पादन तक के वर्कफ़्लो की एक श्रृंखला का समर्थन करता है।

स्थानीय विकास

स्थानीय विकास के लिए, टेस्ट इंजन एक संपूर्ण वातावरण प्रदान करता है:

  • UI दृश्यता के साथ स्थानीय ब्राउज़र निष्पादन
  • चरण-दर-चरण परीक्षण निष्पादन
  • विस्तृत लॉग और निदान

सीआई/सीडी एकीकरण

CI/CD परिवेशों में, टेस्ट इंजन प्लेराइट को हेडलेस मोड में चला सकता है:

# Example Azure DevOps pipeline step
- task: PowerShell@2
  displayName: 'Run Test Engine Tests'
  inputs:
    script: |
      pac test run `
        --provider canvas `
        --test-plan-file "$(Build.SourcesDirectory)/tests/testplan.te.yaml" `
        --tenant "$(TenantId)" `
        --environment-id "$(EnvironmentId)"

सर्वश्रेष्ठ व्यवहार

टेस्ट इंजन के प्लेराइट एकीकरण के साथ काम करते समय:

  • DOM तत्वों के बजाय ऐप-स्तरीय ऑब्जेक्ट्स पर ध्यान केंद्रित करें
  • जटिल तर्क के लिए कच्चे जावास्क्रिप्ट के बजाय Power Fx फ़ंक्शनों का उपयोग करें
  • अंतर्निहित प्रमाणीकरण तंत्र का लाभ उठाएँ
  • ऐसे परिदृश्यों के लिए प्रत्यक्ष Playwright फ़ंक्शन आरक्षित करें जहाँ ऐप-स्तरीय अमूर्तता अपर्याप्त है
  • पठनीयता और रखरखाव के लिए अनुकूलन करने हेतु जनरेट किए गए परीक्षणों की समीक्षा करें