Тестирование ios приложений на windows

In app development and testing, cross platform testing has become a fixture in QA pipelines. This is done to ensure that the application works flawlessly across all operating systems and mobile devices.

However, QAs may not always have the requisite devices on hand for testing. For example, they may not have all the necessary iOS devices to test an iOS app. For instance, they might have to test iOS apps on a Windows PC because that is all they can currently access. 

This article will explore how to do exactly that. It will outline two methods – using the XCode simulator and using the real iOS devices on the BrowserStack cloud.

Method 1: Using the XCode Simulator

So let’s look at the process of setting up an iOS simulator. This will enable users to test any iOS app on a Windows device.
Apple does not offer a standalone simulator on the App Store. Instead, look for and download XCode which is freely available in the store. Xcode is an integrated development environment (IDE) developed by Apple. It enables the development of applications for all Apple operating systems, including iOS, macOS, tvOS, and WatchOS.

Follow the steps below to test iOS apps on the XCode simulator:

  • Download the Xcode simulator and start by creating a project.
  • You can build and run your app without writing code on a simulated or real device.
  • You can connect a real device to your Mac using a cable or connect it over Wi-Fi for iOS or tvOS apps after you pair it with Xcode. For macOS apps, choose a scheme, then click the Run button in the toolbar.

XCode Toolbar

A scheme is a collection of settings that specify the targets to build, the build configuration, and the executable environment for an app. There’s a scheme for each product (app, library, or framework) in your project. For projects that build an app, choose the scheme that matches your app’s name from the scheme menu in the toolbar. For watchOS apps, choose the WatchKit App target as the scheme.

Test iOS on Windows

Now, select a simulator. For iOS, and watchOS apps, you can choose a simulated device, under [Platform] Simulators, from the run destination menu next to the scheme menu in the toolbar.

Test iOS on Windows

  • The next step is to select a real device. Before distributing the application, launch it on a real device.
  • Connect the device to your Mac, and choose the device in the run destination menu.
  • If you choose a real device, add your Apple ID in Accounts and assign the project to the project editor’s Signing & Capabilities window pane.
  • For macOS apps, code signs the app by enabling specific capabilities.
  • Click the Run button to build and run the app on the selected simulated or real device.
  • If the build is successful, Xcode runs the app and opens a debugging session in the debug area.
  • Use the controls in the debug area to step through your code, inspect variables, and interact with the debugger.

Test iOS on Windows

If the build is unsuccessful, click the indicators in the activity area to read the error or warning messages in the Issue Navigator. Alternatively, choose View > Navigators > Show Issue Navigator to view the messages.

Now let’s understand how to test an iOS app on a Windows machine using Browserstack’s real device cloud.

Whether manual or automated app testing, QAs can utilize BrowserStack’s infrastructure to get 100% accurate results in real-world circumstances.

Test Apps on Real Mobile Devices

Method 2: Test iOS apps on Windows using BrowserStack

There are two ways to test iOS apps on Windows – Manual App Testing (testing an iOS app on your physical Windows PC) and Automated App Testing. We will be discussing the automation approach in detail.

  • Login to Browserstack platform and launch App Automate.
  • The sample code is already available; you need to modify and add your code.
  • Once configured, the next step is to set up the dependencies and desired capabilities to run the test.
  • To test, you must first upload an iOS app to BrowserStack servers. In this case, I will modify the sample iOS app according to my code.

Before writing the final test case, you need to configure your test case by giving details to the following:

  • Use desired capabilities
  • Set access credentials
  • Specify application under test
  • Select a device for testing (In this case, it is iOS and iPhone 12 Pro Max)
  • Create a remote webdriver
  • Write the test case

Now let’s code the program.

package ios;

import java.net.URL;

import java.util.List;

import java.net.MalformedURLException;;

import org.openqa.selenium.support.ui.WebDriverWait;

import org.openqa.selenium.remote.DesiredCapabilities;

import org.openqa.selenium.support.ui.ExpectedConditions;
 
import io.appium.java_client.MobileBy;

import io.appium.java_client.ios.IOSDriver;

import io.appium.java_client.ios.IOSElement;

public class BrowserStackSample {

  public static void main(String[] args) throws MalformedURLException, InterruptedException {

      DesiredCapabilities caps = new DesiredCapabilities();

   // Set your access credentials

      caps.setCapability("browserstack.user", "Username");

      caps.setCapability("browserstack.key", "Password");

   // Set URL of the application under test

      caps.setCapability("app", "bs://444bd0308813ae0dc236f8cd461c02d3afa7901d");

   // Specify device and os_version for testing

      caps.setCapability("device", "iPhone 12 Pro Max");

      caps.setCapability("os_version", "14");

   // Set other BrowserStack capabilities

      caps.setCapability("project", "First Project");

      caps.setCapability("build", "Java iOS");

      caps.setCapability("name", "first_test");

   // Initialise the remote Webdriver using BrowserStack remote URL

   // and desired capabilities defined above

        IOSDriver<IOSElement> driver = new IOSDriver<IOSElement>(

         new URL("http://hub-cloud.browserstack.com/wd/hub"), caps);

     // Test case for the BrowserStack sample iOS app.      

  IOSElement textButton = (IOSElement) new WebDriverWait(driver, 30).until(

            ExpectedConditions.elementToBeClickable(MobileBy.AccessibilityId("Text Input")));

         textInput.sendKeys("mail.gogle.com");

     IOSElement textInput = (IOSElement) new WebDriverWait(driver, 30).until(

            ExpectedConditions.elementToBeClickable(MobileBy.AccessibilityId("Text Input")));

        textInput.sendKeys("abc@gmail.com");

        Thread.sleep(5000);

     IOSElement textOutput = (IOSElement) new WebDriverWait(driver, 30).until(

             ExpectedConditions.elementToBeClickable(MobileBy.AccessibilityId("Text Output")));

        if(textOutput != null && textOutput.getText().equals("abc@gmail.com"))

            assert(true);

     else

            assert(false); 

     // Invoke driver.quit() after the test is done to indicate that the test is completed.

        driver.quit();

  }
 

}

