แชร์ผ่าน


ความสามารถในการขยาย Test Engine (ตัวอย่าง)

หมายเหตุ

คุณลักษณะการแสดงตัวอย่างไม่ได้มีไว้สำหรับการนำไปใช้งานจริง และอาจมีการจำกัดฟังก์ชันการทำงาน คุณลักษณะเหล่านี้สามารถใช้ได้ก่อนการเปิดตัวอย่างเป็นทางการ เพื่อให้ลูกค้าสามารถเข้าใช้งานได้ก่อนเวลาและให้ข้อคิดเห็น

ภาพรวม

Power Apps Test Engine มีกรอบการทำงานแบบขยายได้ที่แข็งแกร่งซึ่งช่วยให้สามารถขยายความสามารถในการทดสอบหลักได้ผ่านจุดขยายต่างๆ บทความนี้จะอธิบายว่า:

  • Microsoft ลงนามและตรวจสอบส่วนขยายของบุคคลที่หนึ่งอย่างไร
  • วิธีการทำงานของโมเดลการขยายได้โดยใช้ Managed Extensibility Framework (MEF)
  • ตัวเลือกสำหรับองค์กรในการสร้างส่วนขยายของตนเอง

ส่วนประกอบที่ลงนามโดย Microsoft

สำคัญ

ในระหว่างช่วงการแสดงตัวอย่างสาธารณะ คำสั่ง pac test run จะโหลดเฉพาะส่วนขยายที่ลงนามโดย Microsoft เท่านั้น การออกแบบนี้ช่วยให้มั่นใจถึงความปลอดภัย ความเสถียร และประสิทธิภาพของแพลตฟอร์ม Test Engine

Microsoft สร้าง ลงนาม และตรวจสอบส่วนประกอบของบุคคลที่หนึ่งเพื่อให้แน่ใจว่าเป็นไปตามมาตรฐานคุณภาพและความปลอดภัย ส่วนประกอบเหล่านี้ได้แก่:

  • ผู้ให้บริการการตรวจสอบสิทธิ์หลัก
  • ผู้ให้บริการแอป Canvas และแอปที่ขับเคลื่อนด้วยโมเดล
  • ฟังก์ชันและการกระทำมาตรฐาน Power Fx

กรอบการทำงานด้านการขยาย (MEF)

Test Engine ใช้ Managed Extensibility Framework (MEF) เพื่อเปิดใช้งานสถาปัตยกรรมแบบปลั๊กอิน กรอบงานนี้รองรับส่วนขยายสามประเภทหลัก:

ส่วนขยายการตรวจสอบสิทธิ์

ส่วนขยายการตรวจสอบสิทธิ์ช่วยให้สามารถยืนยันตัวตนได้หลายวิธีด้วย Power Platform:

  • การตรวจสอบสถานะการจัดเก็บข้อมูล - วิธีการตรวจสอบสิทธิ์ตามเบราว์เซอร์เริ่มต้น
  • การตรวจสอบสิทธิ์ตามใบรับรอง - สำหรับการดำเนินการทดสอบแบบไม่โต้ตอบ
  • ผู้ให้บริการการตรวจสอบสิทธิ์แบบกำหนดเอง - สำหรับสถานการณ์การตรวจสอบสิทธิ์เฉพาะทาง

สำหรับข้อมูลเพิ่มเติม โปรดดู การตรวจสอบสิทธิ์ในเครื่องมือทดสอบ

ส่วนขยายของผู้ให้บริการ

ส่วนขยายของผู้ให้บริการช่วยให้สามารถทดสอบแอปพลิเคชันประเภทต่างๆ ได้:

  • ผู้ให้บริการแอป Canvas - สำหรับการทดสอบ Power Apps แอปพลิเคชัน Canvas
  • ผู้ให้บริการแอปที่ขับเคลื่อนด้วยโมเดล - สำหรับการทดสอบ Dataverse แอปที่ขับเคลื่อนด้วยโมเดล
  • Power Fx ผู้ให้บริการ - สำหรับการดำเนินการ Power Fx คำสั่งอย่างอิสระ
  • ผู้ให้บริการพอร์ทัล - สำหรับการดำเนินการอัตโนมัติใน Power Apps

