Rumah hujung hadapan web tutorial js Automasi menggunakan Playwright dan TypeScript dan JavaScript

Automasi menggunakan Playwright dan TypeScript dan JavaScript

Oct 24, 2024 am 04:50 AM

Penulis Drama Dengan TypeScript | Pemasangan JavaScript

Penulis drama ialah alat Automasi API dan berasaskan web moden daripada Microsoft dengan bekerjasama dengan pasukan Puppeteer, Puppeteer ialah perpustakaan JavaScript yang menyediakan API peringkat tinggi untuk mengawal Chrome atau Firefox melalui DevTools Protocol atau WebDriver BiDi. Puppeteer berjalan dalam tanpa kepala (tiada UI yang kelihatan) secara lalai.

Penulis drama menyokong pelayar berasaskan web moden untuk automasi aplikasi web melalui API tunggal dan juga menyokong automasi untuk API.

Seni Bina Penulis Drama

Automation using Playwright and TypeScript and JavaScript

Playwright berfungsi pada Web Socket Protocol setelah sambungan diwujudkan akan mencetuskan ujian dan menghantar permintaan dalam format JSON ke pelayan menggunakan Web Socket Protocol yang bermaksud setelah sambungan diwujudkan oleh Playwright tidak perlu membuat sambungan semula untuk menghantar permintaan kepada pelayan sehingga pelaksanaan ujian lengkap. Penulis drama perlu memutuskan sambungan melalui kaedah playwright.quit().

Membolehkan kami memahami perbezaan antara Sambungan Protokol HTTP Sambungan Protokol Web Soket

Automation using Playwright and TypeScript and JavaScript

Perbezaan antara WebSocket & HTTP Protocol
Ciri-ciri Penulis Drama :
Mana-mana pelayar • Mana-mana platform • Satu API
Pelayar silang. Penulis drama menyokong semua enjin rendering moden termasuk Chromium, WebKit dan Firefox.

Merentas platform. Uji pada Windows, Linux dan macOS, secara tempatan atau pada CI, tanpa kepala atau berkepala.

Merentas bahasa. Gunakan API Playwright dalam TypeScript, JavaScript, Python, .NET, Java.

Uji Web Mudah Alih. Emulasi mudah alih asli Google Chrome untuk Android dan Safari Mudah Alih. Enjin pemaparan yang sama berfungsi pada Desktop anda dan dalam Awan.

  1. Berdaya tahan • Tiada ujian mengelupas

Auto-tunggu. Penulis drama menunggu elemen boleh diambil tindakan sebelum melakukan tindakan. Ia juga mempunyai set acara introspeksi yang kaya. Gabungan kedua-duanya menghapuskan keperluan untuk tamat masa tiruan — punca utama ujian mengelupas.

Pernyataan yang mengutamakan web. Penegasan penulis drama dibuat khusus untuk web dinamik. Semakan dicuba semula secara automatik sehingga syarat yang diperlukan dipenuhi.

Menjejak. Konfigurasikan strategi percubaan semula ujian, tangkap jejak pelaksanaan, video, tangkapan skrin untuk menghapuskan kepingan.

  1. Tiada tukar ganti • Tiada had

Penyemak imbas menjalankan kandungan web milik asal yang berbeza dalam proses yang berbeza. Penulis drama sejajar dengan seni bina pelayar moden dan menjalankan ujian di luar proses. Ini menjadikan Playwright bebas daripada had biasa pelari ujian dalam proses.

Berbilang semuanya. Senario ujian yang merangkumi berbilang tab, berbilang asal dan berbilang pengguna. Cipta senario dengan konteks yang berbeza untuk pengguna yang berbeza dan jalankannya pada pelayan anda, semuanya dalam satu ujian.

Acara yang dipercayai. Tuding elemen, berinteraksi dengan kawalan dinamik, menghasilkan acara yang dipercayai. Penulis drama menggunakan saluran paip input penyemak imbas sebenar yang tidak dapat dibezakan daripada pengguna sebenar.

