คำเตือนความเสี่ยง: ระวังความเสี่ยงจากการระดมทุนที่ผิดกฎหมายในนาม 'สกุลเงินเสมือน' 'บล็อกเชน' — จากห้าหน่วยงานรวมถึงคณะกรรมการกำกับดูแลการธนาคารและการประกันภัย
ข่าวสาร
ค้นพบ
ค้นหา
เข้าสู่ระบบ
简中
繁中
English
日本語
한국어
ภาษาไทย
Tiếng Việt
BTC
ETH
HTX
SOL
BNB
ดูตลาด
คำอธิบายโดยละเอียดของกรอบการทดสอบ Premo
趣链科技 QTech
特邀专栏作者
2021-09-06 12:45
บทความนี้มีประมาณ 3079 คำ การอ่านทั้งหมดใช้เวลาประมาณ 5 นาที
Premo นั้นถูกใช้งานเป็นหลักโดยใช้ gosdk ของ BitXHub ซึ่งง่ายต่อการขยายและบำรุงรักษา บทความนี้มุ่งเน้

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

【ภาพรวมสถาปัตยกรรม】

กรอบการทดสอบ Premo แสดงไว้ในภาพด้านล่าง เนื้อหาเกี่ยวกับการทดสอบแบ่งออกเป็น "การทดสอบการทำงาน" และ "การทดสอบประสิทธิภาพ" เป็นหลัก การทดสอบการทำงานจะขึ้นอยู่กับการทดสอบและพิสูจน์ให้เห็นถึงเฟรมเวิร์กการทดสอบโดยรวม และการสื่อสารและการเรียกใช้แพลตฟอร์มข้ามเชนของ BitXHub ที่ใช้ gosdk เป็นหลัก การทดสอบประสิทธิภาพส่วนใหญ่รับรู้ผ่าน coroutines บนพื้นฐานของ gosdk Premo ยังดำเนินการทดสอบการผสานรวมอย่างต่อเนื่องบนพื้นฐานของการทดสอบการทำงาน และส่วนการทดสอบการรวมอย่างต่อเนื่องนั้นถูกนำไปใช้กับ GitHub Actions เป็นหลัก

【การทดสอบฟังก์ชั่น】

โมดูลการทดสอบการทำงานส่วนใหญ่ใช้งานโดย gosdk ของโครงการ BitXHub เอง ทดสอบไลบรารีโอเพ่นซอร์สและไลบรารีทดสอบ โมดูลทดสอบการทำงานแบ่งออกเป็นไฟล์ทดสอบหลายไฟล์ตามจุดฟังก์ชันของการทดสอบ กรณีทดสอบในแต่ละไฟล์ทดสอบจะรวมอยู่ในชุดการทดสอบ ในการทดสอบรายวัน ชุดต่างๆ สามารถเรียกใช้ตามจุดฟังก์ชันที่คุณต้องการ ทดสอบดังนี้ ดังรูป ตัวอย่างเช่น กรณีทดสอบทั้งหมดใน model1001_chain_test.go จะรวมอยู่ในชุด model1 หากคุณต้องการเรียกใช้กรณีทดสอบที่เกี่ยวข้องกับลูกโซ่ คุณต้องเรียกใช้ชุด model1 เท่านั้น

▲การทดสอบการขนาน

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

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

【การทดสอบประสิทธิภาพ】

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

▲ การเตรียมห่วงโซ่แอปพลิเคชัน

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

▲ส่งธุรกรรมข้ามเครือข่าย

ตาม TPS ที่ตั้งไว้ล่วงหน้าและจำนวนของห่วงโซ่แอปพลิเคชัน สามารถคำนวณจำนวนธุรกรรมข้ามโซ่ที่แอปพลิเคชันเชนต้องการส่งไปยังแพลตฟอร์มข้ามโซ่ของ BitXHub ภายในหนึ่งวินาทีสามารถคำนวณได้ ประเภทธุรกรรมที่ตั้งไว้ล่วงหน้าสามารถสร้างเนื้อหาธุรกรรมที่เกี่ยวข้องได้ โปรดทราบว่าเนื่องจากข้อกำหนดที่เป็นระเบียบของการทำธุรกรรมข้ามสายโซ่ เราจำเป็นต้องรักษามูลค่า nonce ของธุรกรรมข้ามสายแต่ละรายการในเนื้อหาของธุรกรรม เพื่อส่งธุรกรรมข้ามเชนอย่างเท่าเทียมกันมากขึ้น Premo จะส่งธุรกรรมข้ามเชนบางรายการไปยังแพลตฟอร์มข้ามเชนของ BitXHub ทุกๆ 50 มิลลิวินาที ตัวอย่างเช่น Premo ต้องจำลอง 20 แอพพลิเคชั่นเชนเพื่อส่งทั้งหมด 2,000 รายการ ธุรกรรมข้ามสายต่อวินาที แอปพลิเคชันเชนจำเป็นต้องส่งธุรกรรมข้ามสาย 100 รายการภายใน 1 วินาที และแต่ละแอปพลิเคชันเชนจะส่งธุรกรรมข้ามสาย 5 รายการทุกๆ 50 มิลลิวินาที

▲ สถิติ TPS

