Лабораторная работа №4 по дисциплине «Тестирование по»


Скачать 221.25 Kb.
Название Лабораторная работа №4 по дисциплине «Тестирование по»
Тип Лабораторная работа
rykovodstvo.ru > Руководство эксплуатация > Лабораторная работа
Университет ИТМО

Лабораторная работа №4 по дисциплине

«Тестирование ПО»

Выполнил:

студент 3-го курса

группы 3125

Припадчев Артём

Санкт-Петербург

2015

Постановка задачи

  1. Изучить методику функционального тестирования Android приложения, используя Appium.

  2. Необходимо взять приложение согласно варианту, установить симулятор Genymotion, настроить Appium (http://appium.io) и написать 5 тестовых сценариев. Сценарий установки виджета на экран обязателен.

Вариант 5: Twitter


ID

1

Название

Android / Вход в несуществующий аккаунт

Автор

Артём Припадчев

Краткое

описание (цель)

Вход в несуществующий аккаунт

Начальные условия

  1. Twitter открыт

Пошаговые инструкции

  1. Нажать на кнопку “Log in”

  2. В поле логин ввести lol@mail.ru

  3. В поле пароль ввести 123456

  4. Нажать на кнопку “Log in”

Критерий прохождения

Показывается сообщения, что такого аккаунта не существует. Вход не выполнен.

Примечания







ID

2

Название

Android / Large widget

Автор

Артём Припадчев

Краткое

описание (цель)

Установка большого виджета

Начальные условия

  1. Открыт рабочий стол Android

Пошаговые инструкции

  1. Перейти в меню приложений

  2. Перейти на вкладку Widgets

  3. Найти в списке Twttter (large)

  4. Долгим тапом зажать виджет

  5. На рабочем столе отпустить виджет

Критерий прохождения

Виджет появился на рабочем столе

Примечания







ID

3

Название

Android / Вход в существующий аккаунт

Автор

Артём Припадчев

Краткое

описание (цель)

Вход в существующий аккаунт

Начальные условия

  1. Twitter открыт

Пошаговые инструкции

  1. Нажать на кнопку “Log in”

  2. Ввести логин и пароль существующей учетной записи

  3. Нажать на кнопку “Log in”

Критерий прохождения

Осуществляется вход в приложение.

Примечания






ID

4

Название

Android / Поиск / Получение результатов

Автор

Артём Припадчев

Краткое

описание (цель)

Проверка работы поиска в приложении

Начальные условия

  1. Twitter открыт

  2. Осуществлен вход в аккаунт

Пошаговые инструкции

  1. Нажать на иконку поиска

  2. Ввести любой текст

  3. Нажать Enter

Критерий прохождения

Показаны результаты поиска по запросу

Примечания







ID

5

Название

Android / Выход из учетной записи

Автор

Артём Припадчев

Краткое

описание (цель)

Проверка выхода из учетной записи

Начальные условия

  1. Twitter открыт

  2. Осуществлен вход в аккаунт

Пошаговые инструкции

  1. Перейти в меню приложения (кнопка с изображением трех вертикально расположенных точек)

  2. Выбрать Settings

  3. Выбрать свою учетную запись

  4. Выбрать Log out, в всплывающем окне нажать OK

Критерий прохождения

Осуществлен выход из аккаунта

Примечания





Исходные коды

package twitterTestPack;
import java.net.MalformedURLException;

import java.net.URL;

import java.util.List;

import java.io.File;
import org.openqa.selenium.By;

import org.openqa.selenium.Dimension;

import org.openqa.selenium.WebElement;

import org.openqa.selenium.remote.CapabilityType;

import org.openqa.selenium.remote.DesiredCapabilities;

import org.junit.*;
import io.appium.java_client.AppiumDriver;

import io.appium.java_client.TouchAction;

import io.appium.java_client.android.AndroidDriver;
public class startApp {
private AppiumDriver driver;

WebElement element;
@Before

public void setUp() throws MalformedURLException{
File classpathRoot = new File(System.getProperty("user.dir"));

File appDir = new File(classpathRoot, "/Twitter");

File app = new File(appDir, "com.twitter.android-2.apk");
DesiredCapabilities capabilities = new DesiredCapabilities();

capabilities.setCapability(CapabilityType.BROWSER_NAME, ""); //Name of mobile web browser to automate. Should be an empty string if automating an app instead.

capabilities.setCapability("platformName", "Android");

capabilities.setCapability(CapabilityType.VERSION, "4.2.2");

capabilities.setCapability("deviceName", "192.168.202.101:5555");

capabilities.setCapability("app", app.getAbsolutePath());

capabilities.setCapability("appPackage", "com.twitter.android");

capabilities.setCapability("appActivity", ".StartActivity");

driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);

}

@After

public void aftertest() {

driver.quit();

}

@Test

public void installLargeWidget() throws Exception {
System.out.println("Starting test " + new Object(){}.getClass().getEnclosingMethod().getName());

driver.navigate().back();

element = driver.findElement(By.name("Apps"));

element.click();

element = driver.findElement(By.name("Widgets"));

element.click();

boolean exit = false;

while(!exit)

{

element = null;

try

{

element = driver.findElement(By.name("Twitter (large)"));

}

catch (Exception ex){}

if(element==null)

{

Dimension size = driver.manage().window().getSize();

int startx = (int) (size.width * 0.8);

int endx = (int) (size.width * 0.20);

int starty = size.height / 2;

driver.swipe(startx, starty, endx, starty, 1000);

}

else exit = true;

}

TouchAction action = new TouchAction(driver);

action.longPress(element).release().perform();

System.out.println("Ending test " + new Object(){}.getClass().getEnclosingMethod().getName());
}

@Test

public void invalid_LogIn() throws Exception {

System.out.println("Starting test " + new Object(){}.getClass().getEnclosingMethod().getName());

element = driver.findElement(By.name("Log in"));

element.click();

List textFieldsList = driver.findElementsByClassName("android.widget.EditText");

textFieldsList.get(0).sendKeys("lol@mail.ru");

textFieldsList.get(1).sendKeys("123456");

element = driver.findElement(By.name("Log in"));

element.click();

Thread.sleep(3000);

try

{

element = driver.findElement(By.name("Log in"));

Assert.assertNotNull(element);

}

catch(Exception e){

Assert.fail();

}

System.out.println("Ending test " + new Object(){}.getClass().getEnclosingMethod().getName());

}

}
package twitterTestPack;
import java.net.MalformedURLException;