You can also download the file and save it to upload it to App Live for real-time testing on iOS.

Now, execute the program using the below command on the command line.

mvn test -P <ios-first-test>

Also, you can go to App Live and upload this file to run the test on your preferred device.

Now that you have an iOS app ready, you can deploy it into the Windows platform to test the application and check its compatibility.

Now, let’s launch the Live Browserstack tool to test the application on Windows. Upload the developed application and set the Windows environment you want to test the application in. This example uses Windows 10 and Chrome 113.

Output goes like this:

Test iOS apps on Windows device

That’s how you can test the application.

  • However, to take full advantage of its features, tests must be run on real mobile devices (iOS, Android, Windows, etc.)
  • There is no way to accurately identify all possible bugs without testing apps in real user conditions, and that is where BrowserStack App Automate comes in.
  • BrowserStack’s real device cloud offers thousands of real mobile devices from major vendors and manufacturers for app testing (manual and automated).
  • Each device is loaded with real operating systems – multiple versions of popular operating systems.

QAs can access thousands of popular mobile device-OS combinations to test their app. They don’t have to worry about buying and updating devices and installing software. They must sign up for free, choose the required device-OS combination and start testing their app.

Разработка мобильных приложений является одной из наиболее актуальных областей современной информационной технологии. Но что делать тем, кто хочет создать iOS приложение, но не имеет доступа к компьютеру Mac? Существуют различные варианты, как преодолеть эту преграду, и один из них — тестирование iOS приложений на Windows.

Выбор инструментов для тестирования iOS приложений на Windows представляет серьезную задачу, так как на рынке существует множество различных вариантов. Однако, среди них можно выделить несколько лучших и наиболее популярных.

Одним из таких инструментов является Xamarin TestFlight. Он предоставляет возможность тестирования iOS приложений на Windows и позволяет разработчикам загружать приложения на устройства для тестирования в режиме реального времени. В то же время, его главным преимуществом является то, что Xamarin TestFlight бесплатен и имеет простой и интуитивно понятный интерфейс.

Еще одним популярным инструментом тестирования iOS приложений на Windows является Appium. Он является мощным и гибким фреймворком автоматического тестирования для мобильных приложений, позволяющим тестировать приложения на различных платформах, включая iOS. Appium обеспечивает повышенную стабильность и гарантирует надежность тестирования iOS приложений на Windows.

Тестирование iOS приложений на Windows — важная задача для разработчиков, не обладающих Mac. Благодаря специальным инструментам и методам, таким как Xamarin TestFlight и Appium, разработчики могут успешно тестировать свои iOS приложения на платформе Windows, обеспечивая высокую степень надежности и качества продукта.

Содержание

  1. Методы тестирования iOS приложений на Windows
  2. Выбор лучших инструментов для тестирования iOS приложений на Windows
  3. Разработка собственных инструментов для тестирования iOS приложений на Windows
  4. Использование эмуляторов для тестирования iOS приложений на Windows
  5. Подготовка рабочей среды для тестирования iOS приложений на Windows
  6. Тестирование реальных устройств на Windows: подключение и конфигурация
  7. Важность тестирования iOS приложений на Windows и его влияние на качество разрабатываемого продукта

Методы тестирования iOS приложений на Windows

Существует несколько методов тестирования iOS приложений на Windows, которые позволяют разработчикам проверить работоспособность своих приложений на операционной системе Windows и убедиться, что они корректно взаимодействуют с iOS.

1. Использование эмуляторов iOS. Самым популярным инструментом для эмуляции iOS приложений на Windows является Xamarin Testflight. Этот инструмент позволяет разработчикам создавать виртуальные устройства с iOS, на которых можно запускать и тестировать приложения, разработанные для этой платформы.

2. Использование облачных сервисов. Другой способ тестирования iOS приложений на Windows — использование облачных сервисов, таких как BrowserStack или Appetize.io. Эти сервисы позволяют разработчикам запускать и тестировать свои приложения на реальных устройствах iOS, доступных в облаке. Таким образом, разработчик может проверить, как приложение работает на разных устройствах и iOS-версиях без необходимости иметь физическое устройство.

3. Использование виртуальных машин. Еще одним методом тестирования iOS приложений на Windows является использование виртуальных машин с macOS. Для этого разработчику понадобится скачать образ операционной системы macOS, установить его на виртуальную машину и запустить приложение для тестирования. Этот метод требует некоторых дополнительных шагов, но позволяет получить наиболее точные результаты, так как разработчик будет работать на полноценной ОС iOS.

