คู่มือการรับรองความถูกต้องสําหรับ Power Apps Test Engine (ไม่สนับสนุน)

โน้ต

กลไกการทดสอบจะถูกยกเลิกและ จะถูกลบออกในการเผยแพร่ในอนาคต ใช้ตัวอย่าง Power Platform Playwright สําหรับความสามารถในการทดสอบระบบอัตโนมัติใน Power Platform และบริการ Dynamics 365

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

การเริ่มต้นใช้งานการตรวจสอบสิทธิ์

Test Engine รองรับวิธีการตรวจสอบสิทธิ์สองวิธีสำหรับการทดสอบบนเว็บสำหรับแอปพลิเคชันแบบแคนวาสและแบบโมเดล:

  • StorageState - การตั้งค่าเริ่มต้นที่ง่ายสำหรับการพัฒนารายบุคคล (สำหรับการทดสอบแอปแบบแคนวาสบนเว็บและแบบขับเคลื่อนด้วยโมเดล)
  • Dataverse - แนวทางแบบทีมสำหรับการแบ่งปันผู้ใช้ทดสอบและ CI/CD (สำหรับการทดสอบแอปแบบแคนวาสบนเว็บและแบบขับเคลื่อนด้วยโมเดล)

การจัดการการตรวจสอบสิทธิ์จะแตกต่างกันสำหรับผู้ให้บริการ PowerFx และการทดสอบ Dataverse โดยตรง การทดสอบเหล่านี้จะได้รับโทเค็นการเข้าถึงโดยตรงจากเซสชัน Azure CLI ที่คุณเข้าสู่ระบบโดยใช้คำสั่ง az เพื่อรับโทเค็นการเข้าถึงทรัพยากร ตรวจสอบให้แน่ใจว่าคุณได้เข้าสู่ระบบด้วย az login --allow-no-subscriptions ก่อนที่จะรันการทดสอบประเภทนี้

การตั้งค่าด่วน: การตรวจสอบสิทธิ์ StorageState

การตรวจสอบสิทธิ์ StorageState เป็นวิธีที่ง่ายที่สุดในการเริ่มต้น ใช้ Windows Data Protection API เพื่อจัดเก็บโทเค็นการตรวจสอบสิทธิ์อย่างปลอดภัยบนเครื่องของคุณ

ขั้นตอนที่ 1: เรียกใช้การทดสอบของคุณด้วยการตรวจสอบสิทธิ์เริ่มต้น

เรียกใช้คำสั่ง PowerShell ต่อไปนี้โดยแทนที่พารามิเตอร์ที่เริ่มต้นด้วย your

pac test run `
   --provider canvas `
   --test-plan-file your-test-plan.yaml `
   --tenant your-tenant-id `
   --environment-id your-environment-id

โน้ต

พารามิเตอร์ การรันการทดสอบ pac--user-auth ไม่ถูกใช้ในตัวอย่างนี้ เนื่องจากผู้ให้บริการเริ่มต้นคือ StorageState คุณสามารถรวมไว้ได้หากคุณต้องการ

ขั้นตอนที่ 2: กรอกข้อมูลการลงชื่อเข้าใช้แบบโต้ตอบ

ป้อนข้อมูลประจำตัวบัญชีผู้ใช้ทดสอบของคุณ

  1. หน้าต่างเบราว์เซอร์จะเปิดโดยอัตโนมัติ
  2. เข้าสู่ระบบด้วยบัญชีผู้ใช้ทดสอบของคุณ
  3. หากได้รับแจ้ง ให้อนุมัติ MFA และแจ้งเตือนความยินยอม
  4. เลือก "อยู่ในระบบต่อไป" เมื่อได้รับแจ้ง

การยืนยันตัวตนของคุณได้รับการบันทึกแล้ว

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

การตั้งค่าทีม: การตรวจสอบสิทธิ์ Dataverse

