แชร์ผ่าน


รูปแบบ YAML ของกลไกการทดสอบ Power Apps (ตัวอย่าง)

Note

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

มีการกําหนดการทดสอบใน YAML ตามแนวทางเดียวกับ Power Fx เรียนรู้เพิ่มเติมเกี่ยวกับไวยากรณ์สูตร Power Fx YAML

ดูโฟลเดอร์ PowerApps-TestEngine/samples สําหรับตัวอย่างโดยละเอียด

ข้อกําหนดของสคีมา YAML

ทรัพย์สิน คำอธิบาย
testSuite กําหนดชุดการทดสอบหนึ่งชุด กรณีการทดสอบในชุดการทดสอบและการกําหนดค่าเฉพาะสําหรับชุดการทดสอบ
testSettings กําหนดการตั้งค่าสําหรับชุดการทดสอบที่นํามาใช้ใหม่ในกรณีการทดสอบหลายรายการ
environmentVariables กําหนดตัวแปรที่อาจเปลี่ยนแปลงได้เมื่อมีการพอร์ตแอปในสภาพแวดล้อมที่แตกต่างกัน

testSuite

ใช้เพื่อกําหนดหนึ่งการทดสอบ

ทรัพย์สิน ประเภท คำอธิบาย
persona สตริง จำเป็น ผู้ใช้ที่เข้าสู่ระบบเพื่อทําการทดสอบ ต้องตรงกับ persona ที่แสดงอยู่ในส่วนผู้ใช้
testCases TestCases จำเป็น กําหนดกรณีการทดสอบในชุดการทดสอบ กรณีการทดสอบที่มีอยู่ในชุดการทดสอบจะถูกเรียกใช้ตามลําดับ สถานะของแอปจะยังคงอยู่ในกรณีการทดสอบทั้งหมดในชุดการทดสอบ
testSuiteName สตริง จำเป็น ชื่อของชุดการทดสอบ
appLogicalName สตริง ไม่บังคับ ชื่อตรรกะของแอปที่จะเปิดใช้งาน ซึ่งสามารถรับได้จากโซลูชัน สําหรับแอปพื้นที่ทํางาน คุณจําเป็นต้องเพิ่มลงในโซลูชันเพื่อรับโซลูชัน ดู วิธีการระบุแอปพลิเคชันของคุณในแผนทดสอบ
appId Guid ไม่บังคับ ID ของแอปที่จะเปิดใช้งาน จําเป็นและใช้เฉพาะเมื่อ appLogicalName ไม่มีอยู่เท่านั้น ควรใช้ ID แอปสําหรับแอปพื้นที่ทํางานที่ไม่ได้อยู่ในโซลูชันเท่านั้น ดู วิธีการระบุแอปพลิเคชันของคุณในแผนทดสอบ
networkRequestMocks NetworkRequestMocks ไม่บังคับ กําหนดการทดสอบคําขอเครือข่ายที่จําเป็นสําหรับการทดสอบ
onTestCaseComplete สตริง ไม่บังคับ กําหนดขั้นตอนที่จําเป็นต้องทริกเกอร์สําหรับทุกกรณีการทดสอบในชุดหลังจากกรณีเสร็จสิ้นการดําเนินการ
onTestCaseStart สตริง ไม่บังคับ กําหนดขั้นตอนที่จําเป็นต้องทริกเกอร์สําหรับทุกกรณีการทดสอบในชุดก่อนที่กรณีจะเริ่มดําเนินการ
onTestSuiteComplete สตริง ไม่บังคับ กําหนดขั้นตอนที่จําเป็นต้องทริกเกอร์หลังจากชุดเสร็จสิ้นการดําเนินการ
testSuiteDescription สตริง ไม่บังคับ ข้อมูลเพิ่มเติมอธิบายสิ่งที่ชุดการทดสอบทํา

วิธีการระบุแอปพลิเคชันของคุณในแผนทดสอบ

คุณต้องตั้งค่า appLogicalName หรือ appId เพื่อระบุแอปพลิเคชันของคุณ ที่คุณใช้ขึ้นอยู่กับว่า แอปของคุณถูกกําหนดภายในโซลูชันหรือไม่

เมื่อคุณกําหนดแอปของคุณภายในโซลูชัน การทดสอบของคุณยังคงเป็นแบบพกพาตลอดทั้งสภาพแวดล้อม appLogicalNameตั้งค่าคุณสมบัติเพื่อระบุว่าแอปเป็นไปตามโซลูชัน