import java.net.URL;

import java.util.List;

import java.io.File;
import org.openqa.selenium.By;

import org.openqa.selenium.Dimension;

import org.openqa.selenium.WebElement;

import org.openqa.selenium.remote.CapabilityType;

import org.openqa.selenium.remote.DesiredCapabilities;

import org.junit.*;
import io.appium.java_client.AppiumDriver;

import io.appium.java_client.TouchAction;

import io.appium.java_client.android.AndroidDriver;
public class LogIn {
private AppiumDriver driver;

WebElement element;
@Before

public void setUp() throws MalformedURLException{
File classpathRoot = new File(System.getProperty("user.dir"));

File appDir = new File(classpathRoot, "/Twitter");

File app = new File(appDir, "com.twitter.android-2.apk");
DesiredCapabilities capabilities = new DesiredCapabilities();

capabilities.setCapability(CapabilityType.BROWSER_NAME, ""); //Name of mobile web browser to automate. Should be an empty string if automating an app instead.

capabilities.setCapability("platformName", "Android");

capabilities.setCapability(CapabilityType.VERSION, "4.2.2");

capabilities.setCapability("deviceName", "192.168.202.101:5555");

capabilities.setCapability("app", app.getAbsolutePath());

capabilities.setCapability("appPackage", "com.twitter.android");

capabilities.setCapability("appActivity", ".StartActivity");

driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);

}

@After

public void aftertest() {

driver.quit();

}

@Test

public void valid_LogIn() throws Exception {

System.out.println("Starting test " + new Object(){}.getClass().getEnclosingMethod().getName());

element = driver.findElement(By.name("Log in"));

element.click();

List textFieldsList = driver.findElementsByClassName("android.widget.EditText");

textFieldsList.get(0).sendKeys("GetViruses@gmail.com");

textFieldsList.get(1).sendKeys("*********");

element = driver.findElement(By.name("Log in"));

element.click();

Thread.sleep(3000);

try

{

element = driver.findElement(By.name("Log in"));

Assert.assertNull(element);

}

catch(Exception e){

}

System.out.println("Ending test " + new Object(){}.getClass().getEnclosingMethod().getName());

}

}
package twitterTestPack;
import java.net.MalformedURLException;

import java.net.URL;