Uji bingkai, menembusi Shadow DOM. Pemilih pengarang drama menembusi bayangan DOM dan membenarkan memasukkan bingkai dengan lancar.

  1. Pengasingan penuh • Pelaksanaan pantas

Konteks penyemak imbas. Penulis drama mencipta konteks penyemak imbas untuk setiap ujian. Konteks penyemak imbas adalah setara dengan profil penyemak imbas serba baharu. Ini memberikan pengasingan ujian penuh dengan overhed sifar. Membuat konteks penyemak imbas baharu hanya memerlukan beberapa milisaat.

Log masuk sekali. Simpan keadaan pengesahan konteks dan gunakan semula dalam semua ujian. Ini memintas operasi log masuk berulang dalam setiap ujian, namun memberikan pengasingan penuh ujian bebas.

  1. Peralatan Berkuasa

Kodegen. Hasilkan ujian dengan merekodkan tindakan anda. Simpan mereka ke dalam mana-mana bahasa.

Pemeriksa penulis drama. Periksa halaman, jana pemilih, langkah melalui pelaksanaan ujian, lihat titik klik, terokai log pelaksanaan.

Pemerhati Jejak. Tangkap semua maklumat untuk menyiasat kegagalan ujian. Surih drama mengandungi siaran skrin pelaksanaan ujian, syot kilat DOM langsung, peneroka tindakan, sumber ujian dan banyak lagi.

Mari kita mula menggunakan Playwright dengan TypeScript/JavaScript

Pemasangan Playwright untuk TypeScript/JavaScript
Pra-syarat untuk pemasangan seperti berikut : Node.js 18

Windows 10 , Windows Server 2016 atau Windows Subsystem for Linux (WSL).
macOS 13 Ventura atau macOS 14 Sonoma.
Debian 11, Debian 12, Ubuntu 20.04 atau Ubuntu 22.04, Ubuntu 24.04, pada seni bina x86–64 dan arm64.
Mulakan dengan memasang Playwright menggunakan npm, yarn atau pnpm. Sebagai alternatif, anda juga boleh memulakan dan menjalankan ujian anda menggunakan Sambungan Kod VS.

Buat folder, contohnya TypeScriptWithPlaywright begitu juga buat folder untuk JavaScriptwithPlaywright dan navigasi ke folder dan buka gesaan arahan tetingkap

Automation using Playwright and TypeScript and JavaScript

Pemasangan Penulis Drama
Klik pada enter dan skrin berikut akan muncul dan pilih bahasa Skrip dan kemudian tekan enter

Automation using Playwright and TypeScript and JavaScript

Pilih Bahasa Skrip
Selepas memilih bahasa skrip dan kemudian tekan enter skrin berikut akan muncul dan akan bertanya di mana anda ingin meletakkan ujian hujung ke hujung anda. biarlah begitu.

Pemasangan Penulis Drama
Sekarang ia akan meminta aliran kerja Tindakan GitHub. Jika anda ingin mengkonfigurasi kemudian Tekan Y atau N. Ia akan meminta anda untuk memasang pelayar, jika anda ingin memasang kemudian Pilih Y yang bermaksud benar. skrin berikut akan muncul.

Automation using Playwright and TypeScript and JavaScript

Nota : Pelayar Playwright boleh dipasang secara manual melalui arahan di bawah

Automation using Playwright and TypeScript and JavaScript

pemasangan pengarang drama npx

Pemasangan Penulis Drama
Sekarang tekan enter dan skrin berikut akan dipaparkan.

Automation using Playwright and TypeScript and JavaScript

Pemasangan Penulis Drama
Pemasangan Penulis Drama

Pemasangan Penulis Drama

Pemasangan Penulis Drama Selesai
Penulis drama secara lalai melaksanakan skrip ujian yang dilaksanakan dalam mod tanpa kepala dan arahan berikut akan meneroka untuk melaksanakan dengan penyemak imbas dan nyahpepijat tertentu, menjana skrip ujian menggunakan codegen.

ujian penulis drama npx
Menjalankan ujian hujung ke hujung.