สำหรับข้อมูลเพิ่มเติม โปรดดู แอปพลิเคชัน Canvas, แอปพลิเคชันที่ขับเคลื่อนด้วยโมเดล และ Dataverse ส่วนขยาย

Power Fx ส่วนขยาย

Power Fx ส่วนขยายเพิ่มความสามารถในการทดสอบใหม่ผ่านฟังก์ชันที่กำหนดเอง:

  • ฟังก์ชันที่ผู้ใช้กำหนด - ฟังก์ชันโค้ดต่ำที่กำหนดไว้ในแผนการทดสอบ
  • การใช้งานฟังก์ชัน ReflectionFunction ของ C# - ฟังก์ชันที่กำหนดเองที่นำไปใช้ในโมดูล C#

สำหรับข้อมูลเพิ่มเติม โปรดดู Power Fx ฟังก์ชัน และ การใช้งาน C# ReflectionFunction

ตัวเลือกการพัฒนาส่วนขยาย

องค์กรต่างๆ มีตัวเลือกมากมายสำหรับการขยาย Test Engine:

การใช้เวอร์ชันโอเพนซอร์ส

Power Apps Test Engine มีให้ใช้งานเป็นโครงการโอเพ่นซอร์สภายใต้ใบอนุญาต MIT Microsoft ของบุคคลที่หนึ่ง ทีมบุคคลที่สาม และองค์กรต่างๆ สามารถ:

  • สร้างผู้ให้บริการใหม่สำหรับสถานการณ์การทดสอบเฉพาะทาง
  • พัฒนากลไกการตรวจสอบสิทธิ์แบบกำหนดเอง
  • สร้างการใช้งาน ReflectionFunction ของ C# ใหม่
  • สร้างโมดูลที่ขยายฟังก์ชันหลัก
  • ส่งผลงานเพื่อพิจารณาในผลิตภัณฑ์หลัก

Power Fx ฟังก์ชันที่ผู้ใช้กำหนด

สำหรับสถานการณ์ที่ง่ายกว่า คุณสามารถสร้างฟังก์ชันที่ผู้ใช้กำหนดได้โดยตรงในแผนการทดสอบของคุณ:

testSuite:
  testCases:
    - testCaseName: "Test with custom functions"
      userDefineFunctions:
        - name: "FormatDateString"
          parameters: [date]
          expression: "Text(date, 'yyyy-MM-dd')"
      steps:
        # Use the custom function in your test steps
        - action: PowerFxTestStep
          expression: FormatDateString(Now())

ฟังก์ชัน C# Power Fx ที่กำหนดเองพร้อม ReflectionFunction

สำหรับสถานการณ์ที่ซับซ้อนมากขึ้น องค์กรสามารถพัฒนาฟังก์ชัน C# แบบกำหนดเองได้โดยการนำคลาส ReflectionFunction มาใช้งานและลงทะเบียนผ่านโมดูล:

// Define your function class
public class SampleFunction : ReflectionFunction
{
    public SampleFunction() : base(DPath.Root.Append(new DName("Preview")), "Sample", FormulaType.Blank)
    {
    }

    public BlankValue Execute()
    {
        Console.WriteLine("Sample function executed");
        return BlankValue.NewBlank();
    }
}

// Register your function in a module
[Export(typeof(ITestEngineModule))]
public class TestEngineSampleModule : ITestEngineModule
{
    public void RegisterPowerFxFunction(PowerFxConfig config, ITestInfraFunctions testInfraFunctions, 
        ITestWebProvider testWebProvider, ISingleTestInstanceState singleTestInstanceState, 
        ITestState testState, IFileSystem fileSystem)
    {
        config.AddFunction(new SampleFunction());
    }
    
