/ / Automatizované testovanie s uhorkou na BrowserStack stránky za VPN - rubín, uhorka, vpn, automatizované testy, prehliadač

Automatické testovanie s okurkou na prehliadačiStack stránky za VPN - rubín, uhorka, vpn, automatizované testy, browserstack

Snažím sa, aby moje Cucumber testy fungovaliBrowserStack. Problém je v tom, že všetky testovacie prostredia sú za VPN. Dokumenty prehliadača BrowserStack hovoria, stačí nastaviť miestne testovanie a bude to fungovať !. Testy začínajú, ale nie sú presmerované cez môj lokálny počítač, aby som si vyzdvihol moje VPN poverenia. Stiahol som si binárku podľa inštrukcií BrowserStack. Začal som to s príkazom

~ ./BrowserStackLocal <my BS key> -forcelocal

Potom spustím test (v inom terminálovom okne):

bundle exec cucumber CURRENT_BROWSER=browserstack features/01_login.feature

môj env.rb vyzerá takto:

require "cucumber/rails"

Capybara.default_selector = :css

cb = ENV["CURRENT_BROWSER"]
testbrowser = cb ? cb.downcase.to_sym : :firefox
puts "-------------- current browser: #{testbrowser}........."
Capybara.register_driver :selenium do |app|
if RbConfig::CONFIG["host_os"][/linux/] && testbrowser.to_s.eql?("CHROME".downcase)
Capybara::Selenium::Driver.new(app, {:browser => :remote, :url => "http://127.0.0.1:9515"})
else
if testbrowser.eql?(:chrome)
prefs = {
:download => {
:prompt_for_download => false,
:default_directory => DownloadHelpers::PATH.to_s
}
}
Capybara::Selenium::Driver.new(app, :browser => :chrome, :prefs => prefs, :switches => %w[--test-type])
elsif testbrowser.eql?(:browserstack)
stackToUse = ENV["BS_STACK"] || "ie_9"
json = JSON.load(open(File.expand_path(File.join(File.dirname(__FILE__), "..", "..", "browsers.json"))))
config = json[stackToUse]
unless config
puts "invalid BS_STACK specified. Was "#{stackToUse}""
return
end

# Add default config
config["name"] = "#{config["os"]} #{config["os_version"]} - #{Time.now.strftime "%Y-%m-%d %H:%M"}"
config["acceptSslCert"] = true
config["browserstack.debug"] = true
Capybara::Selenium::Driver.new(app, :browser => :remote, :desired_capabilities => config, :url => "http://<BS_USERNAME>:<BS_PASSKEY>@hub.browserstack.com/wd/hub")
elsif testbrowser.eql?(:internetexplorer)
Capybara::Selenium::Driver.new(app, :browser => :internetexplorer, :switches => %w[--test-type])
else
profile = Selenium::WebDriver::Firefox::Profile.new
profile
profile["browser.download.dir"] = DownloadHelpers::PATH.to_s
profile["browser.download.folderList"] = 2 # 2 - save to user defined location
profile["browser.download.manager.alertOnEXEOpen"] = false
profile["browser.helperApps.neverAsk.saveToDisk"] = "application/msword, application/csv, application/ris, text/csv, image/png, application/pdf, text/html, text/plain, application/zip, application/x-zip, application/x-zip-compressed, application/download, application/octet-stream, data:application/csv"
profile["browser.helperApps.alwaysAsk.force"] = false
profile["browser.download.manager.showWhenStarting"] = false
profile["browser.download.manager.focusWhenStarting"] = false
profile["browser.download.useDownloadDir"] = true
profile["browser.download.manager.alertOnEXEOpen"] = false
profile["browser.download.manager.closeWhenDone"] = true
profile["browser.download.manager.showAlertOnComplete"] = false
profile["browser.download.manager.useWindow"] = false

profile["services.sync.prefs.sync.browser.download.manager.showWhenStarting"] = false
profile["pdfjs.disabled"] = true
Capybara::Selenium::Driver.new(app, :browser => testbrowser, :profile => profile)
end
end
end

ActionController::Base.allow_rescue = false

# Remove/comment out the lines below if your app doesn"t have a database.
# For some databases (like MongoDB and CouchDB) you may need to use :truncation instead.
begin
DatabaseCleaner.strategy = :transaction
rescue NameError
raise "You need to add database_cleaner to your Gemfile (in the :test group) if you wish to use it."
end

# You may also want to configure DatabaseCleaner to use different strategies for certain features and scenarios.
# See the DatabaseCleaner documentation for details. Example:
#
#   Before("@no-txn,@selenium,@culerity,@celerity,@javascript") do
#     # { :except => [:widgets] } may not do what you expect here
#     # as tCucumber::Rails::Database.javascript_strategy overrides
#     # this setting.
#     DatabaseCleaner.strategy = :truncation
#   end
#
#   Before("~@no-txn", "~@selenium", "~@culerity", "~@celerity", "~@javascript") do
#     DatabaseCleaner.strategy = :transaction
#   end
#

# Possible values are :truncation and :transaction
# The :transaction strategy is faster, but might give you threading problems.
# See https://github.com/cucumber/cucumber-rails/blob/master/features/choose_javascript_database_strategy.feature
Cucumber::Rails::Database.javascript_strategy = :truncation

Ostatní ľudia používajú tieto isté testy a mámenapísané desiatky, takže sa uistiť, že môžem stále spustiť tieto testy lokálne je prvoradá. Keď spustím testy, začne sa spúšťať v prehliadači, ale nemôže sa dostať na žiadnu z lokalít, o ktorých som sa snažil povedať. http://localhost:3000/login Obrátil som sa na podporu BrowserStack a oniopýtal sa ma, či som nastavil miestne testovanie. Jediná chyba, ktorú dostávam, je, že test nemôže nájsť CSS prvok na prihlásenie. Keď som sledoval automatizovaný test prostredníctvom prehliadača, vidím, že to nie je na stránke. To len hovorí "Oops! Tento odkaz sa zdá byť rozbité." Akékoľvek návrhy by boli najviac ocenené.

odpovede:

2 pre odpoveď č. 1

Podpora v prehliadači BrowserStack sa mi vrátila. Musel som mať inú konfiguračnú vlastnosť, ako je to v prípade env.rb:

config["browserstack.local"] = true

Môj jediný problém je, že žiadna z funkcií, ktoré sme napísali, nefunguje na IE. Takže môžem otestovať chróm alebo Firefox v prehliadači, ale ja som už mal túto schopnosť nastavenú.