ujian penulis drama npx --ui
Memulakan mod UI interaktif.

ujian penulis drama npx --project=chromium
Menjalankan ujian hanya pada Desktop Chrome.

contoh ujian penulis drama npx
Menjalankan ujian dalam fail tertentu.

ujian penulis drama npx --debug
Menjalankan ujian dalam mod nyahpepijat.

npx penulis drama codegen
Auto menjana ujian dengan Codegen.

Kami mencadangkan agar anda mulakan dengan menaip:

npx playwright test
Salin selepas log masuk
Salin selepas log masuk

Sekarang mari jalankan skrip ujian dengan menggunakan arahan berikut dan untuk melihat laporan. Penulis drama akan melaksanakan ujian dalam kromium, Firefox dan WebKit Parallelly.

ujian penulis drama npx

laporan rancangan penulis drama npx

Laporan lalai Penulis drama hanya menyokong TypeScript/JavaScript
Penulis drama secara lalai mengkonfigurasi skrip ujian anda untuk dilaksanakan dalam penyemak imbas berikut dengan mod tanpa kepala. Konfigurasi akan dipaparkan dalam folder bernama playwright.config.js

import { defineConfig, peranti } daripada '@playwright/test';

/**

  • Baca pembolehubah persekitaran daripada fail.
  • https://github.com/motdotla/dotenv*/ // import dotenv daripada 'dotenv'; // import laluan dari 'path'; // dotenv.config({ path: path.resolve(__dirname, '.env') });

/**

  • Lihat https://playwright.dev/docs/test-configuration.
    /
    eksport defineConfig lalai({
    testDir: './tests',
    /
    Jalankan ujian dalam fail secara selari /
    sepenuhnyaSejajar: benar,
    /
    Gagal binaan pada CI jika anda secara tidak sengaja meninggalkan ujian.hanya dalam kod sumber. /
    forbidOnly: !!process.env.CI,
    /
    Cuba semula pada CI sahaja /
    cuba semula: process.env.CI ? 2 : 0,
    /
    Tarik diri daripada ujian selari pada CI. /
    pekerja: process.env.CI ? 1 : tidak ditentukan,
    /
    Wartawan untuk digunakan. Lihat https://playwright.dev/docs/test-reporters /
    wartawan: 'html',
    /
    Tetapan dikongsi untuk semua projek di bawah. Lihat https://playwright.dev/docs/api/class-testoptions. /
    gunakan: {
    /
    URL asas untuk digunakan dalam tindakan seperti await page.goto('/'). */
    // baseURL: 'http://127.0.0.1:3000',

    /* Kumpul jejak apabila mencuba semula ujian yang gagal. Lihat https://playwright.dev/docs/trace-viewer */
    jejak: 'percubaan-mula-mula',
    },

/* Konfigurasikan projek untuk penyemak imbas utama */
projek: [
{
nama: 'kromium',
gunakan: { ...peranti['Desktop Chrome'] },
},

npx playwright test
Salin selepas log masuk
Salin selepas log masuk

],

/* Jalankan pelayan pembangun setempat anda sebelum memulakan ujian */
// webServer: {
// arahan: 'npm run start',
// url: 'http://127.0.0.1:3000',
// reuseExistingServer: !process.env.CI,
// },
});
Sekarang mari kita ubah suai untuk melaksanakan skrip ujian mod bukan tajuk (UI) dan dengan menambah pelayar tambahan. Penulis drama juga menyediakan pilihan untuk merekodkan pelaksanaan skrip ujian dan pilihan paparan jejak yang berguna untuk penyahpepijatan. Jika anda mendayakan pilihan pemapar surih boleh dapat melihat apakah status sebelum ujian, apakah status semasa ujian dan apakah status selepas ujian. Saya telah mengubah suai fail konfigurasi penulis drama dan ia adalah seperti di bawah :

// @ts-semak
const { defineConfig, peranti } = memerlukan('@playwright/test');

