หมายเหตุ
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลอง ลงชื่อเข้าใช้หรือเปลี่ยนไดเรกทอรีได้
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลองเปลี่ยนไดเรกทอรีได้
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ตั้งค่าคุณสมบัติเพื่อระบุว่าแอปเป็นไปตามโซลูชัน
เมื่อต้องการค้นหาชื่อตรรกะของแอป:
- เปิดโซลูชันที่มีแอปของคุณใน Power Apps
- ใช้ ชื่อ (ไม่ใช่ ชื่อที่แสดง) ในรายการ ค่าชื่อประกอบด้วยคํานําหน้าการกําหนดค่าสําหรับผู้เผยแพร่โซลูชัน
แอปแบบสแตนด์อโลน
เมื่อไม่ได้กําหนดแอปของคุณภายในโซลูชัน คุณจําเป็นต้องใช้ appId คุณสมบัติ
เมื่อต้องการค้นหา ID ของแอป:
- ค้นหาแอปในรายการ Power Apps
- เปิดรายละเอียดและบันทึก 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 (ตัวอย่าง)