"1C: การทดสอบสถานการณ์ เครื่องมือทดสอบสำหรับผู้ที่เกลียดการเสียเวลากับกิจวัตรประจำวัน หน้าตาเป็นอย่างไร


บทความนี้กล่าวถึงกลไกการทดสอบอัตโนมัติใหม่ ซึ่งปรากฏครั้งแรกในแพลตฟอร์มในเวอร์ชัน 8.3 หลังจากศึกษาบทความแล้ว คุณจะได้เรียนรู้:

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

การบังคับใช้

บทความนี้กล่าวถึงแพลตฟอร์ม 1C:Enterprise เวอร์ชัน 8.3.4.465 ในแพลตฟอร์มเวอร์ชันปัจจุบัน ความสามารถของกลไกการทดสอบอัตโนมัติได้รับการขยายอย่างมีนัยสำคัญ แต่สิ่งนี้ไม่ได้ส่งผลกระทบต่อความเกี่ยวข้องของบทความ มันยังคงมีความเกี่ยวข้อง

การทดสอบอัตโนมัติใน 1C:Enterprise 8.3

แพลตฟอร์ม 1C:Enterprise 8.3 มีกลไกใหม่ที่ออกแบบมาเพื่อจำลองการดำเนินการเชิงโต้ตอบของผู้ใช้ระบบ - การทดสอบอัตโนมัติ

การทดสอบอัตโนมัติไม่รองรับการทำงานกับอินเทอร์เฟซปกติ แต่รองรับการทำงานกับอินเทอร์เฟซที่ได้รับการจัดการเท่านั้น

เมื่อทำการทดสอบ จะมีการใช้แอปพลิเคชันไคลเอนต์สองประเภท - ตัวจัดการการทดสอบและไคลเอนต์ทดสอบ ผู้จัดการการทดสอบสื่อสารกับไคลเอนต์ทดสอบและรันสคริปต์ทดสอบ

สคริปต์ทดสอบคือโค้ดในภาษาที่ฝังไว้ซึ่งอธิบายลำดับของการดำเนินการเชิงโต้ตอบที่จะดำเนินการ

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

ผู้จัดการการทดสอบอาจเป็นไคลเอ็นต์แบบหนาหรือแบบบางก็ได้ ไคลเอนต์ทดสอบ – ​​Thick, Thin Client หรือเว็บไคลเอ็นต์

ผู้จัดการการทดสอบสามารถเชื่อมต่อกับไคลเอนต์ทดสอบได้หลายตัว แต่ไคลเอนต์ทดสอบสามารถเชื่อมต่อกับผู้จัดการได้เพียงคนเดียวเท่านั้น

ในการจัดการไคลเอนต์ ผู้จัดการจะสร้างการเชื่อมต่อ TCP ด้วย สิ่งสำคัญคือการทดสอบอัตโนมัติไม่จำเป็นต้องเปลี่ยนแปลงโครงสร้างการกำหนดค่า

โดยพื้นฐานแล้ว ไคลเอนต์และผู้จัดการการทดสอบคือการกำหนดค่าที่ทำงานด้วยพารามิเตอร์บรรทัดคำสั่งบางอย่าง โดยผู้จัดการจะจัดการไคลเอนต์โดย "การสร้าง" หน้าต่างและการควบคุมจะทำงานเหมือนกับว่าผู้ใช้กำลังโต้ตอบกับพวกเขา

การทดสอบอัตโนมัติมีข้อจำกัด ตัวอย่างเช่น ไม่รองรับการทำงานกับอินเทอร์เฟซปกติ แต่รองรับการทำงานกับอินเทอร์เฟซที่ได้รับการจัดการเท่านั้น

หากต้องการดำเนินการทดสอบอัตโนมัติ ผู้จัดการการทดสอบและไคลเอ็นต์การทดสอบจะต้องทำงานอยู่

ตัวจัดการสามารถเปิดใช้งานได้จากบรรทัดคำสั่งด้วยปุ่ม /TESTMANAGER:

“c:\Program Files (x86)\1cv8\8.3.4.437\bin\1cv8c.exe” ENTERPRISE /F “X:\test” /N ผู้ดูแลระบบ /TESTMANAGER

คุณยังสามารถเปิดตัวจัดการการทดสอบได้จากเครื่องมือกำหนดค่า

ในการดำเนินการนี้ ผ่านเมนูเครื่องมือ – ตัวเลือก ให้เปิดกล่องโต้ตอบ “ตัวเลือก” ซึ่งในแท็บเรียกใช้ 1C:Enterprise – ขั้นสูง เลือกรายการ “เรียกใช้ในฐานะผู้จัดการการทดสอบ”:

อีกวิธีในการเรียกใช้ตัวจัดการการทดสอบคือจากภาษาในตัว โดยใช้เมธอด StartSystem() ซึ่งคุณควรระบุบรรทัดคำสั่ง:

RunSystem(“c:\Program Files (x86)\1cv8\8.3.4.437\bin\1cv8c.exe” ENTERPRISE /F X:\test /N ผู้ดูแลระบบ /TESTMANAGER”)

ไคลเอ็นต์การทดสอบสามารถเปิดใช้งานได้จากบรรทัดคำสั่ง เมื่อต้องการทำเช่นนี้ ใช้สวิตช์ตัวเลือกบรรทัดคำสั่ง /TESTCLIENT

เมื่อใช้พารามิเตอร์ TPort คุณจะระบุหมายเลขพอร์ตที่ผู้จัดการและไคลเอนต์ทดสอบจะโต้ตอบกัน หากไม่ได้ระบุพารามิเตอร์นี้ในบรรทัดคำสั่ง ระบบจะใช้พอร์ต 1538

“c:\Program Files (x86)\1cv8\8.3.4.437\bin\1cv8c.exe” ENTERPRISE /F “X:\Platform8Demo” /N ผู้ดูแลระบบ /TESTCLIENT -TPort 1539

ไคลเอ็นต์การทดสอบสามารถเปิดใช้งานได้จากตัวกำหนดค่า ในการดำเนินการนี้ ผ่านเมนูเครื่องมือ – ตัวเลือก ให้เปิดกล่องโต้ตอบ “ตัวเลือก” ซึ่งในแท็บเรียกใช้ 1C:Enterprise – ขั้นสูง ให้ทำเครื่องหมายที่รายการ “เรียกใช้ในฐานะไคลเอ็นต์การทดสอบ” ในกรณีนี้คุณจะต้องระบุหมายเลขพอร์ตที่ใช้

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

