Tags » Appium

[iOS][Appium] Improve launching simulator performance

Folks, if you experience slow Simulator on CI (esp parallel), this often is due to clipboard sync. Becoming first responder often triggers the clipboard which triggers xpc which then… sometimes stalls.

62 more words
Test Automation

About Appium Architecture

Appium, a tool that has found widespread use in the domain of automation testing of mobile applications

You will be going through the following topics in this Appium architecture blog:- 1,023 more words

Test Automation

Appium - Locator Strategies for Mobile Framework

from datetime import datetime
from threading import Thread
from time import sleep
import os
from appium.webdriver import WebElement
from selenium.common.exceptions import NoSuchElementException, WebDriverException, StaleElementReferenceException
from appium.webdriver.common.touch_action import TouchAction
from PIL import Image
from io import BytesIO
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from tests.conftest import PATH


class Appium(object):


    def __init__(self, driver):
        self.driver = driver
        self.keep_session = False
        self._screenshot_dir = PATH('./target/screenshots')



    # get elements
    def get_element(self, locator, driver=None):
        """
        Returns element based on provided locator. 1,280 more words
Android

Finding the center point of an element in Selenium

Sometimes you have to click or tap on a specific position of an element or an element’s container. This article will describe the way to find the center point of an element using Selenium. 548 more words

Appium

Appium/XCTest(UI)の実行性能差

この記事は「Selenium/Appium Advent Calendar 2019」1日目の記事です。今回は、Appiumの開発をしている中で問題の報告が多かったXcode 11、iOS 13における実行性能の劣化問題を調べていた時に知ったことです。内容はこのissueの一部です。

Appiumの実行形態とその実行性能

Appiumは基本的には中間サーバとしてテストケースとテスト対象の操作を仲介します。

ある利用者がテストケースを特定の開発言語なりで記述、実行するとします。そのテストケース実行系の中でAppiumサーバに対してHTTPリクエストを送出し、リクエストを受け取ったAppiumサーバーは自身が管理する実行端末上で動作するサーバーに対して操作を要求したり、自身で端末を直接操作します。その操作結果をテストケース実行系に対して返信します。この一連の流れが1つのセットとなり、Appiumのもつ個々の操作が行われます。

つまり、1つのAppiumのコマンド実行時間には、HTTP通信の往復時間が必ずオーバーヘッドとして存在することになります。実行系全体が同一端末に存在する場合、その時間はごく僅かであることが多いです。一方、物理的に異なる環境でテストケースの実行元と実行環境が離れている場合、そのHTTPリクエストにかかる時間は秒単位で大きくなる可能性もあります。(AppiumProにある例

iOSの実行系とXcode 11の変化

現在、AppiumにおけるiOSのテストとしてXCUITest Driverと表現する実行系があります。Appiumは中間サーバとして機能すると先ほど述べました。つまり、Appium自体はその実行端末を操作する側の実装があれば、様々な端末を対象に同様のコマンド実行を実現できます。iOSではXCUITest Driverが、AndroidではUIAutomator2やEspresso Driver、WindowではWinAppDriverなど存在します。

この中で、今回の話題の対象はXCUITest Driverです。この仕組みとして、 114 more words

Test Automation

[Appium][Android] background process restrictions

We recently got an issue about stopping background process, uiautomator2-server. I knew several limitations/restrictions for such background process on newer Android versions, but we had not got general issues by such features so far. 105 more words

Test Automation

[iOS][XCTest][Appium]Slow type speed in iOS 13 under XCUIElementTypeWebView elements inside UIWebView

I found slow send keys happened on XCTest framework layer. https://github.com/appium/appium/issues/13455#issuecomment-544072750

It took 5 sec every key type. It happened only elements under XCUIElementTypeWebView type. This happened only on iOS 13. 75 more words

Test Automation