เมื่อต้องการค้นหาชื่อตรรกะของแอป:

  1. เปิดโซลูชันที่มีแอปของคุณใน Power Apps
  2. ใช้ ชื่อ (ไม่ใช่ ชื่อที่แสดง) ในรายการ ค่าชื่อประกอบด้วยคํานําหน้าการกําหนดค่าสําหรับผู้เผยแพร่โซลูชัน

แอปแบบสแตนด์อโลน

เมื่อไม่ได้กําหนดแอปของคุณภายในโซลูชัน คุณจําเป็นต้องใช้ appId คุณสมบัติ

เมื่อต้องการค้นหา ID ของแอป:

  1. ค้นหาแอปในรายการ Power Apps
  2. เปิดรายละเอียดและบันทึก GUID สําหรับ ID แอป

NetworkRequestMocks

ทรัพย์สิน ประเภท คำอธิบาย
requestURL สตริง จำเป็น URL คําขอที่ได้รับการตอบกลับแบบจําลอง ยอมรับรูปแบบ Glob แล้ว
responseDataFile สตริง จำเป็น ไฟล์ข้อความที่มีเนื้อหาการตอบสนองแบบจําลอง ข้อความทั้งหมดในไฟล์นี้จะถูกอ่านเป็นการตอบสนอง
headers อาร์เรย์ ไม่บังคับ รายการเขตข้อมูลส่วนหัวในคําขอในรูปแบบของ [fieldName: fieldValue]
method สตริง ไม่บังคับ วิธีการของคําขอ (GET, POST และอื่น ๆ)
requestBodyFile สตริง ไม่บังคับ ไฟล์ข้อความที่มีเนื้อความของคําขอ ข้อความทั้งหมดในแฟ้มนี้ถูกอ่านเป็นเนื้อความของการร้องขอ

สําหรับคุณสมบัติที่เลือกได้ ถ้าไม่มีการระบุค่า การกําหนดเส้นทางจะใช้กับทั้งหมด ตัวอย่างเช่น ถ้า method เป็น null เราจะส่งการตอบสนองจําลองกลับ ไม่ว่าวิธีการดังกล่าวจะเป็นค่าใดก็ตามตราบใดที่คุณสมบัติอื่น ทั้งหมดตรงกัน

สําหรับแอป requestURL Sharepoint/Dataverse/Connector และ method อาจเหมือนกันสําหรับคําขอทั้งหมด x-ms-request-method และ x-ms-request-url ในส่วนหัวอาจจําเป็นต้องกําหนดค่าในกรณีนั้นเพื่อระบุคําขอที่แตกต่างกัน

TestCases

ทรัพย์สิน ประเภท คำอธิบาย
testCaseName สตริง จำเป็น ชื่อของกรณีการทดสอบที่ใช้ในการรายงานความสําเร็จและความล้มเหลว
testSteps TestSteps จำเป็น ชุดของฟังก์ชัน Power Fx ที่อธิบายขั้นตอนที่จําเป็นสําหรับการทํากรณีการทดสอบ ดู ตัวอย่าง TestSteps
testCaseDescription ไม่ใช่ ไม่บังคับ ข้อมูลเพิ่มเติมอธิบายสิ่งที่กรณีทดสอบทํา