ฐานข้อมูลที่แตกต่างกันทั้งสองสามารถใช้เป็นผู้จัดการการทดสอบและไคลเอนต์การทดสอบ (การกำหนดค่าของฐานข้อมูลผู้จัดการการทดสอบอาจไม่ตรงกับการกำหนดค่าของไคลเอนต์การทดสอบ) หรือฐานข้อมูลเดียวกัน

หากต้องการดำเนินการทดสอบอัตโนมัติ คุณต้องทำตามขั้นตอนต่อไปนี้:

  1. พัฒนาสคริปต์ทดสอบ - เขียนการประมวลผลภายนอกหรือในตัว โดยจะอธิบายขั้นตอนที่จะดำเนินการตามลำดับ
  2. เปิดตัวจัดการการทดสอบ
  3. เปิดตัวไคลเอนต์ทดสอบ (หนึ่งรายการขึ้นไป)
  4. ในตัวจัดการการทดสอบ ให้รันการประมวลผลที่สร้างขึ้นและตรวจสอบให้แน่ใจว่ามีการดำเนินการตามโปรแกรมบนไคลเอนต์

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

  • แอปพลิเคชันที่ผ่านการทดสอบแล้ว;
  • ClientApplicationWindow กำลังทดสอบ
  • ทดสอบ WindowCommandInterface;
  • อินเทอร์เฟซคำสั่งกลุ่มทดสอบ;
  • ทดสอบคำสั่งอินเทอร์เฟซปุ่ม;
  • แบบฟอร์มทดสอบ;
  • สนามทดสอบฟอร์ม;
  • กลุ่มทดสอบฟอร์ม;
  • TestFormButton;
  • ตารางฟอร์มทดสอบ;
  • ผ่านการทดสอบการตกแต่งแล้ว

เราจะใช้การกำหนดค่าสาธิต "แอปพลิเคชันที่มีการจัดการ" เป็นการกำหนดค่าที่จะทดสอบ

มาสร้างการประมวลผลภายนอกเพิ่มแบบฟอร์มใหม่ซึ่งเราจะกำหนดตัวจัดการสำหรับคำสั่ง "RunTesting" ใหม่

ในการทดสอบเราดำเนินการดังต่อไปนี้: สร้างองค์ประกอบไดเรกทอรีใหม่ "คลังสินค้า" ในช่องชื่อให้ป้อนบรรทัด "การทดสอบคลังสินค้า" จากนั้นคลิกปุ่ม "บันทึกและปิด"

รหัสสำหรับการทดสอบนี้จะมีลักษณะดังนี้:

&บนไคลเอนต์
ขั้นตอน รันการทดสอบ(ทีม )
// เชื่อมต่อกับแอปพลิเคชันภายใต้การทดสอบ
การสมัครภายใต้การทดสอบ= ใหม่ การสมัครภายใต้การทดสอบ(“โฮสต์ท้องถิ่น”);
// เราพยายามเชื่อมต่อไม่เกินหนึ่งนาที
เวลาสิ้นสุดที่รอคอย= วันที่ปัจจุบัน () + 60 ;
เชื่อมต่อแล้ว = เท็จ ;
ยังไม่มี CurrentDate() >= เวลาสิ้นสุดที่รอคอยความพยายามของวงจร
แอปพลิเคชันภายใต้การทดสอบสร้างการเชื่อมต่อ();
เชื่อมต่อแล้ว = จริง ;
ยกเลิก ;
ข้อยกเว้น
ความพยายามสิ้นสุด ; เอ็นด์ไซเคิล ; ถ้าไม่เชื่อมต่อแล้ว
// เสร็จสิ้นการทดสอบ
การสมัครภายใต้การทดสอบ= ไม่ได้กำหนด ;
เพื่อรายงาน ( "การเชื่อมต่อล้มเหลว!");
กลับ ;
สิ้นสุดถ้า ;
// ค้นหาหน้าต่างหลัก
หน้าต่างหลักทดสอบแล้ว
= (ประเภท());
MainWindowTested.เปิดใช้งาน();
// ดำเนินการคำสั่งเพื่อสร้างรายการไดเรกทอรีผลิตภัณฑ์
หน้าต่างหลักของหัวข้อทดสอบดำเนินการคำสั่ง(“e1cib/command/Directory.Warehouses.Create”);
แอปพลิเคชันภายใต้ Test.ExpectDisplayObject(พิมพ์ ( “แบบทดสอบ”), "คลังสินค้า*" );
แบบฟอร์มทดสอบ= แอปพลิเคชันภายใต้ Test.FindObject(พิมพ์ ( “แบบทดสอบ”),
"คลังสินค้า*" );
TestForm.เปิดใช้งาน();
// ตั้งชื่อผลิตภัณฑ์ใหม่
องค์ประกอบแบบฟอร์ม = TestForm.FindObject(พิมพ์ ( “กำลังทดสอบ FormField”),
"ชื่อ"
);
องค์ประกอบแบบฟอร์มเปิดใช้งาน();
องค์ประกอบแบบฟอร์ม EnterText(“การทดสอบคลังสินค้า”);
// เขียนองค์ประกอบ
องค์ประกอบแบบฟอร์ม = TestForm.FindObject(พิมพ์ ( “FormButton กำลังถูกทดสอบ”),
“บันทึกและปิด”
);
องค์ประกอบแบบฟอร์มคลิก();
สิ้นสุดขั้นตอน

ในกล่องโต้ตอบตัวเลือกการเปิดใช้ ค่า "เรียกใช้ในฐานะตัวจัดการการทดสอบ" ถูกเลือกไว้เป็นอันดับแรก และเซสชันผู้ใช้ถูกเปิดใช้งานโดยใช้คีย์ผสม Ctrl+F5

จากนั้นในกล่องโต้ตอบ ค่า “เรียกใช้เป็นไคลเอ็นต์การทดสอบ” ถูกเลือก โดยใช้คีย์ผสม Ctrl+F5 เพื่อเปิดเซสชันผู้ใช้ที่สอง

วิธีนี้ทำให้เราหลีกเลี่ยงความจำเป็นในการระบุพารามิเตอร์บรรทัดคำสั่งที่จำเป็นด้วยตนเอง

โค้ดด้านบนทำงานค่อนข้างง่าย แต่เมื่อสถานการณ์มีความซับซ้อนมากขึ้น ขนาดโค้ดก็จะเพิ่มขึ้นเมื่อต้องอธิบายการโต้ตอบของผู้ใช้แต่ละครั้ง

นี่คือที่มาของฟีเจอร์ใหม่อีกประการหนึ่งของแพลตฟอร์ม – บันทึกบันทึกการกระทำของผู้ใช้