import java.util.List;

import java.io.File;
import org.openqa.selenium.By;

import org.openqa.selenium.Dimension;

import org.openqa.selenium.WebElement;

import org.openqa.selenium.remote.CapabilityType;

import org.openqa.selenium.remote.DesiredCapabilities;

import org.junit.*;
import io.appium.java_client.AppiumDriver;

import io.appium.java_client.TouchAction;

import io.appium.java_client.android.AndroidDriver;

import io.appium.java_client.*;
public class SearchTests {

private AppiumDriver driver;

WebElement element;

@Before

public void setUp() throws MalformedURLException{
File classpathRoot = new File(System.getProperty("user.dir"));

File appDir = new File(classpathRoot, "/Twitter");

File app = new File(appDir, "com.twitter.android-2.apk");
DesiredCapabilities capabilities = new DesiredCapabilities();

capabilities.setCapability(CapabilityType.BROWSER_NAME, ""); //Name of mobile web browser to automate. Should be an empty string if automating an app instead.

capabilities.setCapability("platformName", "Android");

capabilities.setCapability(CapabilityType.VERSION, "4.2.2");

capabilities.setCapability("deviceName", "192.168.202.101:5555");

capabilities.setCapability("app", app.getAbsolutePath());

capabilities.setCapability("appPackage", "com.twitter.android");

capabilities.setCapability("appActivity", ".StartActivity");

driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);

try{

driver.findElement(By.name("Don't allow")).click();

}

catch(Exception e){}

}

//@After

public void aftertest() {

driver.quit();

}

@Test

public void getSearchResults() throws Exception

{

driver.findElement(By.name("Search")).click();

element = driver.findElement(By.name("Search Twitter"));

element.sendKeys("text \n");

Thread.sleep(3000);

element = driver.findElement(By.name("All Tweets"));

Assert.assertNotNull(element);

}

}
package twitterTestPack;
import java.net.MalformedURLException;

import java.net.URL;

import java.util.List;

import java.io.File;
import org.openqa.selenium.By;

import org.openqa.selenium.Dimension;

import org.openqa.selenium.WebElement;

import org.openqa.selenium.remote.CapabilityType;

import org.openqa.selenium.remote.DesiredCapabilities;

import org.junit.*;
import io.appium.java_client.AppiumDriver;

import io.appium.java_client.TouchAction;

import io.appium.java_client.android.AndroidDriver;

import io.appium.java_client.*;
public class LogOut {

private AppiumDriver driver;

WebElement element;

@Before

public void setUp() throws MalformedURLException{
File classpathRoot = new File(System.getProperty("user.dir"));

File appDir = new File(classpathRoot, "/Twitter");

File app = new File(appDir, "com.twitter.android-2.apk");
DesiredCapabilities capabilities = new DesiredCapabilities();

capabilities.setCapability(CapabilityType.BROWSER_NAME, ""); //Name of mobile web browser to automate. Should be an empty string if automating an app instead.

capabilities.setCapability("platformName", "Android");

capabilities.setCapability(CapabilityType.VERSION, "4.2.2");

capabilities.setCapability("deviceName", "192.168.202.101:5555");

capabilities.setCapability("app", app.getAbsolutePath());

capabilities.setCapability("appPackage", "com.twitter.android");

capabilities.setCapability("appActivity", ".StartActivity");

driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);

try{

driver.findElement(By.name("Don't allow")).click();

}

catch(Exception e){}

}

//@After

public void aftertest() {

driver.quit();

}

@Test

public void logOut() throws Exception

{

driver.findElement(By.name("More")).click();

driver.findElement(By.name("Settings")).click();

driver.findElement(By.name("@ArtemVirused")).click();

driver.findElement(By.name("Log out")).click();

driver.findElement(By.name("OK")).click();

//Thread.sleep(5000);

try{

element = driver.findElement(By.name("Sign up"));

System.out.println("ОК");

Assert.assertNotNull(element);

}

catch(Exception e){

Assert.fail();

}

}

//@Test

public void writeTweet() throws Exception

{

element = driver.findElement(By.name("What's happening?"));

element.click();

element = driver.findElement(By.name("What's happening?"));

element.click();

element.sendKeys("TestTweet");

Thread.sleep(1000);

}

}
package twitterTestPack;
import org.junit.runner.RunWith;

import org.junit.runners.Suite;

import org.junit.runners.Suite.SuiteClasses;
@RunWith(Suite.class)