การตรวจสอบสิทธิ์ของ Dataverse เหมาะอย่างยิ่งสำหรับทีมและกระบวนการ CI/CD จัดเก็บสถานะผู้ใช้ที่ผ่านการตรวจสอบรับรองอย่างปลอดภัยใน Dataverse เข้ารหัสด้วยใบรับรอง X.509

ขั้นตอนที่ 1: ดาวน์โหลดและนำเข้าโซลูชัน Test Engine

  1. ดาวน์โหลด Power Platform โซลูชันจาก https://aka.ms/TestEngineAuth
  2. ลงชื่อเข้าใช้ Power Apps
  3. เลือกสภาพแวดล้อมเป้าหมายของคุณ
  4. ไปที่ โซลูชัน และเลือก นำเข้าโซลูชัน
  5. ทำตามตัวช่วยเพื่ออัปโหลดและติดตั้งโซลูชัน Test Engine

ขั้นตอนที่ 2: สร้างใบรับรองสำหรับการเข้ารหัส

สำหรับใบรับรองที่ลงนามด้วยตนเอง (เฉพาะการพัฒนา) ให้เรียกใช้สคริปต์ PowerShell ต่อไปนี้:

$Params = @{
  DnsName = @("testengine", "testengine")
  CertStoreLocation = "Cert:\CurrentUser\My"
  NotAfter = (Get-Date).AddMonths(6)
  KeyAlgorithm = "RSA"
  KeyLength = 2048
}
New-SelfSignedCertificate @Params

สำหรับการผลิต ให้ใช้ใบรับรองจากผู้มีอำนาจออกใบรับรองขององค์กรของคุณ

ขั้นตอนที่ 3: ตั้งค่าผู้ใช้ทดสอบของคุณ

ดำเนินการตามขั้นตอนต่อไปนี้เพื่อตั้งค่าผู้ใช้ทดสอบของคุณ:

  1. เปิดเทอร์มินัลของคุณและออกจากเซสชันที่มีอยู่ทั้งหมด:

    # Clear Power Platform CLI credentials
    pac auth clear
    
    # Clear Azure CLI credentials
    az logout
    
  2. ลงชื่อเข้าใช้ด้วย Azure CLI (จําเป็นสําหรับการรับรองความถูกต้อง Dataverse):

    az login --allow-no-subscriptions
    
  3. ตั้งชื่อใบรับรองของคุณเป็น ตัวแปรสภาพแวดล้อม PowerShell named DataProtectionCertificateName:

    $env:DataProtectionCertificateName = "CN=testengine"
    
  4. เรียกใช้การทดสอบของคุณโดยใช้การตรวจสอบสิทธิ์ของ Dataverse

    pac test run `
       --provider canvas `
       --user-auth Dataverse `
       --auth Certstore `
       --test-plan-file testplan.yaml `
       --tenant your-tenant-id `
       --environment-id your-environment-id
    

    โน้ต

    ไม่เหมือน StorageState ในกรณีนี้ คุณต้องใช้พารามิเตอร์ --user-auth ที่มีค่าเป็น Dataverse

  5. กรอกแบบฟอร์มลงชื่อเข้าใช้แบบโต้ตอบเมื่อได้รับแจ้ง

การตั้งค่าหลักการบริการ (สำหรับ CI/CD)

สำหรับการทดสอบอัตโนมัติใน CI/CD pipeline คุณสามารถใช้หลักการบริการแทนบัญชีผู้ใช้แบบโต้ตอบได้

ขั้นตอนที่ 1: สร้างการลงทะเบียนแอปพลิเคชันใน Microsoft Entra ID

ทําตามขั้นตอนต่อไปนี้เพื่อสร้างการลงทะเบียนแอปพลิเคชันใน Microsoft Entra ID

  1. ลงชื่อเข้าใช้ ศูนย์การจัดการ Microsoft Entra
  2. นําทางไปยัง Applications>App registrations
  3. เลือก ลงทะเบียนใหม่
  4. ป้อนชื่อ (ตัวอย่างเช่น "Test Engine Automation")
  5. คงตัวเลือกเริ่มต้นไว้และเลือก ลงทะเบียน
  6. หลังจากสร้างแล้ว ให้จดบันทึก ID แอปพลิเคชัน (ไคลเอนต์) และ ID ไดเรกทอรี (ผู้เช่า)