ในการดำเนินการนี้ คุณจะต้องเรียกใช้แอปพลิเคชันในโหมดพิเศษ:

หากต้องการขยายให้คลิกที่ภาพ

มีปุ่มหลายปุ่มปรากฏขึ้นที่ส่วนหัวของโปรแกรม:

ปุ่มต่างๆ มีไว้เพื่อ:

  • เริ่ม/หยุดการบันทึก;
  • การยุติการบันทึก
  • เสร็จสิ้นการบันทึก

หลังจากการบันทึกเสร็จสิ้น เอกสารข้อความจะเปิดขึ้นบนหน้าจอ ซึ่งเป็นลำดับการดำเนินการของผู้ใช้ที่บันทึกไว้ในไฟล์ XML

หากต้องการขยายให้คลิกที่ภาพ

บันทึกที่บันทึกไว้สามารถแปลงเป็นโค้ดโปรแกรม ซึ่งสามารถนำไปใช้ในสคริปต์ทดสอบได้

เพื่อจุดประสงค์นี้ จึงมีจุดมุ่งหมายในการประมวลผล “User Action Log Conversion” (UILogToScript.epf) ซึ่งสามารถรับได้จากเว็บไซต์ ITS

หากต้องการขยายให้คลิกที่ภาพ

จากผลการประมวลผล เราได้รับโค้ดที่สร้างขึ้นในภาษาในตัว ควรวางรหัสนี้ลงในโมดูลแบบฟอร์มการประมวลผลการทดสอบ

โปรดทราบว่าในโค้ดที่สร้างขึ้น หมายเลขที่มากกว่า 999 หรือน้อยกว่า -999 จะถูกส่งออกโดยใช้ช่องว่างที่ไม่แยกเป็นตัวคั่นกลุ่ม (เช่น "1234" แทนที่จะเป็น "1234")

ต้องลบอักขระนี้ออกจากรหัสที่ได้รับด้วยตนเอง

ส่วนของโค้ดที่มีการเชื่อมต่อกับไคลเอนต์ถูกสร้างขึ้นโดยอัตโนมัติโดยการประมวลผล

ในตัวอย่างของเรา เราได้โค้ดต่อไปนี้:

&บนไคลเอนต์
ขั้นตอน รันการทดสอบ(ทีม )
ทดสอบสถานการณ์_23_03_2014();
สิ้นสุดขั้นตอน &บนไคลเอ็นต์
ขั้นตอน ทดสอบสถานการณ์_23_03_2014() แอปพลิเคชันทดสอบ= ใหม่ การสมัครภายใต้การทดสอบ();
เวลาสิ้นสุดที่รอคอย= วันที่ปัจจุบัน () + 60 ;
เชื่อมต่อแล้ว = เท็จ ;
คำอธิบายข้อผิดพลาดการเชื่อมต่อ= “” ;
ยังไม่มี CurrentDate() >= เวลาสิ้นสุดที่รอคอยวงจร
พยายาม
ทดสอบแอปพลิเคชัน SetConnection();
เชื่อมต่อแล้ว = จริง ;
ยกเลิก ;
ข้อยกเว้น
คำอธิบายข้อผิดพลาดการเชื่อมต่อ= คำอธิบายข้อผิดพลาด();
ความพยายามสิ้นสุด ;
เอ็นด์ไซเคิล ;
ถ้าไม่เชื่อมต่อแล้ว
แอปพลิเคชันทดสอบ= ไม่ได้กำหนด ;
รายงาน (+ Symbols.PS + คำอธิบายข้อผิดพลาดการเชื่อมต่อ);
กลับ ;
สิ้นสุดถ้า ; ( แอปพลิเคชันทดสอบ);
(แอปพลิเคชันทดสอบ); สิ้นสุดขั้นตอน &บนไคลเอ็นต์
ขั้นตอน หน้าต่างแอปพลิเคชันคู่สัญญาปุ่มสร้างกด(แอปพลิเคชันทดสอบ)
หน้าต่างการใช้งานคู่สัญญา= (ประเภท (
“หน้าต่างแอปพลิเคชันไคลเอนต์ภายใต้การทดสอบ”), “คู่สัญญา” , , 30 );
หน้าต่างการใช้งานผู้รับเหมาแบบฟอร์มผู้รับเหมา= ผู้รับเหมางานหน้าต่าง ค้นหาวัตถุ(พิมพ์ (
“แบบทดสอบ”), “คู่สัญญา”);
ปุ่มสร้าง = ผู้รับเหมางานหน้าต่าง แบบฟอร์มผู้รับเหมา ค้นหาวัตถุ(พิมพ์ (
“FormButton กำลังถูกทดสอบ”), "สร้าง" );
ปุ่มสร้างคลิก(); สิ้นสุดขั้นตอน &บนไคลเอ็นต์
ขั้นตอน หน้าต่างแอปพลิเคชันCounterpartyCreateButtonRecordAndClosePress(แอปพลิเคชันทดสอบ) WindowApplicationsCounterpartyCreation= TestApplication.FindObject(พิมพ์ (
“หน้าต่างแอปพลิเคชันไคลเอนต์ภายใต้การทดสอบ”), “คู่สัญญา (การสร้าง)”, , 30 );
WindowApplicationsAccountCreationFormAccountCreation=
หน้าต่างแอปพลิเคชัน CounterpartyCreation.FindObject(พิมพ์ ( “แบบทดสอบ”),
“คู่สัญญา (การสร้าง)”);
ชื่อฟิลด์=
(พิมพ์ (
“กำลังทดสอบ FormField”), "ชื่อ");
FieldName.EnterText("ใหม่" ); ราคาฟิลด์วิว = WindowApplicationsAccountCreationFormAccountCreation.FindObject(พิมพ์ (
“กำลังทดสอบ FormField”), “ประเภทราคา”);
FieldTypePrice.เปิดใช้งาน(); ประเภทฟิลด์ราคาเลือก(); FieldTypePrice.ExpectFormationDropdownList(); FieldTypePrice.ExecuteSelectionFromSelectionList(“การจัดซื้อ”); ปุ่มบันทึกIปิด=
WindowApplicationsAccountCreationFormAccountCreation.FindObject(พิมพ์ (
“FormButton กำลังถูกทดสอบ”), “บันทึกและปิด”);
ButtonRecordICloseกด(); สิ้นสุดขั้นตอน

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

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