module.exports = defineConfig({
testDir: './tests',
sepenuhnyaSejajar: benar,
forbidOnly: !!process.env.CI,
cuba semula: process.env.CI ? 2 : 0,
pekerja: process.env.CI ? 1 : tidak ditentukan,
wartawan: 'html',
gunakan: {
jejak: 'hidup', // Dayakan pengesanan
video: 'on', // Rakam video untuk setiap ujian
tanpa kepala: palsu, // Jalankan ujian dalam mod kepala
},
projek: [
{
nama: 'kromium',
gunakan: { ...peranti['Desktop Chrome'] },
},
{
nama: 'firefox',
gunakan: { ...peranti['Desktop Firefox'] },
},
{
nama: 'webkit',
gunakan: { ...peranti['Desktop Safari'] },
},
{
nama: 'Microsoft Edge',
gunakan: {
...peranti['Desktop Edge'],
saluran: 'msedge'
},
},
{
nama: 'Google Chrome',
gunakan: {
...peranti['Desktop Chrome'],
saluran: 'chrome'
},
},
],
});
Kini skrip ujian boleh melaksanakan ujian pada penyemak imbas yang disebut dalam fail konfigurasi dalam mod tanpa kepala dengan rakaman, pilihan pemapar jejak.

Selamat Belajar!! Selamat Automasi!! Selamat Menguji

Sila hubungi saya sebarang maklumat/Pertanyaan di santoshvqa@gmail.com & Profil LinkedIn

https://www.linkedin.com/in/santosh-kulkarni-ab571639/

Atas ialah kandungan terperinci Automasi menggunakan Playwright dan TypeScript dan JavaScript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

<🎜>: Bubble Gum Simulator Infinity - Cara Mendapatkan dan Menggunakan Kekunci Diraja
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Nordhold: Sistem Fusion, dijelaskan
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Mandragora: Whispers of the Witch Tree - Cara Membuka Kunci Cangkuk Bergelut
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Tutorial Java
1670
14
Tutorial PHP
1276
29
Tutorial C#
1256
24
Python vs JavaScript: Keluk Pembelajaran dan Kemudahan Penggunaan Python vs JavaScript: Keluk Pembelajaran dan Kemudahan Penggunaan Apr 16, 2025 am 12:12 AM

Python lebih sesuai untuk pemula, dengan lengkung pembelajaran yang lancar dan sintaks ringkas; JavaScript sesuai untuk pembangunan front-end, dengan lengkung pembelajaran yang curam dan sintaks yang fleksibel. 1. Sintaks Python adalah intuitif dan sesuai untuk sains data dan pembangunan back-end. 2. JavaScript adalah fleksibel dan digunakan secara meluas dalam pengaturcaraan depan dan pelayan.

Dari C/C ke JavaScript: Bagaimana semuanya berfungsi Dari C/C ke JavaScript: Bagaimana semuanya berfungsi Apr 14, 2025 am 12:05 AM

Peralihan dari C/C ke JavaScript memerlukan menyesuaikan diri dengan menaip dinamik, pengumpulan sampah dan pengaturcaraan asynchronous. 1) C/C adalah bahasa yang ditaip secara statik yang memerlukan pengurusan memori manual, manakala JavaScript ditaip secara dinamik dan pengumpulan sampah diproses secara automatik. 2) C/C perlu dikumpulkan ke dalam kod mesin, manakala JavaScript adalah bahasa yang ditafsirkan. 3) JavaScript memperkenalkan konsep seperti penutupan, rantaian prototaip dan janji, yang meningkatkan keupayaan pengaturcaraan fleksibiliti dan asynchronous.

JavaScript dan Web: Fungsi teras dan kes penggunaan JavaScript dan Web: Fungsi teras dan kes penggunaan Apr 18, 2025 am 12:19 AM

Penggunaan utama JavaScript dalam pembangunan web termasuk interaksi klien, pengesahan bentuk dan komunikasi tak segerak. 1) kemas kini kandungan dinamik dan interaksi pengguna melalui operasi DOM; 2) pengesahan pelanggan dijalankan sebelum pengguna mengemukakan data untuk meningkatkan pengalaman pengguna; 3) Komunikasi yang tidak bersesuaian dengan pelayan dicapai melalui teknologi Ajax.