ขั้นตอนที่ 2: กำหนดค่าการอนุญาต API สำหรับ Dataverse

ดำเนินการตามขั้นตอนต่อไปนี้เพื่อกำหนดค่าสิทธิ์การใช้งาน API Dataverse

  1. ในการลงทะเบียนแอปพลิเคชันของคุณ ให้ไปที่ การอนุญาต API
  2. เลือก เพิ่มสิทธิ์
  3. เลือก API ที่องค์กรของฉันใช้
  4. ค้นหาและเลือก Dataverse
  5. เลือก สิทธิ์ที่มอบหมาย
  6. ตรวจสอบ การเลียนแบบผู้ใช้
  7. เลือก เพิ่มสิทธิ์
  8. เลือก ให้ความยินยอมแก่ผู้ดูแลระบบ

ขั้นตอนที่ 3: สร้างความลับของไคลเอนต์

ดำเนินการตามขั้นตอนต่อไปนี้เพื่อสร้างความลับของไคลเอนต์

  1. ไปที่ ใบรับรองและความลับ
  2. เลือก ความลับไคลเอนต์ใหม่
  3. เพิ่มคำอธิบายและเลือกวันหมดอายุ
  4. คัดลอกความลับ ค่า ทันที (คุณจะไม่สามารถดูมันอีกครั้งได้)

ขั้นตอนที่ 4: เพิ่มผู้ใช้แอปพลิเคชันลงใน Dataverse

ดำเนินการตามขั้นตอนต่อไปนี้เพื่อเพิ่มผู้ใช้แอปพลิเคชันลงใน Dataverse

  1. เปิด ศูนย์ผู้ดูแลระบบ Power Platform
  2. เลือกสภาพแวดล้อมของคุณ
  3. ไปที่ การตั้งค่า>ผู้ใช้ + สิทธิ์>ผู้ใช้แอปพลิเคชัน
  4. เลือก + ผู้ใช้แอปใหม่
  5. ค้นหาและเลือกแอปพลิเคชันของคุณ
  6. กำหนดบทบาทหน่วยธุรกิจและความปลอดภัยที่เหมาะสม (รวมถึงบทบาท "ผู้ใช้เครื่องมือทดสอบ")
  7. บันทึกการเปลี่ยนแปลง

ขั้นตอนที่ 5: กำหนดค่าไปป์ไลน์ CI/CD ของคุณ

เพิ่มตัวแปรเหล่านี้ลงในไปป์ไลน์ของคุณ:

AZURE_CLIENT_ID: (your application ID)
AZURE_CLIENT_SECRET: (your client secret)
AZURE_TENANT_ID: (your tenant ID)
DataProtectionCertificateValue: (base64 encoded certificate)
ENVIRONMENT_URL: (your Dataverse environment URL)

สำหรับ Azure DevOps ให้จัดเก็บข้อมูลเหล่านี้อย่างปลอดภัยใน กลุ่มตัวแปร โดยมีสิทธิ์อนุญาตที่เหมาะสม

PowerFx และการตรวจสอบสิทธิ์การทดสอบโดยตรง Dataverse

สำหรับการทดสอบผู้ให้บริการ PowerFx และการทดสอบโดยตรง การตรวจสอบสิทธิ์จะทำงานแตกต่างจากการทดสอบบนเว็บ Dataverse

การทำงานของการตรวจสอบสิทธิ์ PowerFx/Dataverse

  1. Test Engine ใช้ Azure CLI เพื่อรับโทเค็นการเข้าถึงเฉพาะทรัพยากร
  2. โทเค็นนี้ใช้เพื่อตรวจสอบสิทธิ์โดยตรงกับ Dataverse API
  3. ไม่จำเป็นต้องมีการตรวจสอบผ่านเบราว์เซอร์หรือเว็บ