จะใช้ตัวจัดการการทดสอบหนึ่งตัว และไคลเอนต์สองตัวจะเชื่อมต่อกับมันบนพอร์ตที่แตกต่างกัน

เนื่องจากสคริปต์ทดสอบคือการประมวลผลบรรทัดโค้ดที่ถูกดำเนินการตามลำดับ นักพัฒนาจึงจำเป็นต้องอธิบายลำดับการดำเนินการสำหรับลูกค้าแต่ละราย

มาดูกันว่าโค้ดจะมีลักษณะอย่างไรเมื่อใช้ไคลเอนต์ทดสอบสองตัว:

ขั้นตอน ทดสอบสถานการณ์_23_03_2014_ลูกค้าสองราย() //ลูกค้ารายแรก
ใบสมัครทดสอบ1= ใหม่ การสมัครภายใต้การทดสอบ();
เวลาสิ้นสุดที่รอคอย= วันที่ปัจจุบัน () + 60 ;
เชื่อมต่อแล้ว = เท็จ ;
คำอธิบายข้อผิดพลาดการเชื่อมต่อ= “” ;
ยังไม่มี CurrentDate() >= เวลาสิ้นสุดที่รอคอยวงจร
พยายาม
ทดสอบแอปพลิเคชัน 1. สร้างการเชื่อมต่อ();
เชื่อมต่อแล้ว = จริง ;
ยกเลิก ;
ข้อยกเว้น
คำอธิบายข้อผิดพลาดการเชื่อมต่อ= คำอธิบายข้อผิดพลาด();
ความพยายามสิ้นสุด ;
เอ็นด์ไซเคิล ; // ลูกค้าคนที่สอง
ทดสอบใบสมัคร2= ใหม่ การสมัครภายใต้การทดสอบ();
เวลาสิ้นสุดที่รอคอย= วันที่ปัจจุบัน () + 60 ;
คำอธิบายข้อผิดพลาดการเชื่อมต่อ= “” ;
ยังไม่มี CurrentDate() >= เวลาสิ้นสุดที่รอคอยวงจร
พยายาม
ทดสอบแอปพลิเคชัน 2. สร้างการเชื่อมต่อ();
เชื่อมต่อแล้ว = จริง ;
ยกเลิก ;
ข้อยกเว้น
คำอธิบายข้อผิดพลาดการเชื่อมต่อ= คำอธิบายข้อผิดพลาด();
ความพยายามสิ้นสุด ;
เอ็นด์ไซเคิล ;
ถ้าไม่เชื่อมต่อแล้ว
ใบสมัครทดสอบ1= ไม่ได้กำหนด ;
ทดสอบใบสมัคร2= ไม่ได้กำหนด ;
เพื่อรายงาน ( “เราไม่สามารถสร้างการเชื่อมต่อได้!”+ สัญลักษณ์.PS + คำอธิบายข้อผิดพลาดการเชื่อมต่อ);
กลับ ;
สิ้นสุดถ้า ; //แยกขั้นตอนสำหรับลูกค้าทดสอบแต่ละราย
หน้าต่างแอปพลิเคชันคู่สัญญาปุ่มสร้างกด1(ใบสมัครทดสอบ1);
หน้าต่างแอปพลิเคชันคู่สัญญาปุ่มสร้างกด2(ทดสอบใบสมัคร2);
หน้าต่างแอปพลิเคชันCounterpartyสร้างปุ่มบันทึกและปิดกด1(ใบสมัครทดสอบ1);
หน้าต่างแอปพลิเคชันCounterpartyสร้างปุ่มบันทึกและปิดกด2(ทดสอบใบสมัคร2); สิ้นสุดขั้นตอน

การหยุดชั่วคราวระหว่างการกระทำที่ดำเนินการไปแล้วยังต้องได้รับการตั้งโปรแกรมแยกกัน สคริปต์สำหรับลูกค้าจำนวนมากอ่านได้ยาก

นอกจากนี้ การทดสอบอัตโนมัติใช้ได้กับแบบฟอร์มที่ได้รับการจัดการเท่านั้น

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

ตัวอย่างเช่น หากคุณเปลี่ยนรหัสการกำหนดค่า ก็ไม่จำเป็นต้องทำการทดสอบซ้ำ เนื่องจากการดำเนินการเดียวกันที่มีการควบคุมเดียวกันจะยังคงดำเนินการบนไคลเอนต์ทดสอบ

ผู้ทดสอบสามารถใช้กลไกการทดสอบอัตโนมัติเพื่อบันทึกลำดับการดำเนินการที่นำไปสู่ข้อผิดพลาด ข้อมูลที่บันทึกไว้สามารถส่งไปยังนักพัฒนาเพื่อแก้ไขข้อผิดพลาดที่ตรวจพบได้

การทดสอบอัตโนมัติยังสามารถใช้เพื่อระบุการล็อกและการหยุดชะงักซ้ำซ้อนในการกำหนดค่าได้อีกด้วย

ในการดำเนินการนี้ คุณจะต้องใช้สคริปต์ที่สร้างปัญหาขึ้นมาใหม่ และเริ่มค้นหาและกำจัดสาเหตุ

ผู้เชี่ยวชาญหลายคนและผู้ใช้ผลิตภัณฑ์ที่ใช้ 1C Enterprise 8 ควรเคยได้ยินเกี่ยวกับการเปิดตัวผลิตภัณฑ์ซอฟต์แวร์ใหม่สำหรับการทดสอบการกำหนดค่าใด ๆ (ตามคำแถลงอย่างเป็นทางการ) และชื่อของมันคือ 1C Scenario Testing 8 ฉันขอชี้แจงทันทีว่าสิ่งนี้ เครื่องมือนี้ได้รับการพัฒนาโดยตรงจากบริษัท 1C ไม่ใช่นักเคลื่อนไหวบุคคลที่สาม ฉันไม่พบข้อมูลเกี่ยวกับผลิตภัณฑ์นี้ (นอกเหนือจากการพิมพ์ซ้ำไม่รู้จบจากเว็บไซต์ 1C) ซึ่งฉันสามารถสรุปได้ว่าไม่มีอยู่จริง และผลิตภัณฑ์รีวิวนั้นหาไม่ได้ง่าย อย่างน้อยก็สำหรับผู้ที่ไม่ต้องการจ่ายเงิน 30,000 เพื่อขอใบอนุญาตหรือยังไม่มีพร้อมกับการจัดหาเครื่องมือ8 ไม่ทางใดก็ทางหนึ่งหลังจากผ่านการทดสอบบางอย่างฉันก็สามารถจับเครื่องดนตรีนี้ได้ และจากนี้ไปฉันจะเริ่มต้นในรายละเอียดเพิ่มเติม

