class Scoutui::Base::QApplitools
Attributes
eyes[RW]
Public Class Methods
new()
click to toggle source
# File lib/scoutui/base/q_applitools.rb, line 13 def initialize @eyes=nil end
Public Instance Methods
download_diffs(results, view_key, destination)
click to toggle source
# File lib/scoutui/base/q_applitools.rb, line 78 def download_diffs(results, view_key, destination) Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " download_diffs()" session_id = get_session_id(results.url) diff_urls = get_diff_urls(session_id, view_key) download_images(diff_urls, destination) end
download_images(diff_urls, destination)
click to toggle source
# File lib/scoutui/base/q_applitools.rb, line 86 def download_images(diff_urls, destination) diff_urls.each do |index, url| File.open("#{destination}/step_#{index}_diff.png", 'wb') do |file| file.write HTTParty.get(url) end end end
get_diff_urls(session_id, view_key)
click to toggle source
# File lib/scoutui/base/q_applitools.rb, line 94 def get_diff_urls(session_id, view_key) info = "https://eyes.applitools.com/api/sessions/#{session_id}/?ApiKey=#{view_key}&format=json" diff_template = "https://eyes.applitools.com/api/sessions/#{session_id}/steps/%s/diff?ApiKey=#{view_key}" diff_urls = Hash.new Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " info => #{info}" response = HTTParty.get(info) begin data = JSON.parse(response.body) index = 1 data['actualOutput'].each do |elem| if (elem['isMatching'] == false) diff_urls[index] = diff_template % [index] index+=1 end end diff_urls rescue JSON::ParserError ; end end
get_session_id(url)
click to toggle source
# File lib/scoutui/base/q_applitools.rb, line 120 def get_session_id(url) /sessions\/(?<session>\d+)/.match(url)[1] end
print_results(results, view_key)
click to toggle source
# File lib/scoutui/base/q_applitools.rb, line 60 def print_results(results, view_key) if results.is_passed print "Your test was passed!\n" elsif results.is_new print "Created new baseline, this is a new test or/and new configuration!" else print "Your test was failed!\n" print "#{results.mismatches} out of #{results.steps} steps failed \n" print "Here are the failed steps:\n" session_id = get_session_id(results.url) diff_urls = get_diff_urls(session_id, view_key) diff_urls.each do |index, diff_url| print "Step #{index} --> #{diff_url} \n" end print "For more details please go to #{results.url} to review the differences! \n" end end
report(results)
click to toggle source
# File lib/scoutui/base/q_applitools.rb, line 35 def report(results) download_diffs(results, "VIEW_KEY", '/tmp/diff_images') end
setup()
click to toggle source
# File lib/scoutui/base/q_applitools.rb, line 18 def setup @eyes = Applitools::Eyes.new # This is your api key, make sure you use it in all your tests. @eyes.api_key = "API_KEY" # Get a selenium web driver object. @driver = Selenium::WebDriver.for :chrome #Eyes.log_handler = Logger.new(STDOUT) end
teardown()
click to toggle source
Called after every test method runs. Can be used to tear down fixtures information.
# File lib/scoutui/base/q_applitools.rb, line 31 def teardown @eyes.abort_if_not_closed end
xxxtestit()
click to toggle source
Fake test
# File lib/scoutui/base/q_applitools.rb, line 40 def xxxtestit #@eyes.baseline_name='my_test_name' wrapped_driver = @eyes.open( app_name: 'Applitools website', test_name: 'Example test', viewport_size: {width: 900, height: 650}, driver: @driver) wrapped_driver.get 'https://www.applitools.com' # Visual validation point #1 @eyes.check_window('Main Page') wrapped_driver.find_element(:css, ".features>a").click # Visual validation point #2 @eyes.check_window('Features Page') results = @eyes.close(false) download_diffs(results, "VIEW_KEY", './diff_images') print_results(results, "VIEW_KEY") end