Cara menaikkan proyek uji pada windows 10 (Mentimun + capybara + selenium-webdriver)

Artikel ini dirancang untuk membiasakan diri Anda dengan autotesting dan penyebaran lingkungan di Windows 10 dan ditujukan bagi mereka yang tahu sedikit tentang Mentimun + Capybara + Selenium-webdriver . Gagasan untuk artikel muncul karena perbedaan dalam lingkungan penyebaran pada Windows 10 dan Linux.


Beberapa kata tentang permata Mentimun + Capybara + Selenium-webdriver (perpustakaan) yang diperlukan untuk menjalankan dan mengisi tes UI dengan tes.

Mentimun


ucumber adalah permata yang memungkinkan Anda untuk menulis tes dalam bahasa manusia. Untuk melakukan ini, gunakan notasi Gherkin, yang mendefinisikan struktur dan aturan untuk menulis skrip. Detailnya bisa dibaca di sini


Capybara


Capybara adalah permata yang memungkinkan Anda mencari / mengklik / ... untuk elemen browser. Yaitu Ini adalah tautan antara langkah-langkah Mentimun tes dan webdriver (contoh dari browser yang disebut). Di sini Anda dapat melihat metode permata ini.

Selenium-webdriver


Selenium-webdriver adalah alat untuk mengotomatisasi tindakan browser web. Intinya, ini adalah contoh browser.

Tindakan Pendahuluan


Deskripsi tindakan pendahuluan
Untuk kenyamanan, kami akan menggunakan RubyMine. Anda dapat mengunduh versi uji coba selama 30 hari.

Unduh Firefox dan Chrome untuk menjalankan tes.

Unduh dan pasang Git (sistem kontrol versi atau VCS serupa, situs resmi ). Tetapi Git diperlukan ketika Anda sudah memiliki proyek atau Anda ingin menyimpan kode Anda dalam sistem Git.

Jadi mari kita mulai