การติดตั้ง.

ในขณะนี้ ฉันรู้วิธีรับเครื่องมือนี้อย่างเป็นทางการดังต่อไปนี้:

ก) รวมอยู่ในการส่งมอบ "1C: Corporate Toolkit 8"

b) สามารถดาวน์โหลดได้จากเว็บไซต์สนับสนุนผู้ใช้ 1C

c) มีเวอร์ชันก่อนหน้าปรากฏบนดิสก์ ITS ดูเหมือนว่าตั้งแต่เดือนตุลาคม

แอปพลิเคชันนั้นมีน้ำหนักประมาณ 2MB แต่ยังเร็วเกินไปที่จะดีใจ - ในการติดตั้งคุณต้องระบุเส้นทางไปยังโฟลเดอร์ด้วยเทมเพลต ตามที่ฉันเข้าใจ ไดเร็กทอรีนี้มีอยู่ในการกำหนดค่าพื้นฐานหรือในการกำหนดค่าการทดสอบที่มาพร้อมกับโปรแกรม ควรติดตั้งก่อน (~ 90MB) จากนั้นเราจะติดตั้งยูทิลิตี้อย่างปลอดภัยและลบการกำหนดค่าที่ไม่จำเป็นออกไป

หลังจากการยักย้ายง่าย ๆ เหล่านี้เราจะได้รับแคตตาล็อกพร้อมเครื่องมือที่เราสนใจ ตัวโปรแกรมประกอบด้วยการประมวลผล *.epf ภายนอกสองตัว นอกจากนี้ยังมีคำอธิบายสั้น ๆ และการทดสอบการสาธิตสำหรับการกำหนดค่าที่บ่งชี้ที่เราลบออก

ให้ฉันชี้แจงสิ่งที่ฉันต้องทำงานด้วย ฉันได้รับเวอร์ชัน 1.2.2.1 ซึ่งแน่นอนว่าไม่ใช่เวอร์ชันหลัก ในการกำหนดค่าการทดสอบ ฉันใช้การกำหนดค่าตาม 1C Enterprise 8.1

การซักถาม

ตามที่ฉันได้กล่าวไปแล้ว การทดสอบสถานการณ์ 1C ประกอบด้วยการประมวลผลภายนอกสองรายการ: RecordTests และ RunTests

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

ขั้นแรกฉันจะอธิบายฟังก์ชันหลักของเครื่องมือนี้ด้วยคำพูดของฉันเองจากนั้นฉันจะพยายามเจาะลึกการใช้งานฟังก์ชันแต่ละอย่าง

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

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

ข้าว. 1 การทดสอบบันทึกการประมวลผล

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

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

มีรูปแบบของขั้นตอนทั่วไปที่สร้างขึ้นโดยอัตโนมัติขึ้นอยู่กับวัตถุที่กำลังทดสอบ นี่คือตัวอย่างทั่วไป: ทางด้านซ้าย ให้เลือกเอกสารเฉพาะ (ไดเรกทอรี ฯลฯ) แล้วลากไปทางด้านขวา หลังจากนั้นเทมเพลตของขั้นตอนทั่วไปจะถูกสร้างขึ้นโดยอัตโนมัติ จากนั้นคุณสามารถแก้ไขได้ตามที่คุณต้องการ

แต่ละขั้นตอนสามารถดำเนินการได้โดยตรงในการประมวลผลนี้โดยการกด F12 ฟังก์ชั่นนี้ทำให้เกิดคำถามถึงความจำเป็นในการประมวลผล RunTests ครั้งที่สอง ฉันคิดว่ามันจะสมเหตุสมผลที่จะรวมมันเข้าด้วยกันในอนาคต

ข้าว. 2 การประมวลผลการทดสอบรัน

การทดสอบที่เสร็จสมบูรณ์จะถูกเขียนลงในเอกสาร xml ซึ่งเราเปิดในฐานข้อมูลภายใต้การทดสอบผ่านการประมวลผล RunTest และสังเกตว่าทุกอย่างทำงานได้ดีสำหรับเราอย่างไร

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

เมื่อมองไปข้างหน้าเพื่อไม่ให้กลับมาที่การประมวลผลนี้อีกฉันจะบอกว่าฉันรู้สึกประหลาดใจทันที ด้วยตัวเลือกที่จำเป็นและไม่จำเป็นที่หลากหลายทั้งหมด จึงไม่มีที่สำหรับโหมดทดสอบการทำงานที่ละเลยข้อผิดพลาด ซึ่งทำให้ไม่เป็นที่พอใจอย่างยิ่งที่จะทำการทดสอบเชิงลบและการทดสอบโดยทั่วไป เมื่อเกิดความคลาดเคลื่อนเพียงเล็กน้อย การประมวลผล "อัตโนมัติ" ของเราจะเข้าสู่ภาวะมึนงง

ตอนนี้เรามาดูข้อดีข้อเสียของการใช้ระบบนี้ในภาคสนามกัน

คุณสมบัติการใช้งาน

ตามคำแถลงอย่างเป็นทางการ การทดสอบสถานการณ์ 1C ควรเป็นเครื่องมือสากลในแง่ของความเข้ากันได้กับการกำหนดค่าต่างๆ ฉันคิดว่าการกำหนดค่าของฉันเป็นการทดสอบที่ยอดเยี่ยมสำหรับข้อความนี้

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