JavaScript in Action: Contoh dan projek dunia nyata JavaScript in Action: Contoh dan projek dunia nyata Apr 19, 2025 am 12:13 AM

Aplikasi JavaScript di dunia nyata termasuk pembangunan depan dan back-end. 1) Memaparkan aplikasi front-end dengan membina aplikasi senarai TODO, yang melibatkan operasi DOM dan pemprosesan acara. 2) Membina Restfulapi melalui Node.js dan menyatakan untuk menunjukkan aplikasi back-end.

Memahami Enjin JavaScript: Butiran Pelaksanaan Memahami Enjin JavaScript: Butiran Pelaksanaan Apr 17, 2025 am 12:05 AM

Memahami bagaimana enjin JavaScript berfungsi secara dalaman adalah penting kepada pemaju kerana ia membantu menulis kod yang lebih cekap dan memahami kesesakan prestasi dan strategi pengoptimuman. 1) aliran kerja enjin termasuk tiga peringkat: parsing, penyusun dan pelaksanaan; 2) Semasa proses pelaksanaan, enjin akan melakukan pengoptimuman dinamik, seperti cache dalam talian dan kelas tersembunyi; 3) Amalan terbaik termasuk mengelakkan pembolehubah global, mengoptimumkan gelung, menggunakan const dan membiarkan, dan mengelakkan penggunaan penutupan yang berlebihan.

Python vs JavaScript: Komuniti, Perpustakaan, dan Sumber Python vs JavaScript: Komuniti, Perpustakaan, dan Sumber Apr 15, 2025 am 12:16 AM

Python dan JavaScript mempunyai kelebihan dan kekurangan mereka sendiri dari segi komuniti, perpustakaan dan sumber. 1) Komuniti Python mesra dan sesuai untuk pemula, tetapi sumber pembangunan depan tidak kaya dengan JavaScript. 2) Python berkuasa dalam bidang sains data dan perpustakaan pembelajaran mesin, sementara JavaScript lebih baik dalam perpustakaan pembangunan dan kerangka pembangunan depan. 3) Kedua -duanya mempunyai sumber pembelajaran yang kaya, tetapi Python sesuai untuk memulakan dengan dokumen rasmi, sementara JavaScript lebih baik dengan MDNWebDocs. Pilihan harus berdasarkan keperluan projek dan kepentingan peribadi.

Python vs JavaScript: Persekitaran dan Alat Pembangunan Python vs JavaScript: Persekitaran dan Alat Pembangunan Apr 26, 2025 am 12:09 AM

Kedua -dua pilihan Python dan JavaScript dalam persekitaran pembangunan adalah penting. 1) Persekitaran pembangunan Python termasuk Pycharm, Jupyternotebook dan Anaconda, yang sesuai untuk sains data dan prototaip cepat. 2) Persekitaran pembangunan JavaScript termasuk node.js, vscode dan webpack, yang sesuai untuk pembangunan front-end dan back-end. Memilih alat yang betul mengikut keperluan projek dapat meningkatkan kecekapan pembangunan dan kadar kejayaan projek.

Peranan C/C dalam JavaScript Jurubah dan Penyusun Peranan C/C dalam JavaScript Jurubah dan Penyusun Apr 20, 2025 am 12:01 AM

C dan C memainkan peranan penting dalam enjin JavaScript, terutamanya digunakan untuk melaksanakan jurubahasa dan penyusun JIT. 1) C digunakan untuk menghuraikan kod sumber JavaScript dan menghasilkan pokok sintaks abstrak. 2) C bertanggungjawab untuk menjana dan melaksanakan bytecode. 3) C melaksanakan pengkompil JIT, mengoptimumkan dan menyusun kod hot-spot semasa runtime, dan dengan ketara meningkatkan kecekapan pelaksanaan JavaScript.

See all articles