Over hors adalah kerangka web untuk BDD: scalable, dapat dikonfigurasi, mudah digunakan, berdasarkan admin flask dan pydantic.

Anda dapat menginstal overbave melalui PIP dari PYPI:
pip install overhaveWeb-antarmuka adalah alat dasar untuk manajemen fitur BDD. Itu terdiri dari:
Info - halaman indeks dengan informasi opsional tentang alat atau proyek Anda;
Fitur, Uji Berjalan, Versi dan Tag:
memberikan antarmuka untuk fitur manajemen catatan dan memberikan info tentang ID, penulis nama, waktu, editor dan status penerbitan; Dimungkinkan untuk mencari, mengedit atau menghapus item melalui panel skrip.
memberikan antarmuka untuk manajemen Test Run dan memberikan info tentang.
Berisi versi fitur yang sesuai dengan uji berjalan; Versi berisi PR-Link ke repositori Git jarak jauh.
Berisi nilai tag, yang digunakan untuk penandaan fitur.
Uji Pengguna - Bagian untuk melihat dan mengonfigurasi pengguna pengujian;
Subbagian Grup;
(dalam pengembangan).
Fitur Overhave dapat dibuat dan/atau diedit melalui panel skrip khusus dalam mode edit fitur. Fitur harus memiliki tipe yang terdaftar berdasarkan aplikasi, nama unik, daftar tugas yang ditentukan dengan format tradisional `PRJ-NUMBER` dan teks skenario.
Panel skrip memiliki tabel langkah Pytest-BDD di sisi kanan antarmuka. Langkah-langkah ini harus didefinisikan dalam modul perlengkapan yang sesuai dan terdaftar pada aplikasi saat start-up untuk ditampilkan.
Contoh panel skrip overhave dalam mode edit fitur
Overhave menghasilkan laporan Allure setelah menguji eksekusi di antarmuka web. Jika Anda menjalankan tes secara manual melalui Pytest, hasil ini dapat dikonversi menjadi Laporan Allure juga dengan Alat Allure CLI. Laporan ini berisi deskripsi skenario seperti yang dijelaskan dalam fitur.
Contoh laporan Allure yang dihasilkan setelah pelaksanaan fitur Overbave
Overhave memiliki mode demo khusus (dalam pengembangan), yang mungkin dapat digunakan untuk demonstrasi kerangka kerja dan debugging / pengujian manual. Kerangka kerja menyediakan titik entri CLI untuk server mudah dijalankan dalam mode debug:
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 consumerCatatan : Anda dapat menjalankan admin dalam mode khusus, yang tidak mengharuskan konsumen. Mode ini menggunakan Threadpool untuk menjalankan tugas pengujian dan publikasi secara tidak sinkron:
overhave-demo admin --threadpool --language=ruTapi mode ThreadPool ini tidak dapat dikalkhasilan dalam paradigma Kubernetes . Jadi, sangat disarankan untuk menggunakan konsumen yang sesuai dengan tepat.
Overhave memiliki CLI yang menyediakan cara sederhana untuk memulai layanan web layanan, menjalankan konsumen dan menjalankan operasi basis data dasar. Contoh di bawah ini:
overhave db create-all
overhave admin --port 8080
overhave consumer -s publication
overhave api -p 8000 -w 4 Catatan : Start-up layanan mengambil satu set pengaturan, sehingga Anda dapat mengaturnya melalui lingkungan virtual dengan awalan `OVERHAVE_` , misalnya` `OVERHAVE_DB_URL` . Jika Anda ingin mengonfigurasi pengaturan dengan cara yang lebih eksplisit melalui injeksi konteks, silakan lihat bagian berikutnya dari dokumen.
Layanan dapat dikonfigurasi melalui injeksi konteks aplikasi dengan instance yang disiapkan dari objek overhavecontext. Konteks ini dapat diatur menggunakan fungsi `set_context` dari instance` `ProxyFactory` yang diinisialisasi.
Misalnya, `my_custom_context` disiapkan. Jadi, start-up aplikasi dapat direalisasikan dengan kode berikut:
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 )Catatan :
`overhave_app` adalah aplikasi Flask yang disiapkan dengan yang sudah diaktifkan`overhave_factory` adalah fungsi untuk instance lru yang di -cache dari overhave`ProxyFactory` ; Contoh ini memiliki akses ke komponen aplikasi, secara langsung digunakan dalam `overhave_app` .`my_custom_context` adalah contoh konfigurasi konteks, lihatOverhave memiliki arsitektur produser-konsumen, berdasarkan aliran Redis, dan mendukung 3 jenis konsumen:
`overhave_test_execution_factory` ;`overhave_publication_factory` ;`overhave_emulation_factory` . Catatan : `overhave_test_execution_factory` memiliki kemampuan untuk injeksi konteks dan dapat diperkaya dengan konteks khusus sebagai` `overhave_admin_factory` .
Overbave mendukung struktur proyek khusus itu sendiri:
Pendekatan yang tepat adalah membuat direktori root (seperti "demo" di dalam repositori saat ini) yang berisi fitur , perlengkapan , dan direktori langkah .
Direktori fitur berisi berbagai jenis fitur sebagai direktori terpisah, masing-masing sesuai dengan set langkah Pytest-BDD yang telah ditentukan sebelumnya.
Direktori Fixtures berisi modul pytest khas yang dipisahkan oleh jenis fitur yang berbeda. Modul-modul ini digunakan untuk uji terisolasi Pytest-BDD. Ini diperlukan karena mekanisme khusus koleksi langkah-langkah Pytest-BDD.
Direktori Langkah-langkah berisi paket langkah Pytest-BDD yang dipisahkan oleh jenis fitur yang berbeda juga. Setiap langkah subdirektori memiliki langkah -langkah yang dinyatakan sendiri sesuai dengan jenis fitur yang didukung.
Jadi, dimungkinkan untuk membuat struktur horizontal Anda sendiri dari berbagai arah produk dengan langkah -langkah unik dan perlengkapan pytest.
Catatan : Struktur ini digunakan dalam aplikasi overhave . Data yang dibentuk memberikan kemungkinan untuk menentukan jenis fitur terdaftar di panel skrip antarmuka web. Juga, struktur ini mendefinisikan langkah -langkah mana yang akan ditampilkan di sisi kanan panel skrip .
Overhave memiliki format teks fitur khusus sendiri, yang mewarisi gherkin dari pytest-bdd dengan pembaruan unik:
`@severity.blocker` );`PRJ-1234` ;Contoh konten fitur yang diisi terletak di fitur_example.rst.
Solusi overbave mengimplementasikan untuk penggunaan penanda pytest dengan informasi tambahan khusus:
Contoh:
@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 featureJika alasan berisi URL, maka overhave akan melampirkan tautan Allure ke Laporan: Untuk Dinonaktifkan - itu akan menjadi LinkType.link, untuk xfail - LinkType.issue.
Overhave memiliki kemampuan untuk mengatur tautan ke layanan admin sendiri dalam kasus uji Allure. Tautan akan diatur secara otomatis saat Anda menghasilkan laporan Allure. Fungsi ini dapat diaktifkan melalui pengaturan variabel lingkungan `OVERHAVE_ADMIN_URL` :
export OVERHAVE_ADMIN_URL=https://overhave-admin.myorg.com Juga, overhave memiliki kemampuan untuk mengatur tautan ke file fitur di repositori git. Tautan akan diatur secara otomatis saat Anda menghasilkan laporan Allure. Fungsi ini dapat diaktifkan melalui pengaturan variabel lingkungan `OVERHAVE_GIT_PROJECT_URL` :
export OVERHAVE_GIT_PROJECT_URL=https://git.myorg.com/bdd-features-repo Bahasa antarmuka web adalah ENG secara default dan tidak dapat diaktifkan (jika perlu - tolong, buat `feature request` atau berkontribusi sendiri).
Teks fitur serta kata kunci PyTest-BDD BDD dapat dikonfigurasi dengan model tambahan yang berlebihan , misalnya kata kunci RUS sudah didefinisikan dalam kerangka kerja dan tersedia untuk penggunaan:
from overhave . extra import RUSSIAN_PREFIXES
language_settings = OverhaveLanguageSettings ( step_prefixes = RUSSIAN_PREFIXES )Catatan : Anda dapat membuat pemetaan nilai awalan sendiri untuk bahasa Anda:
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 " ,
)Overhave memberikan kemampuan untuk mengirim fitur baru Anda atau perubahan ke repositori Git jarak jauh, yang di -host oleh Bitbucket atau GitLab. Integrasi dengan Bitbucket adalah asli, sedangkan integrasi dengan GitLab menggunakan Pistol Python-Gitlab.
Anda dapat mengatur pengaturan yang diperlukan untuk proyek Anda:
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" ),
)Pull-Request (untuk bitbucket) atau gabungan-request (untuk gitlab) yang dibuat saat Anda mengklik tombol Buat Tarik Permintaan pada halaman Hasil Test Run. Tombol ini hanya tersedia untuk hasil uji coba sukses.
Catatan : Salah satu kasus paling populer dari otentikasi API Gitlab adalah skema OAuth2 dengan akun layanan. Menurut skema ini, Anda harus memiliki token OAuth2, yang mungkin memiliki seumur hidup yang singkat dan tidak dapat ditentukan melalui lingkungan. Untuk situasi ini, Overhave memiliki TokenizerClient khusus dengan TokenizerClientSettings miliknya sendiri - klien sederhana ini dapat mengambil token dari layanan Tokenizer Gitlab khusus.
Overhave memberikan kemampuan untuk menyinkronkan keadaan repositori git Anda saat ini dengan database. Ini berarti bahwa fitur Anda, yang terletak di database, dapat diperbarui - dan sumber pembaruan adalah repositori Anda.
Misalnya : Anda harus melakukan penggantian data curah di repositori git, dan sekarang Anda ingin memberikan perubahan pada basis data jarak jauh. Masalah yang tidak begitu mudah ini dapat diselesaikan dengan alat khusus yang berlebihan :
Anda dapat mengatur pengaturan yang diperlukan untuk proyek Anda:
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 syncAnda dapat menguji alat ini dengan mode demo overhave . Secara default, 3 fitur dibuat dalam database demo. Cobalah untuk mengubahnya atau buat fitur baru dan jalankan perintah sinkronisasi - Anda akan mendapatkan hasilnya.
overhave-demo sync-run # or with '--create-db-features'Over Have mendukung validasi file fitur yang ada. Perintah Cobalah untuk parse fitur dan isi format info fitur yang ditentukan. Jika ada masalah, kesalahan khusus akan dilemparkan.
overhave sync validate-features
overhave sync validate-features --raise-if-nullable-id
overhave sync validate-features --pull-repositoryDan ya, Anda dapat mencobanya dengan mode demo:
overhave-demo validate-features
overhave sync validate-features -r # --raise-if-nullable-idOverhave memberikan kemampuan untuk mengatur file custom index.html untuk rendering. Jalur ke file dapat diatur melalui lingkungan serta diatur dengan konteks:
admin_settings = OverhaveAdminSettings (
index_template_path = "/path/to/index.html"
) Overhave menyediakan beberapa strategi otorisasi, dinyatakan oleh `AuthorizationStrategy` enum:
Strategi yang tepat dan data tambahan harus ditempatkan ke `OverhaveAuthorizationSettings` , misalnya strategi LDAP dapat dikonfigurasi seperti ini:
auth_settings = OverhaveAuthorizationSettings ( auth_strategy = AuthorizationStrategy . LDAP )
ldap_manager_settings = OverhaveLdapManagerSettings ( ldap_admin_group = "admin" )Overhave mengimplementasikan fungsionalitas untuk interaksi cloud S3 , seperti pembuatan dan penghapusan bucket, mengunggah file, mengunduh dan menghapus. Kerangka kerja menyediakan kemampuan untuk menyimpan laporan dan file lain di penyimpanan cloud S3 jarak jauh. Anda dapat memperkaya lingkungan Anda dengan pengaturan berikut:
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 >Secara opsional, Anda juga dapat mengubah pengaturan default:
OVERHAVE_S3_VERIFY=false
OVERHAVE_S3_AUTOCREATE_BUCKETS=true Kerangka kerja dengan `OVERHAVE_S3_AUTOCREATE_BUCKETS` diaktifkan akan membuat ember aplikasi di penyimpanan jarak jauh jika ember tidak ada.
Overhave memiliki antarmuka pemrograman aplikasi sendiri, berdasarkan FastAPI.
Openapi Openapi.json melalui Swagger
Kemungkinan saat ini dapat ditampilkan melalui kesombongan bawaan - cukup jalankan API dan buka http: // localhost: 8000 di browser Anda.
overhave api -p 8000 Antarmuka memiliki otorisasi melalui skema OAuth2, jadi Anda harus mengatur `OVERHAVE_API_AUTH_SECRET_KEY` untuk penggunaan.
Saat ini, API mengimplementasikan jenis sumber daya:
Kontribusi sangat disambut.
Instalasi proyek sangat mudah dan hanya membutuhkan beberapa perintah yang disiapkan (buat pra-init hanya berfungsi untuk ubuntu; sehingga Anda dapat memasang paket yang sama untuk OS Anda secara manual):
make pre-init
make initManajemen paket disediakan oleh puisi.
Tes dapat dijalankan dengan TOX. Docker-Compose digunakan untuk persiapan dan porsi layanan lainnya, seperti database. Eksekusi Tes dan Linters Sederhana:
make up
make test
make lintTolong, lihat Buat File dan temukan pintasan yang bermanfaat. Anda dapat menjalankan tes di Docker Container juga:
make test-dockerDokumentasi proyek dapat dibangun melalui sphinx dan perintah membuat sederhana:
make build-docsSecara default, dokumentasi akan dibangun menggunakan HTML Builder ke _Build Directory.
Didistribusikan berdasarkan ketentuan lisensi GNU GPLV2.
Jika Anda mengalami masalah, silakan laporkan di sini di bagian masalah dengan deskripsi terperinci.