นี่คือสิ่งที่ฉันต้องจัดการ:

  1. ด้วยเหตุผลบางประการ เนื่องจากมีตัวเลือกมากมายสำหรับขั้นตอนการทดสอบ จึงไม่มีขั้นตอนในการลบออบเจ็กต์ที่ประมวลผล ในตอนแรก ฉันต้องใช้ขั้นตอน "การประมวลผล" และเขียนโค้ดด้วยตนเองเพื่อลบออบเจ็กต์ ท้ายที่สุด ฉันตัดสินใจที่จะไม่ใช้งานมันในตอนนี้และทำงานกับข้อมูลที่มีอยู่
  2. ในความคิดของฉัน หนึ่งในสิ่งที่มีประโยชน์มากที่สุดคือขั้นตอน "เปรียบเทียบการเคลื่อนไหวกับมาตรฐาน" นี่คือสิ่งที่หายไป ขณะนี้ คุณสามารถติดตามการเปลี่ยนแปลงทั้งหมดในธุรกรรมที่ไม่ได้วางแผนไว้ได้
    ขั้นตอนนี้ต้องมีการปรับแต่งอย่างละเอียดมาก ตัวอย่างเช่น เราจำเป็นต้องติดตามความเคลื่อนไหวของเอกสารในรีจิสเตอร์สี่รายการ และแต่ละรายการก็มีชุดฟิลด์และการวิเคราะห์ของตัวเอง มีค่าที่จะเปลี่ยนแปลงเมื่อวัตถุเปลี่ยนแปลงและจะไม่ใช่ข้อผิดพลาด ตัวอย่างเช่น ฟิลด์อย่าง TimeStamp ซึ่งจะบันทึกเวลาที่ประมวลผลเอกสาร หรือหมายเลขเอกสาร หากมีการกำหนดโดยอัตโนมัติ ช่วงเวลาดังกล่าวทั้งหมดจะทำให้เกิดข้อผิดพลาดเมื่อทำการทดสอบ เป็นเรื่องดีที่นักพัฒนาคำนึงถึงสิ่งนี้และทำให้สามารถปิดการใช้งานการตรวจสอบสำหรับฟิลด์ที่ไม่คงที่ได้ สิ่งที่เราต้องทำคือค้นหาฟิลด์ดังกล่าว
    อย่างไรก็ตาม แม้แต่ที่นี่ก็ยังมีข้อผิดพลาดอยู่บ้าง ตัวอย่างเช่น ด้วยเหตุผลบางประการในแบบฟอร์มการตั้งค่าขั้นตอนของฉัน หากมีการแสดงการลงทะเบียนมากกว่าหนึ่งรายการ ความเคลื่อนไหวสำหรับการลงทะเบียนเหล่านั้นจะไม่แสดง ฉันต้องปิดการลงทะเบียนเพิ่มเติมและกำหนดค่าแต่ละรายการลงทะเบียนแยกกัน
    และสิ่งที่ฉันไม่ชอบเลย ตามที่ฉันสามารถเข้าใจได้ เฉพาะการเคลื่อนไหวเหล่านั้นที่อยู่ในมาตรฐานเท่านั้นที่ถูกตรวจสอบโดยรีจิสเตอร์ ตัวอย่างเช่น หากมีหนึ่งธุรกรรมในมาตรฐาน และสามรายการในฐานข้อมูลที่ทดสอบ จะไม่มีข้อผิดพลาดระหว่างการเปรียบเทียบ เพราะ รีจิสเตอร์ทั้งหมดจะถูกค้นหาด้วยพารามิเตอร์อ้างอิง หากทุกอย่างเรียบร้อย การปรากฏตัวในรีจิสเตอร์ของรายการอื่นที่เกี่ยวข้องกับออบเจ็กต์เดียวกันจะไม่ถูกติดตาม
  3. ขั้นตอนในการกรอกแบบฟอร์มตามสคริปต์โดยอัตโนมัติอาจไม่ทำงานอย่างถูกต้องเสมอไป ข้อผิดพลาดมักเกิดขึ้นในช่องและวันที่อ้างอิง นี่อาจไม่ใช่ข้อผิดพลาดของเครื่องมือ แต่เป็นคุณสมบัติของฟิลด์ แต่อย่างไรก็ตามคุณจะต้องแก้ไขการตั้งค่าเหล่านั้น
  4. ตัวเลือกขั้นตอนที่เป็นไปได้เชื่อมโยงกับออบเจ็กต์การกำหนดค่าเฉพาะ สิ่งที่มีอยู่ในไดเรกทอรีอาจไม่สามารถใช้ได้สำหรับการลงทะเบียน ฯลฯ มันจะแม่นยำกว่าถ้าบอกว่าการผูกนั้นไม่ใช่เพื่อวัตถุ แต่เป็นคุณสมบัติของพวกเขาเช่นถ้าการลงทะเบียนไม่มีแบบฟอร์มก็จะไม่มีขั้นตอนการกรอก
    แต่ก็มีข้อบกพร่องเช่นขั้นตอน "กดปุ่ม" มักจะไม่พร้อมใช้งานสำหรับฉันหรือสามารถเลือกได้เอง แต่จะไม่มีอะไรเกิดขึ้น
  5. มีคำถามมากมายเกี่ยวกับการทดสอบอัตโนมัติในบางกรณีที่ซับซ้อนเป็นพิเศษ นี่เป็นเรื่องจริงโดยเฉพาะอย่างยิ่งสำหรับเอกสารที่ทำงานเกี่ยวกับสารตกค้าง ซึ่งเกือบทุกด้านมีบทบาทสำคัญ ซึ่งบางแง่มุมก็เป็นปัญหาอย่างมากในการนำไปใช้ในการใช้งานเครื่องมือในปัจจุบัน มีข้อจำกัดหลายประการในการกำหนดค่าสำหรับการสร้างเอกสารในวันเดียวกันและหมายเลขเดียวกัน เป็นต้น จนถึงตอนนี้ ฉันตัดสินใจใช้ออบเจ็กต์ที่มีอยู่แล้วโดยไม่ต้องสร้างออบเจ็กต์ใหม่

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

ตัวเลือกการสมัคร

ขณะนี้ฉันได้เลือกแนวคิดต่อไปนี้เพื่อแนะนำเครื่องมือที่เป็นปัญหาในกระบวนการทดสอบ

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

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

กล่าวอีกนัยหนึ่ง เราทำการทดสอบการถดถอยกับสถานการณ์เหล่านี้ และนี่เป็นหนึ่งในประเภทการทดสอบที่สำคัญและยากที่สุดในการใช้งานด้วยตนเองใน 1C Enterprise ท้ายที่สุดแล้ว บ่อยครั้งไม่เพียงแต่เอกสารจะเปลี่ยนแปลงเท่านั้น แต่ยังรวมถึงฟังก์ชันการโพสต์เอกสารซึ่งเชื่อมต่อกับเอกสารทั้งหมดของระบบ และนี่คือจุดที่สคริปต์ของเราจะมีบทบาทเป็นเครือข่ายที่เอกสารทั้งหมดที่ล้มเหลว จะตก.

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

โดยปกติแล้วขอบเขตของการใช้เครื่องมือนี้ไม่ได้จบเพียงแค่นั้น มีตัวเลือกที่เป็นไปได้มากมาย ฉันให้เฉพาะตัวเลือกแรกที่นึกถึงเท่านั้น

บทสรุป.

