Improved speed of tests.

This commit is contained in:
Martin Edenhofer 2015-02-23 16:35:48 +01:00
parent 809246aab5
commit 6b4436d17e
6 changed files with 268 additions and 381 deletions

View file

@ -19,12 +19,14 @@ class AAbUnitTest < TestCase
:css => '.result .failed',
:value => '0',
)
location( :url => browser_url + '/tests-model' )
sleep 8
match(
:css => '.result .failed',
:value => '0',
)
location( :url => browser_url + '/tests-model-ui' )
sleep 8
match(
@ -40,15 +42,14 @@ class AAbUnitTest < TestCase
:css => '.result .failed',
:value => '0',
)
location( :url => browser_url + '/tests-form-extended' )
sleep 8
match(
:css => '.result .failed',
:value => '0',
)
end
def test_form_validation
@browser = browser_instance
location( :url => browser_url + '/tests-form-validation' )
sleep 4
match(
@ -64,6 +65,7 @@ class AAbUnitTest < TestCase
:css => '.result .failed',
:value => '0',
)
location( :url => browser_url + '/tests-html-utils' )
sleep 4
match(

View file

@ -2,60 +2,8 @@
require 'browser_test_helper'
class AgentOrganizationProfileTest < TestCase
def test_search_and_edit_verify_in_second
message = 'comment 1 ' + rand(99999999999999999).to_s
browser1 = browser_instance
login(
:browser => browser1,
:username => 'master@example.com',
:password => 'test',
:url => browser_url,
)
tasks_close_all(
:browser => browser1,
)
browser2 = browser_instance
login(
:browser => browser2,
:username => 'agent1@example.com',
:password => 'test',
:url => browser_url,
)
tasks_close_all(
:browser => browser2,
)
organization_open_by_search(
:browser => browser1,
:value => 'Zammad Foundation',
)
organization_open_by_search(
:browser => browser2,
:value => 'Zammad Foundation',
)
# update note
set(
:browser => browser1,
:css => '.active [data-name="note"]',
:value => message,
)
click(
:browser => browser1,
:css => '.active .profile',
)
# verify
watch_for(
:browser => browser2,
:css => '.active .profile-window',
:value => message,
)
end
def test_search_and_edit_in_one
def test_org_profile
# work in one browser window
message = '1 ' + rand(99999999).to_s
@browser = browser_instance
@ -131,5 +79,52 @@ class AgentOrganizationProfileTest < TestCase
:css => '.active .profile-window',
:value => 'org profile check ' + message,
)
tasks_close_all()
# work with two browser windows
message = 'comment 1 ' + rand(99999999999999999).to_s
# use current session
browser1 = @browser
browser2 = browser_instance
login(
:browser => browser2,
:username => 'agent1@example.com',
:password => 'test',
:url => browser_url,
)
tasks_close_all(
:browser => browser2,
)
organization_open_by_search(
:browser => browser1,
:value => 'Zammad Foundation',
)
organization_open_by_search(
:browser => browser2,
:value => 'Zammad Foundation',
)
# update note
set(
:browser => browser1,
:css => '.active [data-name="note"]',
:value => message,
)
click(
:browser => browser1,
:css => '.active .profile',
)
# verify
watch_for(
:browser => browser2,
:css => '.active .profile-window',
:value => message,
)
end
end

View file