การตั้งค่า PowerFx/Dataverse การตรวจสอบสิทธิ์

  1. ตรวจสอบให้แน่ใจว่าได้ติดตั้ง Azure CLI และอัปเดตเป็นเวอร์ชันล่าสุดแล้ว:

    winget install -e --id Microsoft.AzureCLI
    # Or update it if already installed
    az upgrade
    
  2. ลงชื่อเข้าใช้ด้วย Azure CLI:

    # The --allow-no-subscriptions flag is important as you may not have Azure subscriptions
    az login --allow-no-subscriptions
    
  3. ดำเนินการทดสอบของคุณกับผู้ให้บริการ PowerFx:

    pac test run `
       --provider powerfx `
       --test-plan-file testplan.yaml `
       --tenant your-tenant-id `
       --environment-id your-environment-id `
       --domain "https://your-environment.crm.dynamics.com"
    

การแก้ไขปัญหาการตรวจสอบสิทธิ์

ส่วนนี้ประกอบด้วยข้อมูลเกี่ยวกับการแก้ไขปัญหาการตรวจสอบสิทธิ์ด้วย Test Engine

ปัญหาทั่วไปเกี่ยวกับ StorageState

  • ปัญหา: ข้อความแจ้งเตือนการตรวจสอบสิทธิ์ปรากฏขึ้นทุกครั้งที่ทำงาน

    • วิธีแก้ปัญหา: ตรวจสอบว่าคุณเลือก คงสถานะการเข้าสู่ระบบ ในระหว่างการเข้าสู่ระบบหรือไม่
  • ปัญหา: Cannot access secure storage ข้อผิดพลาด

    • โซลูชัน: ตรวจสอบให้แน่ใจว่าคุณมีสิทธิ์เข้าถึงโฟลเดอร์โปรไฟล์ผู้ใช้ของคุณอย่างเหมาะสม

ปัญหาทั่วไปเกี่ยวกับการตรวจสอบสิทธิ์ Dataverse

  • ปัญหา: Certificate not found ข้อผิดพลาด

    • โซลูชัน: ตรวจสอบว่าชื่อใบรับรองตรงกับสิ่งที่อยู่ในที่เก็บใบรับรองของคุณ
  • ปัญหา: Unable to connect to Dataverse ข้อผิดพลาด

    • โซลูชัน: ตรวจสอบว่า Azure CLI ได้เข้าสู่ระบบด้วย az login --allow-no-subscriptions
  • ปัญหา: Access denied ข้อผิดพลาดกับผู้รับผิดชอบบริการ

    • โซลูชัน: ตรวจสอบว่าแอปมีสิทธิ์ที่ถูกต้องใน Dataverse และมีบทบาทความปลอดภัยที่เหมาะสม

ปัญหาทั่วไปเกี่ยวกับ PowerFx/การตรวจสอบสิทธิ์Dataverse

  • ปัญหา: Unable to obtain access token ข้อผิดพลาด

    • Solution: ตรวจสอบว่าคุณได้ลงชื่อเข้าใช้ด้วย Azure CLI โดยใช้ az account get-access-token
  • ปัญหา: Access denied ถึง Dataverse

    • โซลูชัน: ตรวจสอบให้แน่ใจว่าผู้ใช้ที่เข้าสู่ระบบของคุณมีสิทธิ์ที่เหมาะสมในสภาพแวดล้อม Dataverse
  • ปัญหา: โทเค็นหมดอายุระหว่างการทดสอบระยะยาว

    • โซลูชัน: ใช้หลักการบริการที่มีวันหมดอายุโทเค็นที่ยาวนานขึ้นหรือจัดการการตรวจสอบสิทธิ์ซ้ำในขั้นตอนการทดสอบ

สถาปัตยกรรมความปลอดภัยในการรับรองความถูกต้อง
ทดสอบแอปพลิเคชันแคนวาส
ทดสอบแอปพลิเคชันที่ขับเคลื่อนด้วยโมเดล
ทดสอบส่วนขยาย Dataverse