    // Implement other required interface methods...
}

ความร่วมมือกับทีม Test Engine

องค์กรที่พัฒนาส่วนขยายที่มีคุณค่าโดยใช้ Test Engine โอเพ่นซอร์สสามารถพิจารณาสร้างคำขอการดึงสำหรับส่วนขยายของตนเพื่อให้ส่วนขยายเหล่านั้นพร้อมใช้งานในผลิตภัณฑ์อย่างเป็นทางการ กระบวนการนี้โดยทั่วไปเกี่ยวข้องกับ:

  1. การพัฒนา - สร้างส่วนขยายของคุณโดยใช้ Test Engine โอเพ่นซอร์ส
  2. การตรวจสอบ - ทดสอบส่วนขยายของคุณอย่างละเอียดในสภาพแวดล้อมของคุณเอง
  3. การทำงานร่วมกัน - ทำงานร่วมกับทีม Core Test Engine เพื่อประเมินส่วนขยาย
  4. การรวม - หากได้รับการอนุมัติ Microsoft จะลงนามและรวมส่วนขยายเข้ากับผลิตภัณฑ์

รูปแบบการทำงานร่วมกันนี้ทำให้เกิดนวัตกรรมในขณะที่ยังคงรักษาความปลอดภัยและความน่าเชื่อถือของผลิตภัณฑ์ Test Engine อย่างเป็นทางการ

จุดบูรณาการทางเทคนิค

หัวข้อต่อไปนี้จะอธิบายว่าความสามารถในการขยาย Test Engine บูรณาการกับเทคโนโลยีหลัก เช่น Playwright และวงจรชีวิตฟีเจอร์ได้อย่างไร การทำความเข้าใจจุดบูรณาการเหล่านี้จะช่วยให้คุณพัฒนาและใช้งานส่วนขยายแบบกำหนดเองได้อย่างมีประสิทธิภาพ

การบูรณาการนักเขียนบทละคร

Power Apps Test Engine ถูกสร้างขึ้นบน Playwright ซึ่งเป็นรากฐานสำหรับการทำงานอัตโนมัติของเบราว์เซอร์ ส่วนขยายแบบกำหนดเองสามารถโต้ตอบกับ IBrowserContext ของ Playwright เพื่อสร้างความสามารถในการทดสอบบนเบราว์เซอร์ที่ซับซ้อน

วงจรชีวิตคุณลักษณะ

ส่วนขยายใหม่ปฏิบัติตาม วงจรชีวิตคุณลักษณะ:

  1. เนมสเปซตัวอย่าง - ส่วนขยายใหม่พร้อมใช้งานครั้งแรกในเนมสเปซตัวอย่างสำหรับการทดสอบเบื้องต้น
  2. เนมสเปซ TestEngine - หลังจากการตรวจสอบ ส่วนขยายจะย้ายไปยังเนมสเปซ TestEngine หลัก

ประโยชน์ของโมเดลการขยายได้

โมเดลความสามารถในการขยายได้ให้ผลประโยชน์ที่สำคัญ:

  • การกำหนดมาตรฐาน - ส่วนประกอบที่ลงนามโดย Microsoft รับประกันคุณภาพและความปลอดภัยที่สม่ำเสมอ
  • นวัตกรรม - โมเดลโอเพนซอร์สช่วยให้เกิดนวัตกรรมที่ขับเคลื่อนโดยชุมชน
  • ความยืดหยุ่น - องค์กรสามารถสร้างส่วนขยายเฉพาะสำหรับความต้องการเฉพาะได้
  • การรวม - ส่วนขยายที่มีคุณค่าจะได้รับการพิจารณาให้รวมอยู่ในผลิตภัณฑ์อย่างเป็นทางการ