เครื่องมือนี้มีอนาคตอย่างไม่ต้องสงสัย สำหรับฉันดูเหมือนว่าศักยภาพส่วนใหญ่ยังไม่ได้รับการเปิดเผยในเวอร์ชันต่อ ๆ ไปและไม่ต้องสงสัยเลยว่าผลิตภัณฑ์จะค้นหาผู้ใช้ซึ่งในความคิดของฉันซึ่งเห็นได้ชัดว่าไม่ตรงกับความคิดเห็นของผู้ผลิตจะมีแนวโน้มมากที่สุด ไม่ใช่ผู้ใช้ทั่วไปที่ไม่มีความรู้เฉพาะด้านไอทีและเป็นบุคคลจากฝ่ายพัฒนา เพราะ การใช้เครื่องมือนี้อย่างมีประสิทธิภาพไม่ใช่งานที่ง่ายที่สุด โดยเฉพาะในการกำหนดค่าที่ซับซ้อน

สวัสดีเพื่อน!

ฉันขอแจ้งให้คุณทราบถึงการกำหนดค่าขนาดเล็กสำหรับการทดสอบสถานการณ์ของโซลูชันตาม 1C:Enterprise 8.3 แบบฟอร์มที่ได้รับการจัดการ

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

เป้าหมายหลักของผู้ทดสอบ:

  1. จัดระเบียบงานโดยรวมด้วยการทดสอบในสภาพแวดล้อมเดียวพร้อมรองรับการกำหนดเวอร์ชัน การจับภาพเพื่อการแก้ไข และฟังก์ชันอื่น ๆ ที่คุ้นเคยสำหรับการทำงานกับโค้ด
  2. มอบวิธีง่ายๆ ให้กับผู้ใช้ในการสร้าง สนับสนุน และขยายการทดสอบสถานการณ์จริงในเวลาที่เหมาะสม โดยมีเกณฑ์ขั้นต่ำในการเข้าสู่กระบวนการ และโครงสร้างพื้นฐานที่เชื่อถือได้

เมื่อใช้ผู้ทดสอบ คุณสามารถวางใจในการแก้ปัญหาต่อไปนี้:

  1. ความครอบคลุมการใช้งานในระดับสูง ผู้ทดสอบให้ความสำคัญกับกระบวนการพัฒนาการทดสอบเป็นอย่างดี ซึ่งส่งผลดีต่อปริมาณและคุณภาพของการทดสอบที่สร้างขึ้น
  2. การทดสอบเขียนด้วยภาษาโปรแกรม 1C ซึ่งไม่เพียงแต่เป็นเครื่องมือที่คุ้นเคยเท่านั้น แต่ยังช่วยให้คุณใช้ฟังก์ชันแพลตฟอร์มทั้งชุดในการทดสอบได้ และที่สำคัญที่สุดคือช่วยให้คุณควบคุมความคืบหน้าของการทดสอบโดยทางโปรแกรมโดยไม่ต้องพึ่งพา โมเดลในตัวในเครื่องมือทดสอบ
  3. คุณสามารถสร้างไลบรารีจากการทดสอบได้ ตัวอย่างเช่น คุณสามารถสร้างการทดสอบที่เปิดหน้าต่างการค้นหาในรายการไดนามิก หรือสร้างรายงานโดยอิงตามพารามิเตอร์ที่ส่ง หากคุณต้องการมียอดคงเหลือในสต๊อกสำหรับการทดสอบ คุณสามารถดำเนินการทดสอบห้องสมุด โดยคุณโอนองค์ประกอบของยอดคงเหลือที่ต้องการเข้าไป และยอดคงเหลือนี้จะถูกแปลงเป็นทุน
  4. การทดสอบตรรกะทางธุรกิจอย่างง่าย โดยไม่ต้องเปรียบเทียบกับข้อมูลจากฐานข้อมูลอื่น ไม่มีการร้องขอโดยตรงไปยังแอปพลิเคชันภายใต้การทดสอบ โดยไม่มีเลย์เอาต์ที่มีข้อมูลต่อเนื่องกัน "ที่อื่น" ข้อมูลทั้งหมดสามารถบันทึกไว้ในการทดสอบ ในรูปแบบ และแก้ไขได้ หากจำเป็น
  5. นอกเหนือจากข้อเท็จจริงที่ว่าการทดสอบทั้งหมดจะถูกจัดเก็บไว้ในฐานข้อมูล และผู้ใช้เครื่องทดสอบคนใดก็ตามสามารถใช้การทดสอบที่เขียนโดยโปรแกรมเมอร์รายอื่นได้ ผู้ทดสอบยังมีความสามารถในการอัปโหลด/ดาวน์โหลดการทดสอบเพิ่มเติมไปยังระบบไฟล์อีกด้วย สิ่งนี้มีประโยชน์สำหรับการซิงโครไนซ์การทดสอบกับระบบควบคุมเวอร์ชัน เช่น Git เพิ่มเติม

ฐานสาธิตได้พัฒนาโครงสร้างพื้นฐานขนาดเล็กของการทดสอบที่เชื่อมต่อถึงกัน ซึ่งสามารถนำมาใช้เมื่อพัฒนาการทดสอบของคุณเอง นอกจากนี้ในฐานข้อมูลยังมีตัวอย่างการสร้างคำสั่งซื้อไปยังเอกสารซัพพลายเออร์สำหรับ ERP2 (สาธิต)

สำหรับการกำหนดค่า ERP2 (สาธิต) พื้นที่เก็บข้อมูลจะถูกสร้างขึ้น https://github.com/grumagargler/ERP2
ฉันอัปโหลดการทดสอบสาธิตที่นั่น ฉันหวังว่าความคิดริเริ่มนี้จะไม่มีใครสังเกตเห็นจากผู้ที่ชื่นชอบและจะมีการทดสอบเพิ่มเติม

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

ผู้ทดสอบฟรี พัฒนาและสนับสนุนตามความต้องการของเราเอง โดยไม่มีจุดประสงค์ทางการค้า

ขอขอบคุณที่สนใจในระบบและขอให้โชคดีกับการทดสอบนะเพื่อนๆ!

อัปเดต 1.3.2.7

เพิ่มขั้นตอน LogError ซึ่งใช้ในการเพิ่มข้อความลงในบันทึกข้อผิดพลาดจากโค้ดสคริปต์โดยทางโปรแกรมโดยไม่หยุดการทำงานของสคริปต์

ขณะนี้ฟังก์ชันทั้งหมดสำหรับการทำงานกับฟิลด์สามารถนำทางผ่านส่วนที่เป็นตารางได้ ตัวอย่างเช่น นี่คือวิธีที่คุณสามารถตรวจสอบจำนวนเงินคงค้างในบรรทัดที่ห้า: ตรวจสอบ ("#Accruals / Results [ 5 ]", 1,000);