TestSteps

  • TestSteps สามารถใช้ ฟังก์ชัน Test Engine Power Fx ใด ๆ ที่มีอยู่หรือ ฟังก์ชันการทดสอบเฉพาะ ที่กําหนดโดยเฟรมเวิร์กนี้
  • ค่าควรเริ่มต้นด้วยสัญลักษณ์ไปป์ (|) เพื่ออนุญาตให้นิพจน์ YAML หลายบรรทัดตามด้วยเครื่องหมายเท่ากับ (=) เพื่อระบุว่าเป็นนิพจน์ Power Fx
  • ฟังก์ชันควรคั่นด้วยเครื่องหมายอัฒภาค (;)
  • ข้อคิดเห็นสามารถใช้ได้ และควรเริ่มต้นด้วยอักขระเครื่องหมายทับขวาคู่ (//)

ตัวอย่าง TestSteps

testCases:
   - testCaseName: Fill in a city name and do the search
   testSteps: |
      = Screenshot("connectorapp_loaded.png");
         SetProperty(TextInput1.Text, "Atlanta");
         Select(Button1);
         Assert(Label4.Text = "You are seeing the mock response", "Validate the output is from the mock");
         Screenshot("connectorapp_end.png");

testSettings

ใช้เพื่อกําหนดการตั้งค่าสําหรับการทดสอบในแผนทดสอบ

ทรัพย์สิน ประเภท คำอธิบาย
browserConfigurations BrowserConfiguration[] จำเป็น รายการของการกําหนดค่าเบราว์เซอร์ที่จะทดสอบ ต้องระบุอย่างน้อยหนึ่งเบราว์เซอร์
extensionModules extensionModules ไม่บังคับ ประกอบด้วยข้อมูลเกี่ยวกับส่วนขยายเพื่อเปิดใช้งาน
filePath สตริง ไม่บังคับ พาธไฟล์ไปยังไฟล์ yaml ที่แยกต่างหากด้วยการตั้งค่าการทดสอบทั้งหมด ถ้าระบุไว้ ระบบจะ แทนที่ การตั้งค่าการทดสอบทั้งหมดในแผนทดสอบ
headless boolean ไม่บังคับ ค่าเริ่มต้นคือ จริง ถ้าตั้งค่าเป็น false เบราว์เซอร์จะแสดงในระหว่างการดําเนินการทดสอบ
locale สตริง ไม่บังคับ ไวยากรณ์ภาษา/วัฒนธรรมที่ใช้เขียนกรณีทดสอบหรือขั้นตอนการทดสอบ ถ้าไม่ได้ระบุ CultureInfo.CurrentCulture จะใช้สําหรับตําแหน่งที่ตั้งตามค่าเริ่มต้นสําหรับการแยกวิเคราะห์ขั้นตอนการทดสอบ ดู ข้อควรพิจารณาเกี่ยวกับภูมิภาคและภาษา
recordVideo boolean ไม่บังคับ ค่าเริ่มต้นเป็นเท็จ ถ้าตั้งค่าเป็น จริง การบันทึกวิดีโอของการทดสอบจะถูกบันทึกไว้
timeout จำนวนเต็ม ไม่บังคับ ค่าหมดเวลาในหน่วยมิลลิวินาที ค่าเริ่มต้นคือ 30,000 มิลลิวินาที (30 วินาที) ถ้าการดําเนินการใด ๆ ใช้เวลานานกว่าขีดจํากัดการหมดเวลา การทดสอบจะสิ้นสุดในความล้มเหลว
powerFxTestTypes name value คู่ ไม่บังคับ รายการของชื่อชนิดและข้อกําหนดประเภท Power Fx ดู ตัวอย่าง powerFxTestTypes
testFunctions description code คู่ ไม่บังคับ รายการคําอธิบายและข้อกําหนดฟังก์ชัน Power Fx ดู ตัวอย่างฟังก์ชันการทดสอบ

extensionModules

ประกอบด้วยข้อมูลเกี่ยวกับส่วนขยายเพื่อเปิดใช้งาน

ทรัพย์สิน ประเภท คำอธิบาย
enable bool เปิดใช้งานโมดูลส่วนขยายหรือไม่
allowPowerFxNamespaces รายการ รายการของเนมสเปซ PowerFx เพื่อเปิดใช้งาน
parameters คู่ค่าคีย์ คุณสมบัติที่มีค่าสําหรับควบคุมโมดูลส่วนขยาย ในขณะนี้ เฉพาะพารามิเตอร์บูลีน enableDataverseFunctions เท่านั้นที่ถูกต้องสําหรับสิ่งนี้

ตัวอย่างนี้แสดงวิธีการเปิดใช้งานเนมสเปซ PowerFx Preview :

testSettings:
  extensionModules:
    enable: true
    allowPowerFxNamespaces:
    - Preview

เรียนรู้เพิ่มเติมเกี่ยวกับฟังก์ชันการแสดงตัวอย่าง

ข้อควรพิจารณาเกี่ยวกับภูมิภาคและภาษา

กลไกจัดการการทดสอบรองรับภาษาและการตั้งค่าภูมิภาคต่าง ๆ เช่น ตัวคั่นทศนิยมและรายการ คุณสมบัติ testSettings.locale ควบคุมลักษณะการทํางานเหล่านี้ สําหรับข้อมูลเพิ่มเติม ดูการสนับสนุนส่วนกลางใน Microsoft Power Fx

ดูการกําหนดค่าตัวอย่างเหล่านี้ที่ ที่เก็บPowerApps-TestEngine GitHub:

ตัวอย่าง powerFxTestTypes

powerFxTestTypes:
 - name: ControlName
   value: |
      {ControlName: Text} 
 - name: Options
   value: |
      [{Name: Text, Value: Number}]   

ตัวอย่างนี้สาธิตวิธีการกําหนดชนิด Power Fx แบบกําหนดเองสําหรับการใช้งานในกรณีการทดสอบของคุณ มีControlNameการกําหนดชนิด เป็นเรกคอร์ดที่มีเขตข้อมูลเดียวTextในขณะที่Optionsชนิด ถูกกําหนดเป็นตารางของเรกคอร์ด แต่ละรายการประกอบด้วยNameเขตข้อมูลชนิด Text และValueเขตข้อมูลชนิดNumber คุณสามารถใช้ชนิดแบบกําหนดเองเพื่อสร้างสถานการณ์การทดสอบที่ซับซ้อนและเฉพาะเจาะจงมากขึ้น เพิ่มความยืดหยุ่นและพลังของข้อกําหนดการทดสอบของคุณได้

ตัวอย่าง testFunctions

testFunctions:
 - description: Wait until control is visible using Document Object Model (DOM) selector
   code: |
    WaitUntilVisible(control: Text): Void = 
      Preview.PlaywrightAction(Concatenate("//div[@data-id='", control, "']"), "wait");
 - description: Get the options for a control using Power Fx control from Model Driven App (MDA)
   code: |
    GetOptions(control: ControlName): Options =
      Preview.GetOptions(control);

ตัวอย่างฟังก์ชันการทดสอบเหล่านี้สาธิตวิธีการกําหนดฟังก์ชัน Power Fx แบบกําหนดเองสําหรับใช้ในกรณีการทดสอบของคุณ ฟังก์ชัน WaitUntilVisible นี้ใช้ตัวเลือก DOM เพื่อรอจนกว่าตัวควบคุมที่ระบุจะมองเห็นได้ โดยใช้การดําเนินการ Playwright ฟังก์ชัน GetOptions เรียกใช้ตัวเลือกสําหรับตัวควบคุมที่ระบุจาก Model Driven App (MDA) โดยใช้ตัวควบคุม Power Fx ฟังก์ชันแบบกําหนดเองเหล่านี้ช่วยเพิ่มความยืดหยุ่นและพลังของข้อกําหนดการทดสอบของคุณ ซึ่งช่วยให้สถานการณ์การทดสอบซับซ้อนและเฉพาะเจาะจงมากขึ้น

BrowserConfiguration

การทดสอบทุกชุดต้องมี อย่างน้อยหนึ่งBrowserConfigurationรายการ

ทรัพย์สิน ประเภท คำอธิบาย
browser สตริง จำเป็น เบราว์เซอร์ที่จะเปิดใช้งานเมื่อทําการทดสอบ ควรตรงกับเบราว์เซอร์ที่สนับสนุนโดย Playwright
device สตริง ไม่บังคับ อุปกรณ์ที่จะจําลองเมื่อเปิดใช้งานเบราว์เซอร์ ควรตรงกับ อุปกรณ์ที่สนับสนุนโดย Playwright
screenHeight จำนวนเต็ม ไม่บังคับ ความสูงของหน้าจอที่จะใช้เมื่อเปิดใช้งานเบราว์เซอร์ ถ้าระบุ screenWidth ต้องระบุด้วย
screenWidth จำนวนเต็ม ไม่บังคับ ความกว้างของหน้าจอที่จะใช้เมื่อเปิดใช้งานเบราว์เซอร์ ถ้าระบุ screenHeight ต้องระบุด้วย

environmentVariables

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

คน

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

ตัวอย่าง:

environmentVariables:
    - users:
        - personaName: "User1"
          emailKey: "user1Email"
        - personaName: "User2"
          emailKey: "user2Email"

personaNameใช้ เป็นส่วนหนึ่งของข้อกําหนดการทดสอบเพื่อระบุผู้ใช้ที่จะเรียกใช้การทดสอบเป็น

กลไกการจัดเก็บข้อมูลข้อมูลประจําตัวที่ได้รับการสนับสนุน

เพื่อจัดเก็บข้อมูลประจําตัวเป็นตัวแปรสภาพแวดล้อม คุณสามารถตั้งค่าได้ดังนี้:

# In PowerShell - replace variableName and variableValue with the correct values
$env:variableName = "variableValue"

ใน YAML จําเป็นต้องกําหนดคุณสมบัติสองอย่างเพื่อระบุว่าข้อมูลประจําตัวของผู้ใช้รายนี้ถูกจัดเก็บไว้ในตัวแปรสภาพแวดล้อม:

  • emailKey: ตัวแปรสภาพแวดล้อมที่ใช้ในการจัดเก็บอีเมลของผู้ใช้

ตัวอย่าง YAML:

    - personaName: "User1"
      emailKey: "user1Email"

ตัวอย่าง PowerShell การตั้งค่าข้อมูลประจําตัวผู้ใช้ตาม YAML:

$env:user1Email = "someone@example.com"

ดูเพิ่มเติม

ภาพรวมของกลไกจัดการทดสอบ Power Apps (ตัวอย่าง)
Power Apps ฟังก์ชัน Test Engine Power Fx (ตัวอย่าง)