4. Использование тестовых хостов с iOS. Еще один метод тестирования iOS приложений на Windows — использование тестовых хостов с поддержкой iOS. Эти хосты предоставляют разработчикам доступ к устройствам iOS для тестирования своих приложений. Разработчик может удаленно подключиться к устройству и проверить его работу на разных видах iOS и различных моделях устройств.

В заключение, существует несколько методов тестирования iOS приложений на Windows, каждый из которых имеет свои преимущества и ограничения. Выбор метода зависит от индивидуальных потребностей разработчика и ресурсов, которые доступны для тестирования.

Выбор лучших инструментов для тестирования iOS приложений на Windows

Тестирование iOS приложений на Windows может быть сложной задачей, но существуют несколько эффективных инструментов, которые помогут вам выполнить это задание. Независимо от того, являетесь ли вы разработчиком, QA инженером или просто хотите протестировать свое собственное iOS приложение на устройстве, работающем под управлением Windows, вам понадобятся подходящие инструменты для тестирования iOS приложений на Windows.

Вот несколько из лучших инструментов, доступных для тестирования iOS приложений на Windows:

1. Appium: Appium является одним из самых популярных инструментов для тестирования iOS приложений на разных платформах. Он позволяет автоматизировать тестирование iOS приложений на различных устройствах и операционных системах, включая Windows. Appium поддерживает различные языки программирования, такие как Java, Python, Ruby и другие, что делает его удобным в использовании для разработчиков различных навыков.

2. Xamarin TestFlight: Xamarin TestFlight предоставляет возможность проводить бета-тестирование iOS приложений на Windows. Он позволяет загружать ваше iOS приложение и приглашать пользователей для его тестирования на их устройствах. Xamarin TestFlight также предоставляет возможность отслеживать ошибки и собирать обратную связь от тестировщиков.

3. AWS Device Farm: AWS Device Farm предоставляет облачную платформу для тестирования iOS приложений на разных устройствах, включая устройства под управлением Windows. Он позволяет загружать ваше iOS приложение на различные устройства и выполнять автоматизированные и ручные тесты. AWS Device Farm также предоставляет отчеты о результатах тестирования и предупреждает о возможных проблемах с вашим приложением.

Помимо вышеупомянутых инструментов, существуют и другие инструменты, такие как Katalon Studio, Perfecto Mobile и другие, которые также могут быть полезными при тестировании iOS приложений на Windows. Каждый из этих инструментов имеет свои преимущества и недостатки. Поэтому важно выбрать тот инструмент, который лучше всего подходит для вашей конкретной задачи.

Выводя наши описания в общие рамки, вы можете выбрать лучшие инструменты для тестирования iOS приложений на Windows, которые помогут вам достичь желаемого результата. Удачи в тестировании!

Разработка собственных инструментов для тестирования iOS приложений на Windows

Для разработки собственных инструментов для тестирования iOS приложений на Windows, необходимо использовать алгоритмы и технологии, позволяющие эмулировать работу операционной системы iOS и тестируемых устройств.

Один из подходов к разработке таких инструментов состоит в создании эмулятора iOS, который будет работать на операционной системе Windows. В качестве основы для эмулятора может быть использовано программное обеспечение, основанное на виртуализации, которое позволяет создать виртуальную машину с установленной операционной системой iOS. Этот подход требует определенных знаний и навыков в области виртуализации, а также доступа к необходимому программному обеспечению.

Другой подход к разработке собственных инструментов для тестирования iOS приложений на Windows — создание средств для автоматизации тестирования. Для этого можно использовать различные языки программирования, такие как Python или JavaScript, и фреймворки для автоматизированного тестирования, например, Appium или XCTest.

Используя эти инструменты и технологии, разработчики могут создавать собственные инструменты для тестирования iOS приложений на Windows, которые соответствуют их конкретным потребностям и позволяют проводить тестирование приложений более эффективно и удобно.

Важно помнить, что при разработке собственных инструментов необходимо учитывать требования и ограничения, установленные компанией Apple в отношении использования и эмуляции операционной системы iOS. Также следует учитывать риски и возможные проблемы, связанные с разработкой собственных инструментов, и принять соответствующие меры для их минимизации.

Использование эмуляторов для тестирования iOS приложений на Windows

Эмуляторы iOS позволяют создать и запустить виртуальную копию устройства с установленной iOS операционной системой, в которой вы можете запускать и тестировать iOS приложения. Это удобно, так как вы можете тестировать приложение на разных версиях iOS без необходимости иметь физическое устройство для каждой версии.

Существует несколько популярных эмуляторов для Windows, которые позволяют запускать iOS приложения:

  1. Xamarin TestFlight: это официальный эмулятор iOS, разработанный компанией Apple для разработчиков. Он позволяет тестировать и отлаживать iOS приложения на компьютере с Windows. Для использования TestFlight вам потребуется зарегистрироваться как разработчик Apple и получить разрешение на использование эмулятора.
  2. Smartface: это ещё один популярный эмулятор iOS, который запускается на Windows. Этот инструмент предоставляет возможность создавать, тестировать и отлаживать iOS приложения. Smartface имеет простой пользовательский интерфейс и множество функций, которые делают его удобным инструментом для разработки и тестирования iOS приложений.
  3. iPadian: этот эмулятор также позволяет запускать iOS приложения на Windows. Он имеет простой и интуитивно понятный интерфейс, который соответствует дизайну iOS. iPadian также поддерживает множество популярных iOS приложений, которые могут быть установлены и запущены на виртуальном устройстве.