ฟังก์ชั่น Check พยายามตรวจสอบค่าตัวเลขโดยไม่คำนึงถึงตัวคั่นสามและส่วนทศนิยม

เพิ่ม Launch Log ซึ่งมีการบันทึกเหตุการณ์การเรียกใช้สคริปต์

เพิ่มการเปลี่ยนจากสคริปต์เป็นบันทึกการเริ่มต้นและบันทึกข้อผิดพลาด

เพิ่มผู้ช่วยในแผนผังการเลือกสนาม

มีการเพิ่มความช่วยเหลือออนไลน์เกี่ยวกับวิธีการทดสอบในตัวให้กับผู้ช่วยแล้ว

เพิ่มเวอร์ชันแอปพลิเคชันแล้ว สามารถตั้งค่าเวอร์ชันสำหรับแอปพลิเคชันโดยรวมและแยกกันสำหรับผู้ใช้แต่ละคน

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



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

เพิ่มประสิทธิภาพการอัพโหลดสคริปต์ไปยังไฟล์ ไฟล์ที่อัปโหลดจะถูกสร้างขึ้นในรูปแบบ bsl

คำสั่งเปลี่ยน:

หลังจากอัพเดตการกำหนดค่า ก่อนที่จะรันสคริปต์ ขอแนะนำให้ระบุเวอร์ชันสำหรับโซลูชันของคุณ ซึ่งทำได้ในไดเร็กทอรี Application

ความสนใจ! การกำหนดค่าเป็นไปตามเวอร์ชัน 8.3.10 แต่รองรับเวอร์ชันก่อนหน้าด้วย ในการดำเนินการนี้ คุณจะต้องตั้งค่าโหมดความเข้ากันได้ที่จำเป็นสำหรับการกำหนดค่าภายใต้เวอร์ชัน 8.3.10 บันทึกการกำหนดค่าลงในไฟล์และใช้เป็นการอัปเดต

การ์ดโซลูชัน 1C: การทดสอบสถานการณ์ 8

เป็นชุดเครื่องมือสำหรับตรวจสอบการทำงานของการกำหนดค่าใด ๆ ของระบบ 1C:Enterprise 8 ผลิตภัณฑ์ช่วยให้คุณสามารถเตรียมการทดสอบที่จำเป็นและดำเนินการด้วยตนเองหรือโดยอัตโนมัติ ในการพัฒนาการทดสอบโดยใช้ "1C: การทดสอบสถานการณ์ 8" ความเข้าใจในการทำงานของการกำหนดค่าที่ได้รับการทดสอบในระดับผู้ใช้ก็เพียงพอแล้ว ไม่จำเป็นต้องมีทักษะการเขียนโปรแกรม

ซื้อ 1C: การทดสอบสถานการณ์ 8

4601546061393 42 000

การออกใบอนุญาต 1C: การทดสอบสถานการณ์ 8

ผลิตภัณฑ์ "1C: การทดสอบสถานการณ์ 8" มีไว้สำหรับใช้กับ สิทธิ์การใช้งานไคลเอ็นต์ "1C:Enterprise 8", เพิ่มจำนวนงาน แพ็คเกจการส่งมอบผลิตภัณฑ์ประกอบด้วยชุดการจัดจำหน่าย, หนังสือ “1C: Scenario Testing 8. User Guide” และข้อตกลงใบอนุญาต

คุณต้องมีการส่งมอบพื้นฐาน (เวอร์ชัน PROF) ของระบบ 1C:Enterprise 8 ผลิตภัณฑ์ไม่ได้มีไว้สำหรับใช้กับ 1C:Enterprise 8 เวอร์ชันพื้นฐาน 1C:การทดสอบสถานการณ์ 8 สามารถใช้บนเวิร์กสเตชันได้อย่างถูกกฎหมาย ของเครือข่ายท้องถิ่นขององค์กร ที่มาพร้อมกับใบอนุญาตไคลเอ็นต์ 1C: Enterprises 8 1C: การทดสอบสถานการณ์ 8 รวมอยู่ในการจัดส่ง 1C: ชุดเครื่องมือขององค์กร 8

สนับสนุนและอัปเดต 1C: การทดสอบสถานการณ์ 8

การสนับสนุนและบริการสำหรับผู้ใช้ที่ลงทะเบียนอยู่ภายใต้กรอบของการสนับสนุนเทคโนโลยีสารสนเทศ (1C:ITS) - 1C:ITS Techno หรือ 1C:ITS Prof. ระยะเวลาสมัครสมาชิกฟรีเมื่อซื้อโปรแกรมคือ 3 เดือน หลังจากการสมัครสมาชิกฟรีหมดอายุ หากต้องการรับบริการสนับสนุนผลิตภัณฑ์ คุณต้องสมัครสมาชิกแบบชำระเงินสำหรับการส่งมอบพื้นฐานของระบบ 1C:Enterprise 8

ผู้ใช้ที่ลงทะเบียนสามารถดาวน์โหลดการอัพเดตได้จากเว็บไซต์ users.v8.1c.ru และจากดิสก์ ITS

ฟังก์ชั่น 1C: การทดสอบสถานการณ์ 8

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

หลักการทดสอบที่คล้ายกันมีอยู่ในโปรแกรมอื่น ๆ แต่ไม่เหมือนกับ 1C: การทดสอบสถานการณ์ 8 ใช้ความสามารถในการพัฒนาการทดสอบที่สะท้อนถึงลักษณะเฉพาะของการทดสอบ 1C: การกำหนดค่า Enterprise 8 ความสามารถเหล่านี้รวมถึง:

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

ในการดำเนินการทดสอบ ไม่จำเป็นต้องมีการเตรียมการกำหนดค่าพิเศษที่จะทดสอบ

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

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

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

ชุดเครื่องมือ 1C:Scenario การทดสอบ 8 ประกอบด้วยการประมวลผลภายนอกสองรายการ (การประมวลผลหนึ่งมีไว้สำหรับการบันทึกการทดสอบ และการประมวลผลที่สองสำหรับการดำเนินการ) รวมถึงชุดการทดสอบ (ไฟล์ในรูปแบบ xml) สำหรับการกำหนดค่า 1C:Enterprise 8 ทั่วไป

สามารถใช้ได้:

  • พันธมิตร - ผู้พัฒนาโซลูชั่นการหมุนเวียน
  • พันธมิตรหรือผู้ใช้ที่มีหน้าที่ทดสอบการกำหนดค่าก่อนอัพเดตฐานข้อมูลการทำงาน