TPS ทางสถิติทำได้โดยการสมัครสมาชิกเพื่อบล็อกกิจกรรมบนแพลตฟอร์มข้ามเครือข่ายของ BitXHub แต่ละบล็อกที่ออกโดยแพลตฟอร์มข้ามสายของ BitXHub จะถูกส่งไปยัง Premo โดย Premo คำนวณ TPS โดยการนับจำนวนธุรกรรมในบล็อก ความล่าช้า ของแต่ละธุรกรรม = เวลาที่จะได้รับบล็อก - เวลาของธุรกรรม ถู. Premo พิมพ์ TPS และเวลาแฝงของธุรกรรมโดยเฉลี่ยต่อวินาทีตามข้อมูลด้านบน

【การทดสอบอัตโนมัติ】

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

▲สร้างคำสั่ง

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

▲GitHubActions

ข้อความ

▲allure-server

Allure Report Server แบบโอเพ่นซอร์สบน GitHub รองรับการเผยแพร่รายงานทดสอบผ่าน GitHub Actions และเซิร์ฟเวอร์ allure รองรับนักเทียบท่า

"มีงานมากมายที่ต้องทำด้านบน เราสามารถวิเคราะห์ทีละนิด"

(1) การดำเนินการทริกเกอร์ตาม PR:

สำหรับรายละเอียด โปรดดูบทที่เกี่ยวข้องของเอกสารอย่างเป็นทางการ เหตุการณ์ที่ทริกเกอร์เวิร์กโฟลว์ของการดำเนินการกับ GitHub

(2) ตามการทดสอบฟังก์ชั่นสาขาวัตถุประสงค์:

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

(3) รายงานการทดสอบการเปิดตัว:

การเผยแพร่รายงานการทดสอบส่วนใหญ่ทำผ่านเซิร์ฟเวอร์ allure ซึ่งได้รับการกล่าวถึงข้างต้น สิ่งหนึ่งที่ควรทราบคือไม่สามารถเปิดเผยที่อยู่ของเซิร์ฟเวอร์ที่เกี่ยวข้องกับ allure-server มิฉะนั้นจะทำให้เซิร์ฟเวอร์ไม่เสถียร ปัญหานี้สามารถแก้ไขได้โดยการตั้งค่า [ความลับ] ในคลังสินค้า [การตั้งค่า];

(4) การแจ้งเตือนทางอีเมล:

การแจ้งเตือนทางอีเมลเป็นเรื่องปกติใน GitHub Actions เพียงใช้การกระทำที่เกี่ยวข้อง โปรดทราบว่าเนื่องจากรูปแบบ SMTP ที่ใช้ จึงไม่สามารถเปิดเผยหมายเลขบัญชีและรหัสผ่านของกล่องจดหมายได้ ปัญหานี้สามารถแก้ไขได้โดยการตั้งค่า [ความลับ] ในคลังสินค้า [การตั้งค่า] ในกระบวนการแจ้งเตือนทางอีเมล คุณจำเป็นต้องทราบรหัสผ่านบัญชีของอีเมลปลายทาง และคุณต้องเปิดใช้บริการ SMTP ในอีเมลด้วย ในกรณีนี้ ไม่แนะนำให้กำหนดค่าอีเมลของผู้ส่ง PR ใน การกระทำ.

วิธีแก้ไขที่เหมาะสมคือ: ผ่านกฎการส่งและรับของเมลบ็อกซ์เอง ยกตัวอย่าง Tencent Enterprise Mailbox กล่องจดหมายรองรับการส่งต่ออัตโนมัติตามเนื้อหาของอีเมล เราจำเป็นต้องใส่ชื่อ GitHub ของผู้ส่ง (หรือข้อมูลระบุตัวตนอื่นๆ) ในอีเมล และกฎการส่งและรับจะกรองตามชื่อ และส่งต่ออีเมลไปยังผู้ส่ง PR โดยอัตโนมัติ ด้วยวิธีการข้างต้น ไม่จำเป็นต้องระบุที่อยู่อีเมลที่แตกต่างกันตามผู้ส่ง PR ที่แตกต่างกันในการดำเนินการ เพียงส่งอีเมลไปที่"สถานีขนส่ง"แค่นั้นแหละ.

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


ข้อความ

เกี่ยวกับผู้เขียน

เกี่ยวกับผู้เขียน

จู เว่ยเจี๋ย

ทีม FunChain Technology Data Grid Lab BitXHub


0x
ยินดีต้อนรับเข้าร่วมชุมชนทางการของ Odaily
กลุ่มสมาชิก
https://t.me/Odaily_News
กลุ่มสนทนา
https://t.me/Odaily_CryptoPunk
บัญชีทางการ
https://twitter.com/OdailyChina
กลุ่มสนทนา
https://t.me/Odaily_CryptoPunk
สรุปโดย AI
กลับไปด้านบน
Premo นั้นถูกใช้งานเป็นหลักโดยใช้ gosdk ของ BitXHub ซึ่งง่ายต่อการขยายและบำรุงรักษา บทความนี้มุ่งเน้
ดาวน์โหลดแอพ Odaily พลาเน็ตเดลี่
ให้คนบางกลุ่มเข้าใจ Web3.0 ก่อน
IOS
Android