Каждый из этих эмуляторов имеет свои особенности и функции, поэтому выбор конкретного инструмента зависит от ваших потребностей и предпочтений. Важно отметить, что использование эмуляторов не всегда полностью заменяет тестирование на реальном устройстве, поэтому рекомендуется проводить дополнительные тесты на реальных устройствах перед выпуском приложения.

Подготовка рабочей среды для тестирования iOS приложений на Windows

Для тестирования iOS приложений на компьютере с ОС Windows необходимо подготовить рабочую среду, которая позволит выполнить данную задачу. Хотя официальная поддержка среды разработки iOS на Windows отсутствует, существует несколько способов, позволяющих достичь этой цели.

Один из распространенных способов — использование эмуляторов и симуляторов, которые позволяют запускать и тестировать iOS приложения на компьютере с ОС Windows. Однако, следует отметить, что такие эмуляторы и симуляторы не полностью эмулируют поведение реального устройства, и некоторые функции могут работать не так, как на физическом устройстве.

Еще один способ — использование удаленного доступа к Mac-компьютеру. Для этого необходимо настроить удаленный доступ на Mac-компьютере и использовать соответствующее программное обеспечение на компьютере с ОС Windows для подключения и управления Mac-компьютером удаленно. Такой подход позволяет полноценно тестировать и отлаживать iOS приложения, так как они запускаются на реальном устройстве.

Также существуют различные онлайн-сервисы, предоставляющие возможность тестирования iOS приложений на удаленных устройствах. Эти сервисы предоставляют доступ к физическим устройствам, на которых можно запускать и тестировать iOS приложения. Такие сервисы полезны в случаях, когда необходимо протестировать приложение на различных версиях операционной системы или на различных устройствах.

В итоге, подготовка рабочей среды для тестирования iOS приложений на Windows зависит от выбранного способа и инструментов. Необходимо учесть особенности каждого способа и выбрать подходящий для конкретной задачи. Следует помнить, что полноценное тестирование iOS приложений на компьютере с ОС Windows может быть ограничено и потребовать дополнительных усилий, однако, правильно настроенная рабочая среда позволит достичь необходимых результатов.

Тестирование реальных устройств на Windows: подключение и конфигурация

Для тестирования iOS приложений на Windows необходимо подключить реальные устройства к компьютеру и настроить их для работы с выбранными инструментами для тестирования. В этом разделе мы рассмотрим, как правильно подключить устройства и осуществить их конфигурацию.

1. Подключите устройство к компьютеру с помощью USB-кабеля. Убедитесь, что устройство разблокировано и вы доверяете компьютеру.

2. Запустите iTunes или iCloud на компьютере и убедитесь, что устройство успешно подключено и отображается в списке устройств.

3. Убедитесь, что на компьютере установлены необходимые драйверы для работы с устройством. В большинстве случаев Windows автоматически устанавливает необходимые драйверы при подключении устройства, однако иногда может потребоваться их установка вручную.

4. Далее необходимо предоставить доступ к устройству для тестирования. Для этого на устройстве перейдите в раздел «Настройки» > «Основные» > «Управление устройством» или «Профиль и управление устройством». В этом разделе вам необходимо найти и доверить разработчика вашего приложения. Для установки доверия последуйте инструкциям на экране.

5. После того, как устройство было успешно подключено и доверено разработчику, можно начинать тестирование приложения. Для этого вам понадобится использовать выбранный инструмент для тестирования iOS приложений на Windows, например, Appium или Xamarin Test Cloud.

Важно помнить, что для тестирования реальных устройств на Windows необходимо иметь правильно настроенную среду разработки и выбранный инструмент для тестирования, который поддерживает работу с устройствами на Windows. Правильная конфигурация и подключение устройств позволят вам проводить эффективное и надежное тестирование вашего iOS приложения.

Важность тестирования iOS приложений на Windows и его влияние на качество разрабатываемого продукта

Первое и самое главное преимущество заключается в том, что тестирование на Windows позволяет максимально приблизиться к реальным условиям использования приложений пользователем. Это особенно важно в случае iOS, поскольку пользователи Apple очень требовательны к качеству приложений и ожидают, что они будут работать без сбоев и ошибок.

Кроме того, тестирование iOS приложений на Windows помогает выявить и исправить потенциальные проблемы, которые могут возникнуть при использовании приложения на различных устройствах. Windows-среда позволяет протестировать приложение на разных версиях iOS и проверить его совместимость с различными моделями iPhone и iPad.

Тестирование на Windows также позволяет эффективно выявлять и исправлять ошибки и недоработки в пользовательском интерфейсе, что позволяет повысить удобство использования приложения для конечного пользователя.

Наконец, тестирование iOS приложений на Windows способствует более быстрой разработке и доставке приложения на рынок. Разработчики могут использовать инструменты и среды разработки для Windows, что значительно упрощает и ускоряет процесс тестирования и отладки приложения.

