Status Bangun:
Appium Helper:
Pembantu Web:
Referensi: Pembantu API
CodeceptJs adalah kerangka pengujian baru untuk pengujian ujung ke ujung dengan WebDriver (atau lainnya). Itu abstrak interaksi browser ke langkah -langkah sederhana yang ditulis dari perspektif pengguna. Tes sederhana yang memverifikasi teks "selamat datang" hadir di halaman utama suatu situs akan terlihat seperti:
Feature ( 'CodeceptJS demo' ) ;
Scenario ( 'check Welcome page on site' , ( { I } ) => {
I . amOnPage ( '/' ) ;
I . see ( 'Welcome' ) ;
} ) ;Tes codeceptjs adalah:
I . Itu membuat tes mudah dibaca, menulis, dan memelihara bahkan untuk orang non-teknologi. Codeceptjs menggunakan modul helper untuk memberikan tindakan kepada I objek. Saat ini, codeceptjs memiliki pembantu ini:
Dan lebih banyak lagi yang akan datang ...
Codeceptjs adalah penerus Codeception, kerangka pengujian full-stack yang populer untuk PHP. Dengan codeceptjs uji fungsional dan penerimaan skenario Anda akan sesederhana dan sebersih mungkin. Anda tidak perlu khawatir tentang sifat nodej asinkron atau tentang berbagai API penulis naskah, selenium, dalang, testcafe, dll. Ketika codeceptjs menyatukan mereka dan membuat mereka bekerja karena mereka sinkron.
npm i codeceptjs --savePindah ke direktori tempat Anda ingin melakukan tes (dan codeceptjs config) disimpan, dan mengeksekusi:
npx codeceptjs initUntuk membuat dan mengonfigurasi lingkungan pengujian. Disarankan untuk memilih WebDriver dari daftar pembantu, jika Anda perlu menulis tes Selenium Webdriver.
Setelah itu buat tes pertama Anda dengan mengeksekusi:
npx codeceptjs generate:testSekarang tes dibuat dan dapat dieksekusi
npx codeceptjs runJika Anda ingin menulis tes Anda menggunakan TypeScript cukup menghasilkan definisi tipe standar dengan mengeksekusi:
npx codeceptjs def .Nanti Anda bahkan dapat secara otomatis memperbarui definisi jenis untuk memasukkan metode pembantu khusus Anda sendiri.
Catatan:
12+ atau lebih baru. Pelajari codeceptjs dengan contoh. Mari kita asumsikan kita telah menginstal codeceptjs dan Webdriver Helper diaktifkan.
Mari kita lihat bagaimana kita dapat menangani pengujian bentuk dasar:
Feature ( 'CodeceptJS Demonstration' ) ;
Scenario ( 'test some forms' , ( { I } ) => {
I . amOnPage ( 'http://simple-form-bootstrap.plataformatec.com.br/documentation' ) ;
I . fillField ( 'Email' , '[email protected]' ) ;
I . fillField ( 'Password' , secret ( '123456' ) ) ;
I . checkOption ( 'Active' ) ;
I . checkOption ( 'Male' ) ;
I . click ( 'Create User' ) ;
I . see ( 'User is valid' ) ;
I . dontSeeInCurrentUrl ( '/documentation' ) ;
} ) ; Semua tindakan dilakukan oleh I Object; Fungsi pernyataan dimulai dengan fungsi see . Dalam contoh -contoh ini semua metode I diambil dari Webdriver Helper, lihat referensi untuk mempelajari cara menggunakannya.
Mari kita jalankan tes ini dengan perintah run . Opsi Tambahan --steps akan menunjukkan kepada kita proses berjalan. Kami merekomendasikan penggunaan --steps atau --debug selama pengembangan.
npx codeceptjs run --stepsIni akan menghasilkan output:
CodeceptJS Demonstration --
test some forms
• I am on page " http://simple-form-bootstrap.plataformatec.com.br/documentation "
• I fill field " Email " , " [email protected] "
• I fill field " Password " , " **** "
• I check option " Active "
• I check option " Male "
• I click " Create User "
• I see " User is valid "
• I dont see in current url " /documentation "
✓ OK in 17752ms CodeceptJs memiliki fitur terbaik untuk membantu Anda mengembangkan dan men -debug tes Anda. Anda dapat menjeda pelaksanaan tes di tempat mana pun dan menggunakan shell interaktif untuk mencoba berbagai tindakan dan pencari lokasi. Cukup tambahkan pause() Panggilan di tempat mana pun dalam tes dan jalankan.
Shell interaktif dapat dimulai di luar konteks tes dengan menjalankan:
npx codeceptjs shell Kami mengisi formulir dengan metode fillField , yang terletak elemen bentuk berdasarkan label mereka. Dengan cara yang sama Anda dapat menemukan elemen berdasarkan nama, CSS atau locator XPath dalam tes:
// by name
I . fillField ( 'user_basic[email]' , '[email protected]' ) ;
// by CSS
I . fillField ( '#user_basic_email' , '[email protected]' ) ;
// don't make us guess locator type, specify it
I . fillField ( { css : '#user_basic_email' } , '[email protected]' ) ; Metode lain seperti checkOption , dan click bekerja dengan cara yang sama. Mereka dapat mengambil label atau css atau locator XPath untuk menemukan elemen untuk berinteraksi.
Pernyataan Mulai dengan awalan see atau dontSee . Dalam kasus kami, kami menyatakan bahwa string 'pengguna adalah valid' ada di suatu tempat di halaman web. Namun, kita dapat mempersempit pencarian ke elemen tertentu dengan memberikan parameter kedua:
I . see ( 'User is valid' ) ;
// better to specify context:
I . see ( 'User is valid' , '.alert-success' ) ; Dalam hal ini string 'pengguna adalah valid' akan dicari hanya di dalam elemen yang terletak oleh CSS .alert-success .
Jika Anda perlu mengembalikan nilai dari halaman web dan menggunakannya langsung dalam pengujian, Anda harus menggunakan metode dengan awalan grab . Mereka diharapkan digunakan di dalam fungsi async/await , dan hasilnya akan tersedia dalam pengujian:
Feature ( 'CodeceptJS Demonstration' ) ;
Scenario ( 'test page title' , async ( { I } ) => {
I . amOnPage ( 'http://simple-form-bootstrap.plataformatec.com.br/documentation' ) ;
const title = await I . grabTitle ( ) ;
I . expectEqual ( title , 'Example application with SimpleForm and Twitter Bootstrap' ) ; // Avaiable with Expect helper. -> https://codecept.io/helpers/Expect/
} ) ;Dengan cara yang sama Anda dapat mengambil teks, atribut, atau nilai bentuk dan menggunakannya dalam langkah pengujian berikutnya.
Langkah -langkah persiapan umum seperti membuka halaman web, masuk ke pengguna, dapat ditempatkan Before atau Background :
const { I } = inject ( ) ;
Feature ( 'CodeceptJS Demonstration' ) ;
Before ( ( ) => { // or Background
I . amOnPage ( 'http://simple-form-bootstrap.plataformatec.com.br/documentation' ) ;
} ) ;
Scenario ( 'test some forms' , ( ) => {
I . click ( 'Create User' ) ;
I . see ( 'User is valid' ) ;
I . dontSeeInCurrentUrl ( '/documentation' ) ;
} ) ;
Scenario ( 'test title' , ( ) => {
I . seeInTitle ( 'Example application' ) ;
} ) ; CodeceptJs menyediakan cara paling sederhana untuk membuat dan menggunakan objek halaman dalam pengujian Anda. Anda dapat membuatnya dengan menjalankan
npx codeceptjs generate pageobject Ini akan membuat file objek halaman untuk Anda dan menambahkannya ke konfigurasi. Mari kita asumsikan kita membuat satu bernama docsPage :
const { I } = inject ( ) ;
module . exports = {
fields : {
email : '#user_basic_email' ,
password : '#user_basic_password'
} ,
submitButton : { css : '#new_user_basic input[type=submit]' } ,
sendForm ( email , password ) {
I . fillField ( this . fields . email , email ) ;
I . fillField ( this . fields . password , password ) ;
I . click ( this . submitButton ) ;
}
}Anda dapat dengan mudah menyuntikkannya untuk menguji dengan memberikan namanya dalam argumen pengujian:
Feature ( 'CodeceptJS Demonstration' ) ;
Before ( ( { I } ) => { // or Background
I . amOnPage ( 'http://simple-form-bootstrap.plataformatec.com.br/documentation' ) ;
} ) ;
Scenario ( 'test some forms' , ( { I , docsPage } ) => {
docsPage . sendForm ( '[email protected]' , '123456' ) ;
I . see ( 'User is valid' ) ;
I . dontSeeInCurrentUrl ( '/documentation' ) ;
} ) ; Saat menggunakan TypeScript, ganti module.exports dengan export untuk pelengkapan otomatis.
Davertmik | kobenguyent | Vorobeyko | Reubenmiller |
Arhell | Apshenkin | Fabioel | Pablopaul |
Mirao | Georgegriff | Kmkoushik | Nikocanvacom |
Elukoyanov | Thomashohn | Gkushang | Tsuemura |
Egorbodnar | Vikalpp | Elaichenkov | Borisosipov |
NGRAF | nitschsb | hubidu | jploskonka |
Maojunxyz | Abhimanyupandian | Martomo | HATUFACCI |
MIT © Codeceptjs Team