El artículo está diseñado para familiarizarse con la autoevaluación y la implementación del entorno en Windows 10 y está destinado a aquellos que conocen un poco sobre
Cucumber + Capybara + Selenium-webdriver . La idea del artículo surgió debido a las diferencias en el entorno de implementación en Windows 10 y Linux.
Algunas palabras sobre la gema (bibliotecas) de pepino + Carpincho + Selenio-webdriver que se necesitan para ejecutar y completar pruebas de IU con pruebas.
Pepino
ucumber es una gema que le permite escribir pruebas en el lenguaje humano. Para hacer esto, use la notación Gherkin, que define la estructura y las reglas para escribir guiones. Los detalles se pueden leer
aquíCarpincho
Carpincho es una joya que le permite buscar / hacer clic / ... para los elementos del navegador. Es decir Es el enlace entre los pasos de Cucumber de la prueba y el controlador web (instancia del navegador llamado).
Aquí puedes ver los métodos de esta gema.
Selenio-webdriver
Selenium-webdriver es una herramienta para automatizar las acciones de un navegador web. En esencia, esta es la instancia del navegador.
Acciones preliminares
Descripción de acciones preliminaresPor conveniencia, usaremos RubyMine. Puede
descargar una versión de prueba durante 30 días.
Descarga Firefox y Chrome para ejecutar las pruebas.
Descargue e instale Git (sistema de control de versiones o VCS similar,
sitio oficial ). Pero Git es necesario cuando ya tiene un proyecto o desea almacenar su código en un sistema Git.
Así que empecemos
Ya tenemos instalado RubyMine.
- Necesita instalar el lenguaje Ruby en sí. Para hacer esto, vaya aquí e instale RubyInstaller. Elegí la última versión (RubyInstaller 2.5.1-2) con el paquete DevKit. A través de este paquete de configuración, puede ejecutar pruebas desde la consola, como en Linux, así como administrar gemas de manera flexible.
- El paquete RubyInstaller está instalado y estamos pasando a la configuración.
Si queremos crear un nuevo proyecto, entonces abra RubyMine y cree un proyecto vacío, indicando el Ruby instalado.
- A continuación, debemos crear esta estructura de carpetas y archivos de acuerdo con la anotación.
Descrito en detalle aquí - Gemfile: contiene una lista de gemas que se usan en el proyecto
Aquí están los contenidos de nuestro archivo de gemas, con las gemas más básicas para las pruebas de IUsource 'https://rubygems.org' gem 'cucumber' gem 'capybara' gem 'selenium-webdriver' gem 'chromedriver-helper'
Estas 4 gemas deben especificarse en el Gemfile.
gem 'chromedriver-helper': controlador de Chrome que permite ejecutar pruebas en Chrome
Con este gemfile necesitas instalar nuestras gemas seleccionadas. Instalar en Windows es más fácil desde la interfaz de RubyMine: Herramientas -> Bundler -> Menú de instalación . Bundler también es una gema, pero sirve para controlar gemas. Pero también puede hacerlo desde la línea de comandos, que se encuentra en el menú del programa bajo el nombre Iniciar símbolo del sistema ...
Por cierto, usando esta línea de comando puedes ejecutar pruebas sin pasar por RubyMine.
- El archivo env.rb es el archivo rb clave para ejecutar pruebas de IU. Al inicializar variables y archivos de prueba, será env.rb el primero. Es el registro del navegador en el que se ejecutarán las pruebas. Un ejemplo listo de env.rb donde Chrome, Firefox está registrado, o comprendamos que no necesitamos un navegador para ejecutar las pruebas.
Casos en los que no se necesita un navegador: verificamos las solicitudes de descanso, las pruebas de integración, aunque se cree que las pruebas de Cucumber no son adecuadas para esto.
Escribiendo 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
Además, aquí está el problema de las versiones de Firefox.
Si ha instalado la versión 46 o inferior de Firefox, para ejecutar las pruebas correctamente, necesita la versión de gema 'capybara' 2.53.4 'o inferior.
Si la versión de Firefox es superior a 46, entonces funciona en otros principios basados en el "geckodriver" y, por lo tanto, para ejecutar las pruebas correctamente, debe instalar geckodriver .
Una excursión a las razones por las cuales se necesita geckodriverAntes de la versión 47, el controlador de automatización de Firefox era solo una extensión que se incluía con cada cliente. Pero esta extensión se ha eliminado debido a un cambio de política que ahora requiere que todas las extensiones estén firmadas por Mozilla.
Marionette es el nuevo controlador que se incluye con Firefox. Este controlador tiene su propio protocolo, que es incompatible con el protocolo Selenium / WebDriver.
Geckodriver es un servidor de aplicaciones que implementa el protocolo Selenium / WebDriver. Traduce los comandos de Selenium y los redirige al controlador Marionette.
Un matiz importante , después de instalar "geckodriver", es necesario prescribir las rutas del sistema para que nuestro "geckodriver" se encuentre al ejecutar env.rb.
- A continuación, solo queda escribir una prueba de prueba y ejecutarla en Chrome, Firefox y sin un navegador :). Por ejemplo, escribiremos algunos pasos para ingresar el correo mail.ru
Descripción de pasos # 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
- Así como la prueba de pepino en sí
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
- Solo queda verificar todos nuestros esfuerzos y disfrutar del funcionamiento exitoso de las pruebas de IU (en el ejemplo 1 de la prueba) :). El último ajuste que queda es la configuración de ejecución de prueba. Vaya al menú RubyMine -> Editar configuraciones -> Opciones de corredor - Aquí solo seleccionamos el controlador :)
ENV ['DRIVER'] de env.rb esta es la configuración de inicio. Y solo necesitamos especificar “DRIVER = firefox” o “DRIVER = chrome” en las Opciones del corredor.
Lanzamos

¡Eso es todo, exitosas pruebas de pepino para ti!