В целом, тестирование iOS приложений на Windows имеет большое значение и положительное влияние на качество и функциональность разрабатываемого продукта. Этот этап разработки позволяет выявить и устранить проблемы, повысить удобство использования, проверить совместимость и обеспечить стабильность приложения на разных устройствах. Таким образом, тестирование на Windows является неотъемлемой частью разработки iOS приложений.

The Challenge

One of the major obstacles with testing iOS apps is the need for iOS devices or Xcode to run the app on a Simulator.
Apple doesn’t support running Xcode (an Objective-C and Swift IDE) on any other operating system or hardware rather than macOS on Macs.
When it comes to Appium tests, Xcode is also required to build, sign, provision and run a special project that operates as a driver, executing the automation.

The Solution

TestProject framework enhances Appium driver and now enables you to run Appium tests on Windows operating system without the need for macOS.
The first thing you have to do is to get a TestProject account, no worries – it’s free!

Downloads

Then you need the TestProject Agent to be installed and running on your computer.

Configuration

TestProject makes the driver signing and provisioning procedure easy.
First, download and install TestProject agent, you have to configure your TestProject account with your iOS certificate and provisioning profile.
You can do this in the iOS section under account settings in the TestProject application website.

Team ID

The first thing you need to do is to provide your Apple’s Developer Program Team ID.
Team ID is a 10-character string that’s generated by Apple to uniquely identify your team.
You can find your Team ID here: https://developer.apple.com/account/#/membership

Team ID

Certificate Signing Request / Certificate

In order to allow us signing the driver with your certificate, you need to create a Certificate Signing Request (CSR).
On the iOS setting page, generate a new one and download a certificate signing request file.

Open https://developer.apple.com/account/ios/certificate/create to upload the CSR and download the generated certificate.

Upload the certificate to the appropriate section in the iOS setting page on the TestProject application website.

Mobile Provisioning Profile

The provisioning profile is used by Apple to list the eligible devices where the driver can be installed.

Navigate to https://developer.apple.com/account/ios/profile/limited/create and create an iOS App Development provisioning profile.
Continue the wizard and select the XC Wildcard when prompted for App ID.
Continue the wizard and select the certificate you have created earlier.
Select all devices you would like to allow being used for automated testing.
Give this profile a meaningful name.
Download the newly generated profile to your computer

Upload the profile to the appropriate section in the iOS setting page on the TestProject application website.

Check out this step-by-step tutorial for more details on configuring your iOS certificate and provisioning profile: https://blog.testproject.io/2019/01/29/setup-ios-test-automation-windows-without-mac/

Usage

Now you have 2 options:

  1. Developing Appium tests for iOS by using TestProject SDK.
  2. Recording your iOS test from Windows using TestProject recording studio.

**In both options the tests will be running locally on your device by TestProject agent.

Download TestProject SDK.
Below is a short example of how to develop a simple iOS Test executed on TestProject Demo App:

package io.testproject.examples.sdk.tests;

import io.testproject.examples.sdk.pages.LoginPage;
import io.testproject.examples.sdk.pages.ProfilePage;
import io.testproject.java.sdk.v2.drivers.IOSDriver;
import io.testproject.java.sdk.v2.enums.ExecutionResult;
import io.testproject.java.sdk.v2.exceptions.FailureException;
import io.testproject.java.sdk.v2.tests.IOSTest;
import io.testproject.java.sdk.v2.tests.helpers.IOSTestHelper;

public class BasicTest implements IOSTest {

    public String name = "John Smith";
    public String password = "12345";
    public String country = "USA";
    public String address = "Street number and name";
    public String email = "[email protected]";
    public String phone = "+1 555 555 55";

    public ExecutionResult execute(IOSTestHelper helper) throws FailureException {
        IOSDriver driver = helper.getDriver();

        driver.resetApp();

        LoginPage loginPage = new LoginPage(driver);
        loginPage.login(name, password);

        ProfilePage profilePage = new ProfilePage(driver);
        profilePage.updateProfile(country, address, email, phone);

        return profilePage.isSaved() ? ExecutionResult.PASSED : ExecutionResult.FAILED;
    }
}

This Test is implemented using the Page Object Model (POM) pattern that addresses several issues:

  • Mix of test logic and UI actions are resolved by separation of duties to OOP classes (Login and Profile pages).
  • Coupled design is treated to decoupling objects library from decision taking in tests.
  • Implementing POM makes it easy to maintain the tests having one authority to manage page elements and UI actions.
  • There is no more code redundancy such as duplicate findElement calls and UI manipulations.
  • POM removes an unnecessary complexity by implementing self-explanatory code, thanks to FindBy annotations.

Below is the source code of two pages used in the test implementing POM.

Login Page:

package io.testproject.examples.sdk.pages;

import io.appium.java_client.ios.IOSElement;
import io.appium.java_client.pagefactory.AppiumFieldDecorator;
import io.appium.java_client.pagefactory.iOSFindBy;
import io.testproject.java.sdk.v2.drivers.IOSDriver;
import io.testproject.java.sdk.v2.support.PageFactory;

public class LoginPage {

    private IOSDriver driver;
    @iOSFindBy(id = "name")
    private IOSElement nameElement;
    @iOSFindBy(id = "password")
    private IOSElement passwordElement;
    @iOSFindBy(id = "login")
    private IOSElement loginElement;