Kami sudah menginstal RubyMine.

  1. Anda perlu menginstal bahasa Ruby itu sendiri. Untuk melakukan ini, buka di sini dan instal RubyInstaller. Saya memilih rilis terbaru (RubyInstaller 2.5.1-2) dengan paket DevKit. Melalui paket konfigurasi ini, Anda dapat menjalankan tes dari konsol, seperti di Linux, serta mengelola permata secara fleksibel.
  2. Paket RubyInstaller diinstal dan kami beralih ke konfigurasi.
    Jika kami ingin membuat proyek baru, maka buka RubyMine dan buat proyek kosong, yang menunjukkan Ruby yang diinstal.

  3. Selanjutnya, kita perlu membuat struktur folder dan file ini sesuai dengan anotasi


    Dijelaskan secara rinci di sini
  4. Gemfile - berisi daftar permata yang digunakan dalam proyek

    Berikut adalah isi dari gemfile kami, dengan permata paling dasar untuk tes UI
    source 'https://rubygems.org' gem 'cucumber' gem 'capybara' gem 'selenium-webdriver' gem 'chromedriver-helper' 


    Keempat permata ini harus ditentukan dalam Gemfile.
    gem 'chromedriver-helper' - driver chrome yang memungkinkan pengujian pada Chrome
    Dengan gemfile ini Anda perlu menginstal permata pilihan kami. Menginstal di Windows paling mudah dari antarmuka RubyMine: Tools -> Bundler -> Install menu . Bundler juga permata, tetapi berfungsi untuk mengontrol permata. Tetapi Anda juga dapat melakukan ini dari baris perintah, yang terletak di menu program dengan nama Mulai Command Prompt ...
    Omong-omong, menggunakan baris perintah ini Anda dapat menjalankan tes melewati RubyMine.
  5. File env.rb adalah file rb kunci untuk menjalankan tes UI. Saat menginisialisasi variabel dan menguji file, itu akan menjadi env.rb yang akan menjadi yang pertama. Ini adalah registrasi browser tempat tes akan dijalankan. Contoh env.rb yang sudah jadi di mana Chrome, Firefox terdaftar, atau mari kita pahami bahwa kita sama sekali tidak memerlukan browser sama sekali untuk menjalankan tes.
    Kasus-kasus ketika browser tidak diperlukan - kami memeriksa permintaan sisanya, pengujian integrasi, meskipun diyakini bahwa tes Timun tidak cukup cocok untuk ini.

    Menulis env.rb
     require 'capybara/cucumber' require 'selenium-webdriver' Capybara.register_driver :driver do |app| case ENV['DRIVER'] when 'chrome' Capybara::Selenium::Driver.new(app, :browser => :chrome) when 'without_browser' Capybara.default_driver = :mechanize else client = Selenium::WebDriver::Remote::Http::Default.new Capybara::Selenium::Driver.new(app, :browser => :firefox, port: 10000 + Random.rand(1000), http_client: client) end end Capybara.default_driver = :driver Capybara.default_selector = :xpath 


    Juga, ini adalah masalah versi Firefox.
    Jika Anda telah menginstal Firefox versi 46 atau lebih rendah, maka untuk menjalankan tes dengan benar, Anda memerlukan permata 'capybara' versi '2.53.4' atau lebih rendah.

    Jika versi Firefox lebih tinggi dari 46, maka itu bekerja pada prinsip-prinsip lain berdasarkan "geckodriver" dan karena itu, untuk menjalankan tes dengan benar, Anda perlu menginstal geckodriver .

    Tamasya menjadi alasan mengapa tokekriver dibutuhkan
    Sebelum versi 47, driver otomatisasi Firefox hanyalah ekstensi yang disertakan dengan setiap klien. Tetapi ekstensi ini telah dihapus karena perubahan kebijakan yang sekarang mengharuskan semua ekstensi ditandatangani oleh Mozilla.

    Marionette adalah driver baru yang dikirimkan bersama Firefox. Driver ini memiliki protokolnya sendiri, yang tidak kompatibel dengan protokol Selenium / WebDriver.

    Geckodriver adalah server aplikasi yang mengimplementasikan protokol Selenium / WebDriver. Dia menerjemahkan perintah Selenium dan mengalihkannya ke driver Marionette.

    Nuansa yang penting , setelah menginstal "geckodriver", perlu untuk meresepkan jalur sistem sehingga "geckodriver" kami ditemukan saat menjalankan env.rb.

    jalur sistem


  6. Selanjutnya, hanya tinggal menulis tes pengujian dan berjalan di Chrome, Firefox dan tanpa browser :). Misalnya, kami akan menulis beberapa langkah untuk memasukkan surat mail.ru

    Deskripsi langkah-langkah
     # encoding: UTF-8 # language: ru Given(/^   "(.*?)"$/) do |page| visit page end Given(/^  "(.*?)"   c id "(.*?)"$/) do |text, field_id| find("//input[@id='#{field_id}']").set(text) end Given(/^  "(.*?)"     id "(.*?)"$/) do |text, select_id| find("//select[@id='#{select_id}']/option[text()='#{text}']").click end Given(/^    "(.*?)"$/) do |text| find("//input[@value='#{text}']").click end Given(/^ (\d+) (?:|)$/) do |sec| sleep sec.to_i end 


  7. Serta tes mentimun itu sendiri

    test.feature
     # encoding: UTF-8 # language: ru :   :       "https://mail.ru/"    "dorian.grey.2019"   c id "mailbox:login"    "********"   c id "mailbox:password"    "@inbox.ru"     id "mailbox:domain"      ""   5  


  8. Tetap hanya untuk memeriksa semua upaya kami dan menikmati keberhasilan operasi tes UI (dalam contoh 1 tes) :). Pengaturan terakhir yang tersisa adalah pengaturan uji coba. Pergi ke menu RubyMine -> Edit Configurations -> Runner Options - Di sini kita tinggal pilih driver :)
    ENV ['DRIVER'] dari env.rb ini adalah pengaturan peluncuran. Dan kita hanya perlu menentukan "DRIVER = firefox" atau "DRIVER = chrome" di Opsi Runner.

Kami meluncurkan



Itu saja, tes Timun sukses untuk Anda!

Source: https://habr.com/ru/post/id423123/


All Articles