@SuiteClasses({ startApp.class, LogIn.class, SearchTests.class, LogOut.class })

public class AllTests {
}

Похожие:

Лабораторная работа №4 по дисциплине «Тестирование по» icon Лабораторная работа 1 4 лабораторная работа 2 13 лабораторная работа...
Интернете разнообразную информацию – описательную, графическую, картографическую и пр. При разработке сайтов необходимо уметь работать...
Лабораторная работа №4 по дисциплине «Тестирование по» icon Лабораторная работа №9 59 Лабораторная работа №10 72 Лабораторная...
Рабочая тетрадь для выполнения лабораторных работ по мдк. 03. 01. «Техническое обслуживание и ремонт компьютерных систем и комплексов»...
Лабораторная работа №4 по дисциплине «Тестирование по» icon Лабораторная работа №3 по дисциплине «Тестирование по»
Разработать и описать 4 тестовых сценария для тестирования сайта, согласно вашему варианту. Обязательно проверить форму входа, поисковые...
Лабораторная работа №4 по дисциплине «Тестирование по» icon Dmitry Murzak qa enginer, qa lead Местоположение
Тестирование по, Разработка тест-кейсов, Ручное тестирование, Регрессионное тестирование, Тестирование методом свободного поиска,...
Лабораторная работа №4 по дисциплине «Тестирование по» icon Методические указания для студентов по выполнению лабораторных работ...
Лабораторная работа 4, 5 Исследование регистров, счетчиков и дешифраторов Лабораторная работа 6, 7 Исследование генератора псевдослучайной...
Лабораторная работа №4 по дисциплине «Тестирование по» icon Лабораторная работа №10. Изучение принципа действия и функциональной...
Лабораторная работа № Изучение принципов построения системы автоматической подстройки частоты (апч) радиолокационной станции
Лабораторная работа №4 по дисциплине «Тестирование по» icon Лабораторная работа №1 «Создание общих ресурсов и управление ими»
Лабораторная работа №6-7 «Изучение типов серверов, их настройка и конфигурирование»
Лабораторная работа №4 по дисциплине «Тестирование по» icon Лабораторная работа №
Лабораторная работа №1. Изучение основных возможностей программного продукта Яндекс. Сервер. Установка окружения, установка и настройка...
Лабораторная работа №4 по дисциплине «Тестирование по» icon Лабораторная работа №27 Лабораторная работа №28 Контрольные работы...
Пм «Сборка монтаж (демонтаж) элементов судовых конструкций, корпусов, устройств и систем металлических судов»
Лабораторная работа №4 по дисциплине «Тестирование по» icon Методические указания к выполнению лабораторных работ по дисциплине радиолокационные системы
Лабораторная работа №1 «Изучение принципов построения штатной радиолокационной киа»
Лабораторная работа №4 по дисциплине «Тестирование по» icon Методические указания к лабораторным работам по дисциплине «Технологии...
Лабораторная работа 2 Составление календарного плана разработки портала вуза 16
Лабораторная работа №4 по дисциплине «Тестирование по» icon Лабораторная работа №9
Данная лабораторная работа оформляется в виде файла word с расширением файла docx или doc и прикрепляется в виде ссылки на файл к...
Лабораторная работа №4 по дисциплине «Тестирование по» icon Лабораторная работа 2 12 лабораторная работа 3 17 лабораторная работа...
«Проектирование систем реального времени» для студентов специальности 09. 05. 01 «Применение и эксплуатация автоматизированных систем...
Лабораторная работа №4 по дисциплине «Тестирование по» icon Комплекс лабораторных работ по дисциплине «Выч системы, сети и телекоммуникации»...
При соединении Computer-Hub/Switch (карта-хаб/свитч) используется следующая схема
Лабораторная работа №4 по дисциплине «Тестирование по» icon Лабораторная работа №3 по дисциплине: «Операционные системы»
Зарегистрироваться в системе. Изучить правила входа в систему и завершения работы (команды login, logout, passwd, exit, shutdown,...
Лабораторная работа №4 по дисциплине «Тестирование по» icon Лабораторная работа «Построение контуров изображения с использованием...
Ивших на уроках математики понятие о математических кривых и графиках функций. Данная лабораторная работа может быть использована...

Руководство, инструкция по применению




При копировании материала укажите ссылку © 2024
контакты
rykovodstvo.ru
Поиск