    public LoginPage() {
    }

    public LoginPage(IOSDriver driver) {
        this.driver = driver;
        PageFactory.initElements(new AppiumFieldDecorator(driver), this);
    }

    public boolean isDisplayed() {
        return loginElement.isDisplayed();
    }

    public void typeName(String name) {
        nameElement.sendKeys(name);
    }

    public void typePassword(String password) {
        passwordElement.sendKeys(password);
    }

    public void clickLogin() {
        loginElement.click();
    }

    public void login(String name, String password) {
        typeName(name);
        typePassword(password);
        clickLogin();
    }
}

Profile Page:

package io.testproject.examples.sdk.pages;

import io.appium.java_client.ios.IOSElement;
import io.appium.java_client.pagefactory.AppiumFieldDecorator;
import io.appium.java_client.pagefactory.iOSFindBy;
import io.testproject.java.sdk.v2.drivers.IOSDriver;
import io.testproject.java.sdk.v2.support.PageFactory;
import org.openqa.selenium.By;

import java.util.concurrent.TimeUnit;

public class ProfilePage {

    private IOSDriver driver;
    @iOSFindBy(id = "greetings")
    private IOSElement greetingsElement;
    @iOSFindBy(id = "logout")
    private IOSElement logoutElement;
    @iOSFindBy(id = "country")
    private IOSElement countryElement;
    @iOSFindBy(id = "address")
    private IOSElement addressElement;
    @iOSFindBy(id = "email")
    private IOSElement emailElement;
    @iOSFindBy(id = "phone")
    private IOSElement phoneElement;
    @iOSFindBy(id = "save")
    private IOSElement saveElement;
    @iOSFindBy(id = "saved")
    private IOSElement savedElement;

    public ProfilePage() {
    }

    public ProfilePage(IOSDriver driver) {
        this.driver = driver;
        PageFactory.initElements(new AppiumFieldDecorator(driver, 10, TimeUnit.SECONDS), this);
    }

    public boolean isDisplayed() {
        return greetingsElement.isDisplayed();
    }

    public void typeCountry(String country) {
        countryElement.sendKeys(country);

    }

    public void typeAddress(String address) {
        addressElement.sendKeys(address);
    }

    public void typeEmail(String email) {
        emailElement.sendKeys(email);
    }

    public void typePhone(String phone) {
        phoneElement.sendKeys(phone);
    }

    public void hideKeyboard() {
        driver.hideKeyboard();
    }

    public void updateProfile(String country, String address, String email, String phone) {
        typeCountry(country);
        typeAddress(address);
        typeEmail(email);
        typePhone(phone);
        hideKeyboard();
        save();
    }

    public void save() {
        saveElement.click();
    }

    public boolean isSaved() {
        return savedElement.isDisplayed();
    }

    public By getPhoneElement() {
        return By.id("phone");
    }
}
  • You can find a full source code including Maven/Gradle files and more examples on TestProject GitHub.
  • Running the tests locally from the IDE requires the device UDID:
    1. Head over to the TestProject platform agents page: https://app.testproject.io/#/agents

    2. At the agent’s page, click on your agent.

          3. Click on Devices

       Here you can see Previously/Current connected devices and Simulators.

       You can now copy the UDID to the clipboard.

Compile and upload the JAR to TestProject account.

TestProject_Create Test

Execute the Test.

Recording on Windows

You can record your iOS test in a live app from Windows using TestProject recording studio:

TestProject recording studio

During recording you can conveniently use the TestProject Elements Inspector and Elements Locator to verify your location strategies:

testing iOS apps

Go ahead and try it out and share your experience in the comment section below  😉

best practices — 2 min Read

Testing iOS Apps on Windows Computers: A Mobile Developer's Guide

As a cross-platform mobile app developer, I know firsthand how cumbersome it can be to test iOS apps using a Windows or Linux computer. The need to find a Mac for testing and building can be a major roadblock in the development process.

In this article, I’ll share how you can use Appetize to run and test mobile apps in your browser, regardless of your operating system. I’ll also discuss how you can integrate Appetize with your CI/CD pipeline to streamline your workflow. Let’s dive in!

What is Appetize?

Appetize is a cloud-based service that allows developers to run and test mobile apps directly in their browsers. This is particularly useful for those of us who develop iOS apps but don’t have a Mac on hand. Appetize supports both iOS and Android devices, making it a convenient tool for testing cross-platform apps.

To begin using Appetize, just Upload your mobile app with a free account. After logging in, you’ll be directed to a dashboard where you can upload your app. To upload an iOS app, you’ll need a .app file, which you can get by building your app in React Native, Flutter, Xamarin, Ionic, Nativescript or Kotlin Multiplatform.

Once you have located your .app file, Appetize requires it to be in a compressed zip or tar.gz file. Once you have compressed your file, navigate to their upload page and select your compressed file. Appetize will then generate a unique link for your app, allowing you to run it in your browser and share it with others.

Testing iOS Apps on a Windows or Linux device

Appetize provides a virtual iOS device interface, enabling you to interact with your app as if it were running on an actual device. You can test various features, check for bugs, and ensure your app is functioning properly.

Preview Native Mobile Apps with your CI/CD Pipeline

