Overthave เป็นเว็บ-เวิร์คสำหรับ BDD: ปรับขนาดได้กำหนดค่าได้ง่ายใช้งานง่ายขึ้นอยู่กับผู้ดูแลระบบ Flask และ Pydantic

คุณสามารถติดตั้ง overhave ผ่าน PIP จาก PYPI:
pip install overhaveเว็บอินเทอร์เฟซเป็นเครื่องมือพื้นฐานสำหรับการจัดการคุณสมบัติ BDD ประกอบด้วย:
ข้อมูล - หน้าดัชนีพร้อมข้อมูลเพิ่มเติมเกี่ยวกับเครื่องมือหรือโครงการของคุณ
คุณสมบัติการทดสอบการทำงานเวอร์ชันและแท็ก:
ให้อินเทอร์เฟซสำหรับการจัดการระเบียนคุณสมบัติและให้ข้อมูลเกี่ยวกับ ID, ผู้แต่งชื่อ, เวลา, บรรณาธิการและสถานะการเผยแพร่ เป็นไปได้ที่จะค้นหาแก้ไขหรือลบรายการผ่านแผงสคริปต์
ให้อินเทอร์เฟซสำหรับการจัดการการทดสอบและให้ข้อมูลเกี่ยวกับ
มีเวอร์ชันคุณลักษณะที่สอดคล้องกับการทดสอบการทำงาน เวอร์ชันมีการเชื่อมโยง PR ไปยังที่เก็บ GIT ระยะไกล
มีค่าแท็กซึ่งใช้สำหรับการติดแท็กของฟีเจอร์
ผู้ใช้ทดสอบ - ส่วนสำหรับการดูและกำหนดค่าผู้ใช้ทดสอบ
ส่วนย่อยของกลุ่ม
(ในการพัฒนา)
สามารถสร้างคุณสมบัติ การแทนที่ และ/หรือแก้ไขผ่าน แผงสคริปต์ พิเศษในโหมดแก้ไขคุณสมบัติ คุณลักษณะควรมีประเภทที่ลงทะเบียนโดยแอปพลิเคชันชื่อที่ไม่ซ้ำกันรายการงานที่ระบุด้วยรูปแบบดั้งเดิม `PRJ-NUMBER` และข้อความสถานการณ์
แผงสคริปต์ มีตารางขั้นตอน pytest-BDD ทางด้านขวาของอินเตอร์เฟส ขั้นตอนเหล่านี้ควรกำหนดไว้ในโมดูลติดตั้งที่เหมาะสมและลงทะเบียนที่แอปพลิเคชันเมื่อเริ่มต้นขึ้นเพื่อแสดง
ตัวอย่างของแผงสคริปต์ overhave ในโหมดแก้ไขคุณสมบัติ
Overhave สร้างรายงาน Allure หลังจากการทดสอบการดำเนินการใน Web-Interface หากคุณดำเนินการทดสอบด้วยตนเองผ่าน pytest ผลลัพธ์เหล่านี้จะถูกแปลงเป็นรายงาน Allure ด้วยเครื่องมือ Allure CLI รายงานนี้มีคำอธิบายสถานการณ์ตามที่อธิบายไว้ในคุณสมบัติ
ตัวอย่างของรายงาน Allure ที่สร้างขึ้นหลังจากการดำเนินการของคุณลักษณะของ Overhave
Overthave มีโหมดตัวอย่างพิเศษ (ในการพัฒนา) ซึ่งอาจใช้สำหรับการสาธิตเฟรมเวิร์กและการดีบัก / การทดสอบด้วยตนเอง เฟรมเวิร์กจัดเตรียมจุดเข้า CLI สำหรับเซิร์ฟเวอร์ง่ายทำงานในโหมดดีบัก:
make up # start PostgreSQL database and Redis
overhave db create-all # create Overhave database schema
overhave-demo admin # start Overhave admin on port 8076 in debug mode
overhave-demo consumer -s test # start Overhave test execution consumerหมายเหตุ : คุณสามารถเรียกใช้ Admin ในโหมดพิเศษซึ่งไม่ต้องการผู้บริโภค โหมดนี้ใช้ Threadpool สำหรับการรันการทดสอบและการเผยแพร่งานแบบอะซิงโครนัส:
overhave-demo admin --threadpool --language=ruแต่โหมด Threadpool นี้ไม่สามารถลดขนาดได้ในกระบวนทัศน์ Kubernetes ดังนั้นขอแนะนำให้ใช้ผู้บริโภคที่เกี่ยวข้องอย่างแน่นอน
Overthave มี CLI ที่ให้วิธีง่ายๆในการเริ่มต้นบริการเว็บอินเตอร์เฟสเรียกใช้ผู้บริโภคและดำเนินการดำเนินการฐานข้อมูลพื้นฐาน ตัวอย่างด้านล่าง:
overhave db create-all
overhave admin --port 8080
overhave consumer -s publication
overhave api -p 8000 -w 4 หมายเหตุ : บริการเริ่มต้นใช้ชุดของการตั้งค่าดังนั้นคุณสามารถตั้งค่าผ่านสภาพแวดล้อมเสมือนจริงด้วยคำนำหน้า `OVERHAVE_` ตัวอย่างเช่น `OVERHAVE_DB_URL` หากคุณต้องการกำหนดค่าการตั้งค่าอย่างชัดเจนมากขึ้นผ่านการฉีดบริบทโปรดดูส่วนต่อไปของเอกสาร
บริการสามารถกำหนดค่าผ่านการฉีดบริบทแอปพลิเคชันด้วยอินสแตนซ์ที่เตรียมไว้ของวัตถุ overhaveContext บริบทนี้สามารถตั้งค่าได้โดยใช้ฟังก์ชั่น `set_context` ของอินสแตนซ์ `ProxyFactory` ที่เริ่มต้น
ตัวอย่างเช่น `my_custom_context` เตรียม ดังนั้นการเริ่มต้นแอปพลิเคชันสามารถรับรู้ได้ด้วยรหัสติดตาม:
from overhave import overhave_app , overhave_admin_factory
factory = overhave_admin_factory ()
factory . set_context ( my_custom_context )
overhave_app ( factory ). run ( host = 'localhost' , port = 8080 , debug = True )บันทึก :
`overhave_app` เป็นแอปพลิเคชันขวดที่เตรียมไว้พร้อมเปิดใช้งานแล้ว`overhave_factory` เป็นฟังก์ชั่นสำหรับอินสแตนซ์แคช LRU ของการ overhave`ProxyFactory` ; อินสแตนซ์มีการเข้าถึงส่วนประกอบแอปพลิเคชันที่ใช้โดยตรงใน `overhave_app``my_custom_context` เป็นตัวอย่างของการกำหนดค่าบริบทดูOverthave มีสถาปัตยกรรมผู้ผลิตผู้บริโภคตามสตรีม Redis และรองรับ 3 ประเภทของผู้บริโภค:
`overhave_test_execution_factory` ;`overhave_publication_factory` ;`overhave_emulation_factory` หมายเหตุ : `overhave_test_execution_factory` มีความสามารถในการฉีดบริบทและสามารถเสริมด้วยบริบทที่กำหนดเองเป็น `overhave_admin_factory` '
การแทนที่ สนับสนุนโครงสร้างโครงการพิเศษของตัวเอง:
วิธีการที่เหมาะสมคือการสร้าง ไดเรกทอรีราก (เช่น "ตัวอย่าง" ภายในที่เก็บปัจจุบัน) ที่มี คุณสมบัติ การติดตั้ง และไดเรกทอรี ขั้นตอน
ไดเรกทอรี คุณสมบัติ มีประเภทคุณสมบัติที่แตกต่างกันเป็นไดเรกทอรีแยกต่างหากแต่ละรายการสอดคล้องกับชุด PYTEST-BDD ที่กำหนดไว้ล่วงหน้า
ไดเรกทอรี การแข่งขัน มีโมดูล pytest ทั่วไปที่แยกออกจากประเภทคุณสมบัติที่แตกต่างกัน โมดูลเหล่านี้ใช้สำหรับการทดสอบแบบแยก PyTest-BDD มันเป็นสิ่งจำเป็นเนื่องจากกลไกพิเศษของการรวบรวม Pytest-BDD STEPS
ไดเรกทอรี ขั้นตอน ประกอบด้วยแพ็คเกจ PYTEST-BDD ขั้นตอนที่แยกออกจากประเภทคุณสมบัติที่แตกต่างกัน ไดเรกทอรีย่อยแต่ละขั้นตอนมีขั้นตอนที่ประกาศของตัวเองตามประเภทคุณสมบัติที่รองรับ
ดังนั้นจึงเป็นไปได้ที่จะสร้างโครงสร้างแนวนอนของคุณเองของทิศทางผลิตภัณฑ์ที่แตกต่างกันด้วยขั้นตอนที่ไม่ซ้ำกันและการติดตั้ง pytest
หมายเหตุ : โครงสร้างนี้ใช้ในการใช้งาน มากกว่า ข้อมูลที่เกิดขึ้นทำให้มีความเป็นไปได้ที่จะระบุประเภทคุณสมบัติที่ลงทะเบียนใน แผงสคริปต์ เว็บอินเตอร์เฟส นอกจากนี้โครงสร้างนี้จะกำหนดขั้นตอนที่จะแสดงในด้านขวาของ แผงสคริปต์
Overthave มีรูปแบบข้อความพิเศษของคุณเองซึ่งสืบทอด Gherkin จาก PyTest-BDD พร้อมการอัปเดตที่ไม่ซ้ำกัน:
`@severity.blocker` );`PRJ-1234` ;ตัวอย่างของเนื้อหาคุณสมบัติที่เติมอยู่ใน feature_example.rst
Overhave onplicements โซลูชันสำหรับการใช้เครื่องหมาย pytest พร้อมข้อมูลเพิ่มเติมที่กำหนดเอง:
ตัวอย่าง:
@disabled(not ready)
Feature : My business feature @disabled(TODO: https://tracker.myorg.com/browse/PRJ-333; deadline 01.01.25)
Scenario : Yet another business feature @xfail(bug: https://tracker.myorg.com/browse/PRJ-555)
Scenario outline: Other business featureหากเหตุผลมี URL ดังนั้น การแทนที่จะ แนบลิงค์ allure กับรายงาน: สำหรับคนปิดใช้งาน - มันจะเป็น linktype.link สำหรับ xfail - linktype.issue
การแทนที่ มีความสามารถในการตั้งค่าลิงก์ไปยังบริการผู้ดูแลระบบของตัวเองในกรณีทดสอบของ Allure ลิงค์จะถูกตั้งค่าโดยอัตโนมัติเมื่อคุณสร้างรายงาน Allure ฟังก์ชั่นนี้สามารถเปิดใช้งานผ่านการตั้งค่าตัวแปรสภาพแวดล้อม `OVERHAVE_ADMIN_URL` :
export OVERHAVE_ADMIN_URL=https://overhave-admin.myorg.com นอกจากนี้ การแทนที่ มีความสามารถในการตั้งค่าลิงก์ไปยังไฟล์ฟีเจอร์ในพื้นที่เก็บข้อมูล GIT ลิงค์จะถูกตั้งค่าโดยอัตโนมัติเมื่อคุณสร้างรายงาน Allure ฟังก์ชั่นนี้สามารถเปิดใช้งานผ่านการตั้งค่าตัวแปรสภาพแวดล้อม `OVERHAVE_GIT_PROJECT_URL` :
export OVERHAVE_GIT_PROJECT_URL=https://git.myorg.com/bdd-features-repo ภาษาเว็บอินเทอร์เฟซเป็นภาษาอังกฤษโดยค่าเริ่มต้นและไม่สามารถเปลี่ยนได้ (หากจำเป็น - โปรดสร้าง `feature request` หรือมีส่วนร่วมตัวเอง)
ข้อความคุณสมบัติเช่นเดียวกับคำหลัก PYTEST-BDD BDD นั้นสามารถกำหนดค่าได้ด้วยโมเดลพิเศษที่ มีค่าใช้จ่ายมากขึ้น ตัวอย่างเช่นคำหลักของ RUS ได้ถูกกำหนดไว้แล้วในเฟรมเวิร์กและพร้อมใช้งานสำหรับการใช้งาน:
from overhave . extra import RUSSIAN_PREFIXES
language_settings = OverhaveLanguageSettings ( step_prefixes = RUSSIAN_PREFIXES )หมายเหตุ : คุณสามารถสร้างการแมปคำนำหน้าของคุณเองสำหรับภาษาของคุณ:
from overhave import StepPrefixesModel
GERMAN_PREFIXES = StepPrefixesModel (
FEATURE = "Merkmal:" ,
SCENARIO_OUTLINE = "Szenarioübersicht:" ,
SCENARIO = "Szenario:" ,
BACKGROUND = "Hintergrund:" ,
EXAMPLES = "Beispiele:" ,
EXAMPLES_VERTICAL = "Beispiele: Vertikal" ,
GIVEN = "Gegeben " ,
WHEN = "Wann " ,
THEN = "Dann " ,
AND = "Und " ,
BUT = "Aber " ,
)Overthave ให้ความสามารถในการส่งคุณสมบัติใหม่หรือการเปลี่ยนแปลงไปยังที่เก็บ Git ระยะไกลซึ่งโฮสต์โดย Bitbucket หรือ Gitlab การรวมเข้ากับ BitBucket นั้นเป็นถิ่นกำเนิดในขณะที่การรวมเข้ากับ Gitlab ใช้ไลบรารี Python-Gitlab
คุณสามารถตั้งค่าการตั้งค่าที่จำเป็นสำหรับโครงการของคุณ:
publisher_settings = OverhaveGitlabPublisherSettings (
repository_id = '123' ,
default_target_branch_name = 'master' ,
)
client_settings = OverhaveGitlabClientSettings (
url = "https://gitlab.mycompany.com" ,
auth_token = os . environ . get ( "MY_GITLAB_AUTH_TOKEN" ),
)การตอบกลับ (สำหรับ bitbucket) หรือ Merge-Request (สำหรับ gitlab) ที่สร้างขึ้นเมื่อคุณคลิกปุ่มสร้างคำขอดึงบนหน้าทดสอบรันผลลัพธ์ ปุ่มนี้ใช้ได้เฉพาะกับผลลัพธ์ของการทดสอบความสำเร็จ
หมายเหตุ : หนึ่งในกรณีที่ได้รับความนิยมมากที่สุดของการรับรองความถูกต้องของ Gitlab API คือ Schema OAuth2 พร้อมบัญชีบริการ ในสคีมานี้คุณควรมีโทเค็น OAuth2 ซึ่งอาจมีเวลาชีวิตสั้น ๆ และไม่สามารถระบุได้ผ่านสภาพแวดล้อม สำหรับสถานการณ์นี้ การเอาชนะ มี tokenizerclient พิเศษด้วย Tokenizerclientsettings ของตัวเอง - ลูกค้าง่าย ๆ นี้สามารถนำโทเค็นจากบริการ Gitlab Tokenizer ที่กำหนดเองจากระยะไกล
Overthave ให้ความสามารถในการซิงโครไนซ์สถานะของที่เก็บ Git ปัจจุบันของคุณกับฐานข้อมูล หมายความว่าคุณสมบัติของคุณซึ่งอยู่บนฐานข้อมูลสามารถอัปเดตได้ - และแหล่งที่มาของการอัปเดตคือที่เก็บข้อมูลของคุณ
ตัวอย่างเช่น : คุณต้องทำการแทนที่ข้อมูลจำนวนมากในที่เก็บ Git และตอนนี้คุณต้องการส่งการเปลี่ยนแปลงไปยังฐานข้อมูลระยะไกล นี่ไม่ใช่เรื่องง่ายที่จะแก้ไขได้ด้วยการใช้เครื่องมือพิเศษ มากเกินไป :
คุณสามารถตั้งค่าการตั้งค่าที่จำเป็นสำหรับโครงการของคุณ:
overhave sync run # only update existing features
overhave sync run --create-db-features # update + create new features
overhave sync run --pull-repository # pull git repo and run syncคุณสามารถทดสอบเครื่องมือนี้ด้วยโหมดการ สาธิต โดยค่าเริ่มต้นคุณสมบัติ 3 ตัวถูกสร้างขึ้นในฐานข้อมูลตัวอย่าง เพียงพยายามเปลี่ยนหรือสร้างคุณสมบัติใหม่และเรียกใช้คำสั่งการซิงโครไนซ์ - คุณจะได้รับผลลัพธ์
overhave-demo sync-run # or with '--create-db-features'Overthave รองรับการตรวจสอบความถูกต้องของไฟล์คุณสมบัติที่มีอยู่ คำสั่งพยายามแยกวิเคราะห์คุณสมบัติและกรอกรูปแบบข้อมูลคุณสมบัติที่กำหนดไว้ หากมีปัญหาใด ๆ ข้อผิดพลาดพิเศษจะถูกโยนลงไป
overhave sync validate-features
overhave sync validate-features --raise-if-nullable-id
overhave sync validate-features --pull-repositoryและใช่คุณสามารถลองใช้โหมดสาธิตได้:
overhave-demo validate-features
overhave sync validate-features -r # --raise-if-nullable-idOverthave ให้ความสามารถในการตั้งค่า custom index.html ไฟล์สำหรับการแสดงผล PATH to File สามารถตั้งค่าผ่านสภาพแวดล้อมรวมถึงตั้งค่าด้วยบริบท:
admin_settings = OverhaveAdminSettings (
index_template_path = "/path/to/index.html"
) Overthave ให้กลยุทธ์การอนุญาตหลายประการซึ่งประกาศโดย `AuthorizationStrategy` enum:
กลยุทธ์ที่เหมาะสมและข้อมูลเพิ่มเติมควรอยู่ใน `OverhaveAuthorizationSettings` ตัวอย่างเช่นกลยุทธ์ LDAP สามารถกำหนดค่าได้เช่นนี้:
auth_settings = OverhaveAuthorizationSettings ( auth_strategy = AuthorizationStrategy . LDAP )
ldap_manager_settings = OverhaveLdapManagerSettings ( ldap_admin_group = "admin" )Overhave ใช้ฟังก์ชันการทำงานสำหรับการโต้ตอบคลาวด์ S3 เช่นการสร้างถังและการลบการอัปโหลดไฟล์การดาวน์โหลดและการลบ เฟรมเวิร์กให้ความสามารถในการจัดเก็บรายงานและไฟล์อื่น ๆ ในที่เก็บข้อมูลคลาวด์ระยะไกล คุณสามารถเพิ่มสภาพแวดล้อมของคุณด้วยการตั้งค่าต่อไปนี้:
OVERHAVE_S3_ENABLED=true
OVERHAVE_S3_URL=https://s3.example.com
OVERHAVE_S3_ACCESS_KEY= < MY_ACCESS_KEY >
OVERHAVE_S3_SECRET_KEY= < MY_SECRET_KEY >ทางเลือกคุณสามารถเปลี่ยนการตั้งค่าเริ่มต้นได้เช่นกัน:
OVERHAVE_S3_VERIFY=false
OVERHAVE_S3_AUTOCREATE_BUCKETS=true เฟรมเวิร์กที่เปิดใช้งาน `OVERHAVE_S3_AUTOCREATE_BUCKETS` ธงจะสร้างถังแอปพลิเคชันในพื้นที่เก็บข้อมูลระยะไกลหากไม่มีถัง
Overthave มีส่วนต่อประสานการเขียนโปรแกรมแอปพลิเคชันของตัวเองขึ้นอยู่กับ Fastapi
เอาชนะ openapi.json ผ่าน Swagger
ความเป็นไปได้ในปัจจุบันสามารถแสดงผ่าน Swagger ในตัว - เพียงเรียกใช้ API และเปิด http: // localhost: 8000 ในเบราว์เซอร์ของคุณ
overhave api -p 8000 อินเตอร์เฟสมีการอนุญาตผ่านโครงการ OAuth2 ดังนั้นคุณควรตั้งค่า `OVERHAVE_API_AUTH_SECRET_KEY` สำหรับการใช้งาน
ตอนนี้ API ใช้ประเภทของทรัพยากร:
ยินดีต้อนรับการมีส่วนร่วมอย่างมาก
การติดตั้งโครงการนั้นง่ายมากและใช้คำสั่งที่เตรียมไว้เพียงไม่กี่คำ (ทำให้การทำงานล่วงหน้าสำหรับ Ubuntu เท่านั้นดังนั้นคุณสามารถติดตั้งแพ็คเกจเดียวกันสำหรับระบบปฏิบัติการของคุณด้วยตนเอง):
make pre-init
make initการจัดการแพ็คเกจจัดทำโดยบทกวี
การทดสอบสามารถทำงานด้วย TOX Docker-compose ใช้สำหรับการเตรียมบริการอื่น ๆ และการให้บริการเช่นฐานข้อมูล การทดสอบอย่างง่ายและการดำเนินการของ Linters:
make up
make test
make lintโปรดดูที่ไฟล์และค้นพบทางลัดที่มีประโยชน์ คุณสามารถทำการทดสอบในคอนเทนเนอร์ Docker ได้เช่นกัน:
make test-dockerเอกสารโครงการสามารถสร้างผ่านสฟิงซ์และคำสั่ง Make Simple:
make build-docsโดยค่าเริ่มต้นเอกสารจะถูกสร้างขึ้นโดยใช้ตัวสร้าง HTML ลงในไดเรกทอรี _build
แจกจ่ายภายใต้เงื่อนไขของใบอนุญาต GNU GPLV2
หากคุณพบปัญหาใด ๆ โปรดรายงานที่นี่ในส่วนปัญหาพร้อมคำอธิบายโดยละเอียด