e2e: numprocesses and fixes

This commit is contained in:
Churikova Tetiana 2022-05-04 17:40:13 +02:00
parent 1e8d85983e
commit 411fd843ca
No known key found for this signature in database
GPG Key ID: 0D4EA7B33B47E6D8
13 changed files with 54 additions and 63 deletions

View File

@ -58,7 +58,7 @@ pipeline {
sh 'cp -f $TEST_ETH_ACCOUNTS_FILE users.py' sh 'cp -f $TEST_ETH_ACCOUNTS_FILE users.py'
sh """ sh """
python3 -m pytest \ python3 -m pytest \
--numprocesses 15 \ --numprocesses 9 \
--rerun_count=2 \ --rerun_count=2 \
--testrail_report=True \ --testrail_report=True \
-m testrail_id \ -m testrail_id \

View File

@ -97,7 +97,7 @@ pipeline {
sh 'cp -f $TEST_ETH_ACCOUNTS_FILE users.py' sh 'cp -f $TEST_ETH_ACCOUNTS_FILE users.py'
sh """ sh """
python3 -m pytest \ python3 -m pytest \
--numprocesses 15 \ --numprocesses 9 \
--rerun_count=2 \ --rerun_count=2 \
--testrail_report=True \ --testrail_report=True \
-m \"${params.TEST_MARKERS}\" \ -m \"${params.TEST_MARKERS}\" \

View File

@ -114,6 +114,7 @@ class TestrailReport(BaseTestReport):
test_cases['pr']['1_1_chat_commands'] = 50825 test_cases['pr']['1_1_chat_commands'] = 50825
test_cases['pr']['ens'] = 50827 test_cases['pr']['ens'] = 50827
test_cases['pr']['sync'] = 50834 test_cases['pr']['sync'] = 50834
test_cases['pr']['browser'] = 50812
## Nightly e2e ## Nightly e2e
test_cases['nightly']['medium'] = 736 test_cases['nightly']['medium'] = 736
test_cases['nightly']['chat'] = 50811 test_cases['nightly']['chat'] = 50811

View File

@ -81,7 +81,7 @@ def get_capabilities_sauce_lab():
desired_caps['deviceName'] = 'Android GoogleAPI Emulator' desired_caps['deviceName'] = 'Android GoogleAPI Emulator'
desired_caps['deviceOrientation'] = "portrait" desired_caps['deviceOrientation'] = "portrait"
desired_caps['commandTimeout'] = 600 desired_caps['commandTimeout'] = 600
desired_caps['idleTimeout'] = 800 desired_caps['idleTimeout'] = 1000
desired_caps['unicodeKeyboard'] = True desired_caps['unicodeKeyboard'] = True
desired_caps['automationName'] = 'UiAutomator2' desired_caps['automationName'] = 'UiAutomator2'
desired_caps['setWebContentDebuggingEnabled'] = True desired_caps['setWebContentDebuggingEnabled'] = True

View File

@ -1007,6 +1007,7 @@ class TestEnsStickersMultipleDevicesMerged(MultipleSharedDeviceTestCase):
send_transaction.ok_got_it_button.click() send_transaction.ok_got_it_button.click()
send_transaction.sign_transaction() send_transaction.sign_transaction()
chat_1_sender_message = self.chat_1.get_outgoing_transaction(transaction_value=amount) chat_1_sender_message = self.chat_1.get_outgoing_transaction(transaction_value=amount)
self.home_2.put_app_to_background_and_back()
self.network_api.wait_for_confirmation_of_transaction(self.sender['address'], amount, confirmations=3) self.network_api.wait_for_confirmation_of_transaction(self.sender['address'], amount, confirmations=3)
chat_1_sender_message.transaction_status.wait_for_element_text(chat_1_sender_message.confirmed) chat_1_sender_message.transaction_status.wait_for_element_text(chat_1_sender_message.confirmed)

View File

@ -19,8 +19,10 @@ class TestGroupChatMultipleDeviceMerged(MultipleSharedDeviceTestCase):
for key in cls.drivers: for key in cls.drivers:
sign_in = SignInView(cls.drivers[key]) sign_in = SignInView(cls.drivers[key])
cls.homes[key] = sign_in.create_user(enable_notifications=True) cls.homes[key] = sign_in.create_user(enable_notifications=True)
SignInView(cls.drivers[2]).put_app_to_background_and_back()
cls.public_keys[key], cls.usernames[key] = sign_in.get_public_key_and_username(True) cls.public_keys[key], cls.usernames[key] = sign_in.get_public_key_and_username(True)
sign_in.home_button.click() sign_in.home_button.click()
SignInView(cls.drivers[0]).put_app_to_background_and_back()
cls.chat_name = cls.homes[0].get_random_chat_name() cls.chat_name = cls.homes[0].get_random_chat_name()
cls.homes[0].just_fyi('Admin adds future members to contacts') cls.homes[0].just_fyi('Admin adds future members to contacts')
@ -42,6 +44,7 @@ class TestGroupChatMultipleDeviceMerged(MultipleSharedDeviceTestCase):
@marks.testrail_id(3994) @marks.testrail_id(3994)
def test_group_chat_push_system_messages_when_invited(self): def test_group_chat_push_system_messages_when_invited(self):
self.homes[1].just_fyi("Check system messages in PNs") self.homes[1].just_fyi("Check system messages in PNs")
self.homes[2].put_app_to_background_and_back()
self.homes[1].put_app_to_background() self.homes[1].put_app_to_background()
self.homes[1].open_notification_bar() self.homes[1].open_notification_bar()
pns = [self.chats[0].pn_invited_to_group_chat(self.usernames[0], self.chat_name), pns = [self.chats[0].pn_invited_to_group_chat(self.usernames[0], self.chat_name),

View File

@ -84,8 +84,9 @@ class TestOnboardingOneDeviceMerged(MultipleSharedDeviceTestCase):
wallet.click_system_back_button() wallet.click_system_back_button()
self.home.just_fyi("Check that can paste wallet address in chat message input") self.home.just_fyi("Check that can paste wallet address in chat message input")
wallet.home_button.double_click() wallet.home_button.click()
self.home.get_chat('#%s' % self.public_chat_name).click() if not self.chat.chat_message_input.is_element_displayed():
self.home.get_chat('#%s' % self.public_chat_name).click()
self.chat.chat_message_input.click() self.chat.chat_message_input.click()
self.chat.paste_text() self.chat.paste_text()
if self.chat.chat_message_input.text != address: if self.chat.chat_message_input.text != address:

View File

@ -113,6 +113,7 @@ class TestPairingSyncMultipleDevicesMerged(MultipleSharedDeviceTestCase):
cls.profile_1.close_button.click() cls.profile_1.close_button.click()
cls.profile_1.home_button.click() cls.profile_1.home_button.click()
cls.profile_1.get_recovery_phrase() cls.profile_1.get_recovery_phrase()
cls.device_2.put_app_to_background_and_back()
cls.home_1.just_fyi('Add contact, 1-1 chat (main device): 3-random, contact with ENS, start 1-1') cls.home_1.just_fyi('Add contact, 1-1 chat (main device): 3-random, contact with ENS, start 1-1')
cls.chat_1 = cls.home_1.add_contact(cls.contact_before_sync['public_key']) cls.chat_1 = cls.home_1.add_contact(cls.contact_before_sync['public_key'])

View File

@ -38,9 +38,10 @@ class TestPublicChatMultipleDeviceMerged(MultipleSharedDeviceTestCase):
self.chat_2.dapp_tab_button.click() self.chat_2.dapp_tab_button.click()
sent_time_variants = self.chat_1.convert_device_time_to_chat_timestamp() sent_time_variants = self.chat_1.convert_device_time_to_chat_timestamp()
timestamp = self.chat_1.chat_element_by_text(message).timestamp_on_tap timestamp = self.chat_1.chat_element_by_text(message).timestamp_on_tap
if timestamp not in sent_time_variants: if sent_time_variants and timestamp:
self.errors.append("Timestamp is not shown, expected: '%s', in fact: '%s'" % if timestamp not in sent_time_variants:
(sent_time_variants.join(','), timestamp)) self.errors.append("Timestamp is not shown, expected: '%s', in fact: '%s'" %
(sent_time_variants.join(','), timestamp))
self.chat_2.home_button.click(desired_view='chat') self.chat_2.home_button.click(desired_view='chat')
for chat in self.chat_1, self.chat_2: for chat in self.chat_1, self.chat_2:
chat.verify_message_is_under_today_text(message, self.errors) chat.verify_message_is_under_today_text(message, self.errors)
@ -50,6 +51,8 @@ class TestPublicChatMultipleDeviceMerged(MultipleSharedDeviceTestCase):
@marks.testrail_id(700734) @marks.testrail_id(700734)
def test_public_chat_message_edit(self): def test_public_chat_message_edit(self):
if not self.chat_2.chat_message_input.is_element_displayed():
self.chat_2.home_button.click(desired_view='chat')
message_before_edit, message_after_edit = self.text_message, "Message AFTER edit 2" message_before_edit, message_after_edit = self.text_message, "Message AFTER edit 2"
self.chat_1.edit_message_in_chat(message_before_edit, message_after_edit) self.chat_1.edit_message_in_chat(message_before_edit, message_after_edit)
for chat in (self.chat_1, self.chat_2): for chat in (self.chat_1, self.chat_2):

View File

@ -252,10 +252,9 @@ class TestWalletManagementDeviceMerged(MultipleSharedDeviceTestCase):
self.errors.verify_no_errors() self.errors.verify_no_errors()
@marks.testrail_id(700762) @marks.testrail_id(700762)
@marks.skip def test_wallet_add_account_seed_phrase_collectibles_rinkeby_set_as_profile_image(self):
# TODO: skipped due to #13016
def test_wallet_add_account_seed_phrase_collectibles_mainnet_rinkeby(self):
user = wallet_users['E'] user = wallet_users['E']
self.wallet.driver.set_network_connection(6)
account_seed_collectibles = self.account_seed_collectibles account_seed_collectibles = self.account_seed_collectibles
self.wallet.get_back_to_home_view() self.wallet.get_back_to_home_view()
if not self.wallet.add_account_button.is_element_displayed(3): if not self.wallet.add_account_button.is_element_displayed(3):
@ -290,57 +289,11 @@ class TestWalletManagementDeviceMerged(MultipleSharedDeviceTestCase):
if not self.wallet.element_by_translation_id("no-collectibles").is_element_displayed(): if not self.wallet.element_by_translation_id("no-collectibles").is_element_displayed():
self.errors.append("Collectibles are shown on Ropsten network!") self.errors.append("Collectibles are shown on Ropsten network!")
self.wallet.just_fyi('Check collectibles amount in wallet')
profile = self.home.profile_button.click()
profile.switch_network()
profile.wallet_button.click()
if not account_button.is_element_displayed():
self.wallet.accounts_status_account.swipe_left_on_element()
account_button.click()
self.wallet.collectibles_button.click()
self.wallet.element_by_translation_id("display-collectibles").scroll_and_click()
collectible_amount = self.wallet.get_collectibles_amount()
collectible_amount.wait_for_visibility_of_element(30)
if collectible_amount.text != '1':
self.errors.append('Wrong number is shown on CK assets: %s' % collectible_amount.text)
self.wallet.just_fyi('Check that you can open collectible to view')
collectible_amount.click()
if not self.wallet.nft_asset_button.is_element_displayed(60):
self.driver.fail("Kitty is not shown after opening it from collectibles!")
self.wallet.nft_asset_button.click()
self.wallet.set_collectible_as_profile_photo_button.scroll_and_click()
self.wallet.just_fyi('Check that you can set collectible as profile photo')
web_view = self.wallet.get_base_web_view()
self.wallet.view_collectible_on_opensea_button.click_until_presence_of_element(
web_view.browser_previous_page_button)
web_view.wait_for_d_aap_to_load()
if not web_view.element_by_text('Princess Gunklater').is_element_displayed(30):
self.errors.append("Collectible can't be opened when tapping 'View on OpenSea' via NFT page")
self.wallet.wallet_button.click()
self.wallet.just_fyi('Check that collectibles are not shown when sending assets from wallet')
send_transaction = self.wallet.send_transaction_button.click()
send_transaction.select_asset_button.click()
if send_transaction.asset_by_name("CryptoKitties").is_element_displayed():
self.errors.append('Collectibles can be sent from wallet')
self.wallet.close_send_transaction_view_button.double_click()
self.wallet.just_fyi('Check "Open in OpenSea" (that user is signed in)')
self.wallet.element_by_translation_id("check-on-opensea").click_until_presence_of_element(
web_view.browser_previous_page_button)
web_view.wait_for_d_aap_to_load(10)
self.wallet.element_by_text('e2ecryptokitty').wait_for_element(60)
self.wallet.just_fyi("Check that custom image from collectible is set as profile photo")
self.wallet.profile_button.double_click()
if not profile.profile_picture.is_element_image_similar_to_template('collectible_pic.png'):
self.errors.append("Collectible image is not set as profile image")
self.home.just_fyi('Check that collectibles amount is shown on Rinkeby') self.home.just_fyi('Check that collectibles amount is shown on Rinkeby')
profile = self.home.profile_button.click() profile = self.home.profile_button.click()
profile.switch_network('Rinkeby with upstream RPC') profile.switch_network('Rinkeby with upstream RPC')
# Additional login as a workaround for issue when collectibles are not shown on test network
self.wallet.reopen_app()
profile = self.home.profile_button.click() profile = self.home.profile_button.click()
profile.wallet_button.click() profile.wallet_button.click()
if not account_button.is_element_displayed(): if not account_button.is_element_displayed():
@ -350,13 +303,40 @@ class TestWalletManagementDeviceMerged(MultipleSharedDeviceTestCase):
self.wallet.transaction_history_button.click() self.wallet.transaction_history_button.click()
self.wallet.collectibles_button.click() self.wallet.collectibles_button.click()
self.wallet.swipe_up() self.wallet.swipe_up()
if self.wallet.element_by_translation_id("display-collectibles").is_element_displayed:
self.wallet.element_by_translation_id("display-collectibles").click()
for asset in user['collectibles']: for asset in user['collectibles']:
self.wallet.get_collectibles_amount(asset).scroll_to_element() self.wallet.get_collectibles_amount(asset).scroll_to_element()
if self.wallet.get_collectibles_amount(asset).text != user['collectibles'][asset]: if self.wallet.get_collectibles_amount(asset).text != user['collectibles'][asset]:
self.errors.append( self.errors.append(
'%s %s is not shown in Collectibles for Rinkeby!' % (user['collectibles'][asset], asset)) '%s %s is not shown in Collectibles for Rinkeby!' % (user['collectibles'][asset], asset))
self.wallet.just_fyi('Check that you can open collectible to view')
nft, nft_name = 'Coins & Steel Exclusive Item Skin V2', "Warlock's Arm"
self.wallet.get_collectibles_amount(nft).click()
if not self.wallet.nft_asset_button.is_element_displayed(60):
self.driver.fail("No card is not shown for %s after opening it from collectibles!" % nft)
self.wallet.nft_asset_button.click()
self.wallet.set_collectible_as_profile_photo_button.scroll_and_click()
self.wallet.just_fyi('Check that you can set collectible as profile photo')
web_view = self.wallet.get_base_web_view()
self.wallet.view_collectible_on_opensea_button.click_until_presence_of_element(
web_view.browser_previous_page_button)
web_view.wait_for_d_aap_to_load()
if not web_view.element_by_text(nft_name).is_element_displayed(30):
self.errors.append("Collectible can't be opened when tapping 'View on OpenSea' via NFT page")
self.wallet.wallet_button.click()
self.wallet.just_fyi('Check that collectibles are not shown when sending assets from wallet')
send_transaction = self.wallet.send_transaction_button.click()
send_transaction.select_asset_button.click()
if send_transaction.asset_by_name(nft).is_element_displayed():
self.errors.append('Collectibles can be sent from wallet')
self.wallet.close_send_transaction_view_button.double_click()
self.wallet.just_fyi("Check that custom image from collectible is set as profile photo")
self.wallet.profile_button.double_click()
if not profile.profile_picture.is_element_image_similar_to_template('collectible_pic.png'):
self.errors.append("Collectible image is not set as profile image")
self.errors.verify_no_errors() self.errors.verify_no_errors()
@marks.testrail_id(700766) @marks.testrail_id(700766)

View File

@ -188,7 +188,7 @@ class TestBrowserProfileOneDevice(MultipleSharedDeviceTestCase):
@marks.testrail_id(702159) @marks.testrail_id(702159)
def test_profile_invite_friends(self): def test_profile_invite_friends(self):
self.home.home_button.click() self.home.home_button.double_click()
self.home.just_fyi("Check it via 'Invite friends' on home view") self.home.just_fyi("Check it via 'Invite friends' on home view")
self.home.invite_friends_button.click() self.home.invite_friends_button.click()

View File

@ -564,7 +564,8 @@ class BaseView(object):
def share_via_messenger(self): def share_via_messenger(self):
self.driver.info("Sharing via messenger", device=False) self.driver.info("Sharing via messenger", device=False)
self.element_by_text('Messages').wait_and_click(40) self.element_by_text('Messages').wait_for_visibility_of_element(40)
self.element_by_text('Messages').click_until_presence_of_element(self.element_by_text('New message'))
self.element_by_text('New message').wait_and_click() self.element_by_text('New message').wait_and_click()
self.send_as_keyevent('+0100100101') self.send_as_keyevent('+0100100101')
self.confirm() self.confirm()

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.4 KiB

After

Width:  |  Height:  |  Size: 15 KiB