One of the advantages of Appetize is its compatibility with CI/CD pipelines. By integrating Appetize with your pipeline, you can automate your app testing process and ensure thorough testing before deployment. Whether you are using Bitrise, Gitlab or Github Actions, Appetize works with any of your preferred solutions.

To integrate Appetize with your CI/CD pipeline, you’ll need to make use of their API or use one of the pre-existing 3rd party integrations. The API allows you to upload new builds of your app, update existing builds, and manage your app instances. Detailed documentation on using the API can be found on the Appetize API Overview.

Minimize bugs in your mobile user experience

You can share the unique link to your app with team members, enabling them to test the app and provide feedback. This helps ensure everyone is on the same page and that your app is ready for deployment.

Incorporating automated UI testing into your development process is crucial for ensuring a seamless user experience and eliminating potential bugs. Appetize now offers AppRecorder, which allows you to create automated mobile UI tests with a simple click and point interface and limited coding.

With AppRecorder you can catch issues early in the development process, reducing the time and effort required for manual testing and making sure your users don’t face any issues.

Preview, Inspect, Test & Automate

Appetize is a valuable tool for cross-platform mobile app developers, especially those who work with iOS apps on Windows or Linux machines. With its browser-based testing, CI/CD pipeline integration, and collaboration features, Appetize simplifies the testing process and streamlines your workflow. No longer will you need to search for a Mac to test your iOS apps – with Appetize, you have everything you need to test your apps right in your browser. Happy testing!

Тестирование для мобильных устройств: эмуляторы, симуляторы и удалённая отладка

Время на прочтение
5 мин

Количество просмотров 143K

В давние времена разработки мобильных сайтов и приложений отладка была сложной задачей. Да, можно было заполучить устройство и быстренько проверить работу – но что было делать, если ты обнаруживал баг?

При отсутствии инструментов отладки приходилось полагаться на разные хаки. В целом они сводились к попыткам воспроизвести баг в десктопном браузере и затем отловить его при помощи Chrome Developer Tools или где-то ещё. К примеру, можно было уменьшить размер окна браузера или поменять user agent.

Грубо говоря, эти хаки не работали. Если ты правишь баг на десктопе, ты не уверен, что он исправлен на мобильном устройстве (МУ). Поэтому приходилось постоянно метаться между устройством и десктопом.

Теперь же у нас есть набор инструментов, позволяющих получать осмысленные данные прямо с МУ. Кроме того, можно использовать десктопные инструменты для отладки прямо на МУ.

В этой статье мы разберём несколько эмуляторов и симуляторов, которые позволяют быстро и легко тестировать сайты и приложения. Затем посмотрим на инструменты для удалённой отладки, позволяющие подключаться к МУ.

Эмуляторы и симуляторы

Тестирование на физических устройствах – штука оправданная. Но это не значит, что не нужно тестировать на эмуляторах и симуляторах. Они позволяют расширить тестируемый набор устройств и проверять изменения на лету.

Симулятор iOS

Для тестирования яблочных устройств, айфонов и айпадов, есть несколько вариантов. Первый среди них – официальный Apple iOS Simulator, входящий в поставку Xcode. Позволяет тестировать разные комбинации софта и железа – но только на Mac.

Установите и запустите Xcode. Потом ПКМ и выберите «Show Package Contents». Затем пройдите “Contents” → “Applications” → “iPhone Simulator.”

Хотя найти его нелегко, использовать симулятор просто. Откройте Safari в симуляторе и тестируйте свой сайт. Можно переключаться между разными устройствами iPhone и iPad, менять версию iOS, поворачивать устройство и т.п.

Если у вас нету Mac’а, придётся заморачиваться. Можно взять iPadian, симулятор iPad для Windows. Кроме него существует ещё несколько вариантов, в частности онлайновые. Но, честно говоря, они не особенно хороши.

Эмулятор Android

У андроида эмулятор кросс-платформенный. К сожалению, он сложен в настройке.

Для начала, скачайте подборку, включающую Android Development Tools (ADT) для Eclipse и Android software development kit (SDK). Затем следуйте инструкциям по установке, не забудьте кроме настроек по-умолчанию установить и “Intel x86 Emulator Accelerator (HAXM installer)”. Также вам понадобится установить HAXM (IntelHaxm.dmg на Маке и IntelHaxm.exe на PC).

Затем создайте Android virtual device (AVD) для тестируемого устройства. В менеджере AVD есть список готовых устройств в “Device Definitions”. Для начала выберите одно из них и нажмите “Create AVD”

Выберите любой CPU, и поставьте “No skin“ и “Use host GPU”. Теперь можно запускать виртуальное устройство и использовать браузер Android для тестирования.

Не помешает подучить клавиатурные команды для более удобного взаимодействия с эмулятором.

Как альтернативу, можно использовать Manymo – эмулятор, встраиваемый в браузер. Его даже можно встроить в страницу.

Другие симуляторы и эмуляторы:

BlackBerry
Windows Phone Emulator для Windows 8
Opera Mini Emulator

Удалённое тестирование

Эмуляторы и симуляторы полезны, но не на 100% достоверны. Всегда нужно пытаться проводить тестирование на максимальном количестве реальных устройств.