@ -3,292 +3,150 @@ require 'browser_test_helper'
class AgentTicketActionLevel1Test < TestCase
def test_agent_ticket_merge_closed_tab
tests = [
{
:name => 'agent ticket create 1',
:action => [
{
:execute => 'close_all_tasks',
},
# create ticket
{
:execute => 'create_ticket',
:group => 'Users',
:subject => 'some subject 123äöü',
:body => 'some body 123äöü - with closed tab',
},
# merge ticket with closed tab
@browser = browser_instance
login(
:username => 'agent1@example.com',
:password => 'test',
:url => browser_url,
)
tasks_close_all()
# check ticket
{
:execute => 'match',
:css => '.content.active .ticket-article',
:value => 'some body 123äöü - with closed tab',
:match_result => true,
},
# remember old ticket where we want to merge to
{
:execute => 'match',
:css => '.content.active .page-header .ticket-number',
:value => '^(.*)$',
:no_quote => true,
:match_result => true,
},
# update ticket
#{
# :execute => 'select',
# :css => '.active select[name="type_id"]',
# :value => 'note',
#},
{
:execute => 'set_ticket_attributes',
:body => 'some body 1234 äöüß - with closed tab',
},
{
:execute => 'click',
:css => '.content.active button.js-submit',
},
{
:execute => 'wait',
:value => 2,
},
{
:execute => 'watch_for',
:area => '.content.active .ticket-article',
:value => 'some body 1234 äöüß - with closed tab',
},
{
:execute => 'close_all_tasks',
},
],
# create new ticket
ticket1 = ticket_create(
:data => {
:customer => 'nico',
:group => 'Users',
:title => 'some subject 123äöü - with closed tab',
:body => 'some body 123äöü - with closed tab',
},
)
sleep 1
{
:name => 'agent ticket create 2',
:action => [
# create ticket
{
:execute => 'create_ticket',
:group => 'Users',
:subject => 'test to merge',
:body => 'some body 123äöü 222 - test to merge - with closed tab',
},
# check ticket
{
:execute => 'watch_for',
:area => '.content.active .ticket-article',
:value => 'some body 123äöü 222 - test to merge - with closed tab',
},
# update ticket
#{
# :execute => 'select',
# :css => '.content_permanent.active select[name="type_id"]',
# :value => 'note',
#},
{
:execute => 'set_ticket_attributes',
:body => 'some body 1234 äöüß 333 - with closed tab',
},
{
:execute => 'click',
:css => '.content.active button.js-submit',
},
{
:execute => 'wait',
:value => 2,
},
{
:execute => 'watch_for',
:area => '.content.active .ticket-article',
:value => 'some body 1234 äöüß 333 - with closed tab',
},
# check if task is shown
{
:execute => 'match',
:css => 'body',
:value => 'test to merge',
:match_result => true,
},
],
# update ticket
ticket_update(
:data => {
:body => 'some body 1234 äöüß - with closed tab',
},
{
:name => 'agent ticket merge',
:action => [
{
:execute => 'click',
:css => '.active div[data-tab="ticket"] .js-actions .select-arrow',
},
{
:execute => 'click',
:css => '.active div[data-tab="ticket"] .js-actions a[data-type="ticket-merge"]',
},
{
:execute => 'wait',
:value => 4,
},
{
:execute => 'set',
:css => '.modal input[name="master_ticket_number"]',
:value => '###stack###',
},
{
:execute => 'click',
:css => '.modal button[type="submit"]',
},
{
:execute => 'wait',
:value => 6,
},
)
# check if merged to ticket is shown now
{
:execute => 'match',
:css => '.active .page-header .ticket-number',
:value => '###stack###',
:match_result => true,
},
tasks_close_all()
# check if task is now gone
{
:execute => 'match',
:css => 'body',
:value => 'test to merge - with closed tab',
:match_result => true,
},
# close task/cleanup
{
:execute => 'close_all_tasks',
},
],
# create second ticket to merge
ticket2 = ticket_create(
:data => {
:customer => 'nico',
:group => 'Users',
:title => 'test to merge - with closed tab',
:body => 'some body 123äöü 222 - test to merge - with closed tab',
},
]
browser_signle_test_with_login(tests, { :username => 'agent1@example.com' })
end
)
def test_agent_ticket_merge_open_tab
tests = [
{
:name => 'agent ticket create 1',
:action => [
{
:execute => 'close_all_tasks',
},
# create ticket
{
:execute => 'create_ticket',
:group => 'Users',
:subject => 'some subject 123äöü',
:body => 'some body 123äöü - with open tab',
},
# check ticket
{
:execute => 'match',
:css => '.content.active .ticket-article',
:value => 'some body 123äöü - with open tab',
:match_result => true,
},
# remember old ticket where we want to merge to
{
:execute => 'match',
:css => '.content.active .page-header .ticket-number',
:value => '^(.*)$',
:no_quote => true,
:match_result => true,
},
],
ticket_update(
:data => {
:body => 'some body 1234 äöüß 333 - with closed tab',
},
)
{
:name => 'agent ticket create 2',
:action => [
# check if task is shown
match(
:css => '.tasks',
:value => 'test to merge - with closed tab',
)
# create ticket
{
:execute => 'create_ticket',
:group => 'Users',
:subject => 'test to merge',
:body => 'some body 123äöü 222 - test to merge - with open tab',
},
# merge tickets
click( :css => '.active div[data-tab="ticket"] .js-actions .select-arrow' )
click( :css => '.active div[data-tab="ticket"] .js-actions a[data-type="ticket-merge"]' )
watch_for(
:css => '.modal',
:value => 'merge',
)
# check ticket
{
:execute => 'watch_for',
:area => '.content.active .ticket-article',
:value => 'some body 123äöü 222 - test to merge - with open tab',
},
set(
:css => '.modal input[name="master_ticket_number"]',
:value => ticket1[:number],
)
# check if task is shown
{
:execute => 'match',
:css => 'body',
:value => 'test to merge',
:match_result => true,
},
],
click( :css => '.modal button[type="submit"]' )
# check if merged to ticket is shown now
watch_for(
:css => '.active .page-header .ticket-number',
:value => ticket1[:number],
)
watch_for(
:css => '.active .ticket-article',
:value => 'test to merge - with closed tab',
)
# check if task is now gone
match_not(
:css => '.tasks',
:value => 'test to merge',
)
match(
:css => '.tasks',
:value => 'some subject 123äöü - with closed tab',
)
# close task/cleanup
tasks_close_all()
# merge ticket with open tabs
ticket3 = ticket_create(
:data => {
:customer => 'nico',
:group => 'Users',
:title => 'some subject 123äöü - with open tab',
:body => 'some body 123äöü - with open tab',
},
{
:name => 'agent ticket merge',
:action => [
{
:execute => 'click',
:css => '.active div[data-tab="ticket"] .js-actions .select-arrow',
},
{
:execute => 'click',
:css => '.active div[data-tab="ticket"] .js-actions a[data-type="ticket-merge"]',
},
{
:execute => 'wait',
:value => 4,
},
{
:execute => 'set',
:css => '.modal input[name="master_ticket_number"]',
:value => '###stack###',
},
{
:execute => 'click',
:css => '.modal button[type="submit"]',
},
{
:execute => 'wait',
:value => 6,
},
)
# check if merged to ticket is shown now
{
:execute => 'match',
:css => '.active .page-header .ticket-number',
:value => '###stack###',
:match_result => true,
},
# check if task is now gone
{
:execute => 'match',
:css => 'body',
:value => 'test to merge - with open tab',
:match_result => true,
},
# close task/cleanup
{
:execute => 'close_all_tasks',
},
],
ticket4 = ticket_create(
:data => {
:customer => 'nico',
:group => 'Users',
:title => 'test to merge - with open tab',
:body => 'some body 123äöü 222 - test to merge - with open tab',
},
]
browser_signle_test_with_login(tests, { :username => 'agent1@example.com' })
)
# merge tickets
click( :css => '.active div[data-tab="ticket"] .js-actions .select-arrow' )
click( :css => '.active div[data-tab="ticket"] .js-actions a[data-type="ticket-merge"]' )
watch_for(
:css => '.modal',
:value => 'merge',
)
set(
:css => '.modal input[name="master_ticket_number"]',
:value => ticket3[:number],
)
click( :css => '.modal button[type="submit"]' )
# check if merged to ticket is shown now
watch_for(
:css => '.active .page-header .ticket-number',
:value => ticket3[:number],
)
watch_for(
:css => '.active .ticket-article',
:value => 'test to merge - with open tab',
)
# check if task is now gone
match_not(
:css => '.tasks',
:value => 'test to merge',
)
match(
:css => '.tasks',
:value => 'some subject 123äöü - with open tab',
)
end
end

View file

@ -125,7 +125,7 @@ class AgentTicketOverviewLevel1Test < TestCase
)
# close ticket
sleep 1 # needed to selenium cache issues
sleep 2 # needed to selenium cache issues
ticket_update(
:browser => browser2,
:data => {

View file

@ -2,59 +2,7 @@
require 'browser_test_helper'
class AgentUserProfileTest < TestCase
def test_search_and_edit_verify_in_second
message = 'comment 1 ' + rand(99999999999999999).to_s
browser1 = browser_instance
login(
:browser => browser1,
:username => 'master@example.com',
:password => 'test',
:url => browser_url,
)
tasks_close_all(
:browser => browser1,
)
browser2 = browser_instance
login(
:browser => browser2,
:username => 'agent1@example.com',
:password => 'test',
:url => browser_url,
)
tasks_close_all(
:browser => browser2,
)
user_open_by_search(
:browser => browser1,
:value => 'Braun',
)
user_open_by_search(
:browser => browser2,
:value => 'Braun',
)
# update note
set(
:browser => browser1,
:css => '.active [data-name="note"]',
:value => message,
)
click(
:browser => browser1,
:css => '.active .profile',
)
watch_for(
:browser => browser2,
:css => '.active .profile-window',
:value => message,
)
end
def test_search_and_edit_in_one
def test_user_profile
message = '1 ' + rand(99999999).to_s
@browser = browser_instance
@ -127,5 +75,52 @@ class AgentUserProfileTest < TestCase
:css => '.active .profile-window',
:value => 'user profile check ' + message,
)
tasks_close_all()
# work with two browser windows
message = 'comment 1 ' + rand(99999999999999999).to_s
# use current session
browser1 = @browser
browser2 = browser_instance
login(
:browser => browser2,
:username => 'agent1@example.com',
:password => 'test',
:url => browser_url,
)
tasks_close_all(
:browser => browser2,
)
user_open_by_search(
:browser => browser1,
:value => 'Braun',
)
user_open_by_search(
:browser => browser2,
:value => 'Braun',
)
# update note
set(
:browser => browser1,
:css => '.active [data-name="note"]',
:value => message,
)
click(
:browser => browser1,
:css => '.active .profile',
)
watch_for(
:browser => browser2,
:css => '.active .profile-window',
:value => message,
)
end
end

View file

@ -725,6 +725,8 @@ class TestCase < Test::Unit::TestCase
ticket_update(
:browser => browser1,
:data => {
:title => '',
:body => 'some body',
:group => 'some group',
:state => 'closed',
},
@ -737,6 +739,41 @@ class TestCase < Test::Unit::TestCase
instance = params[:browser] || @browser
data = params[:data]
if data[:title]
#element = instance.find_elements( { :css => '.content.active .page-header .ticket-title-update' } )[0]
#element.clear
#sleep 0.5
#element = instance.find_elements( { :css => '.content.active .page-header .ticket-title-update' } )[0]
#element.send_keys( data[:title] )
#sleep 0.5
#element.send_keys( :tab )
instance.execute_script( '$(".content.active .page-header .ticket-title-update").focus()' )
instance.execute_script( '$(".content.active .page-header .ticket-title-update").text("' + data[:title] + '")' )
instance.execute_script( '$(".content.active .page-header .ticket-title-update").blur()' )
instance.execute_script( '$(".content.active .page-header .ticket-title-update").trigger("blur")' )
# {
# :where => :instance2,
# :execute => 'sendkey',
# :css => '.content.active .page-header .ticket-title-update',
# :value => 'TTT',
# },
# {
# :where => :instance2,
# :execute => 'sendkey',
# :css => '.content.active .page-header .ticket-title-update',
# :value => :tab,
# },
end
if data[:body]
#instance.execute_script( '$(".content.active div[data-name=body]").focus()' )
sleep 0.5
element = instance.find_elements( { :css => '.content.active div[data-name=body]' } )[0]
element.clear
element.send_keys( data[:body] )
end
if data[:group]
element = instance.find_elements( { :css => '.active .sidebar select[name="group_id"]' } )[0]
dropdown = Selenium::WebDriver::Support::Select.new(element)