Но это не означает, что вам нужно их все покупать. Можно воспользоваться услугами сервисов удалённого тестирования, которые предлагают веб-интерфейс для тестирования на удалённых устройствах. Можно будет взаимодействовать с телефоном и видеть его экран.

Для тестирования устройств от Samsung, таких, как Galaxy S5, можно бесплатно воспользоваться услугами Samsung Remote Test Lab – они предоставляют для тестирования большой выбор своих устройств.

Также можно пользоваться ресурсами Keynote Mobile Testing. Они недёшевы, но количество доступных устройств поражает, и некоторыми можно пользоваться бесплатно.

Если вам нужны физические устройства, можно обратиться в Open Device Lab, где есть список ближайших доступных лабораторий тестирования.

Удалённая отладка

Удалённая отладка на МУ выявляет множество трудностей. К примеру, как получить осмысленные данные от небольшого, сравнительно дохленького устройства?

Инструменты удалённой отладки предоставляют интерфейс для подключения к МУ с десктопа. Таким образом, мы работаем с данными с реальных устройств на мощном десктопном компьютере.

iOS

С выходом 6-й версии Apple представила инструмент для отладки МУ через Safari Web Inspector.

Для начала надо разрешить удалённую отладку на устройстве. “Settings” → “Safari” → “Advanced” и разрешить “Web Inspector”

Затем подключите устройство к компьютеру через USB. Потом откройте Safari (версии не ниже 6) и в “Preferences” → “Advanced” выберите “Show Develop menu in menu bar”.

В этом меню вы увидите ваше устройство и несколько страниц с настройками.

На каждой из страниц представлено много инструментов, DOM Inspector и подобные.

Кроме DOM Inspector, iOS’ вы можете использовать:

— временной график для просмотра сетевых запросов, раскладки и рендеринга страниц, работы JavaScript
— отладчик с возможностью установки точек останова
— консоль JavaScript

Подробно всё это описано в “Safari Web Inspector Guide”.

Как и в случае с симулятором iOS, удалённой отладкой можно заниматься только с Мака.

Android

В случае с Андроидом инструменты удалённой отладки позволяют работать с десктопа при помощи Chrome’s Developer Tools. Кроме того, инструменты эти опять-таки кросс-платформенные.

Сначала, на телефоне пройдите в “Settings” → “About Phone” (для Android 4.4+), или “Settings” → “About Tablet”. Затем нужно нажать на “Build Number” семь раз. Кроме шуток. После этого вы увидите сообщение насчёт разработчика.

Затем обратно в основных настройках “Developer Options” нужен пункт “USB debugging”.

В адресной строке браузера Chrome наберите about:inspect. Разрешите “Discover USB devices”, и вы увидите в меню своё МУ.

Также вы должны увидеть открытые закладки в мобильном браузере. Выберите нужную, и вам будут доступны:

DOM Inspector,
Сетевая панель с внешними ресурсами
Панель исходного кода, для отладки JavaScript
Консоль JavaScript

Подробности можно найти в тьюториале “Introduction to Chrome Developer Tools, Part One.”

Также можно заниматься удалённой отладкой в эмуляторе Андроида.

Weinre

Если вам приходится отлаживать устройство с iOS на Windows, или Linux, или отлаживать устройство, работающее под Windows Phone или BlackBerry – попробуйте Weinre (web inspector remote). Работает везде.

Настройка weinre сложновата, т.к. его надо устанавливать и на сервере, и на странице. Сначала вам понадобится установить Node, а затем установить модуль Weinre:

npm install –g weinre

Затем запустите сервер отладки (подставляем ip-адрес компьютера):

weinre --boundHost 10.0.0.1

Затем проходим на localhost:8080 и копируем содержимое тега . Его нужно будет вставить на отлаживаемую страницу.

Наконец, кликните на ссылке вверху user interface for debugging clients (http://localhost:8080/client/#anonymous). Теперь, когда вы откроете страницу на устройстве, её можно будет увидеть в списке целей (targets).

После этого можно использовать инструменты для отладки.

Weinre позволяет тестировать любое устройство, но он не настолько продвинутый, как родные решения для iOS и Android. К примеру, нельзя пошагово отлаживать JavaScript.

Ещё один вариант удалённого тестирования называется Ghostlab.

Заключение

В этой статье мы научились устраивать тестовую лабораторию при помощи комбинации из реальных устройств, эмуляторов, симуляторов и инструментов удалённого тестирования. С их помощью вы сможете тестировать сайты и приложения на различных МУ.

Также мы познакомились с различными инструментами удалённой отладки, которые открывают доступ к отладочным данным МУ, без которых отладка сильно затруднена.

Что ещё почитать перед сном:

“Mobile Emulators and Simulators: The Ultimate Guide,” Maximiliano Firtman
“Introduction to Chrome Developer Tools, Part One,” Seth Ladd, HTML5 Rocks
“About Safari Web Inspector,” Safari Developer Library, Apple
“Enable Remote Debugging With Safari Web Inspector in iOS 6” Dave Ackerman, Modus Create
“Remote Debugging on Android With Chrome,” Chrome Developer Tools
“Weinre as Remote Debugger,” Mozilla Developer Network

  • Тестирование проигрыватель windows media player
  • Тест памяти оперативной из под windows 10
  • Тест для озу windows 10
  • Тестирование озу в windows 10
  • Тест памяти windows 10 x64