Перейти к содержимому

Фотография

Использование методов другого класса

selenium java junit

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 15

#1 Fortis

Fortis

    Новый участник

  • Members
  • Pip
  • 4 сообщений

Отправлено 26 января 2015 - 14:35

Доброго времени суток. 
Сейчас потихоньку пытаюсь перейти на автоматизацию некоторых функций с помощью Selenium'а в Java.
Так вот, есть задача - создать некоторое количество тестов, у которых будет общая часть, а именно - авторизация на сайте. Без нее ни один тест невозможно осуществить. Чтобы не прописывать это каждый раз в каждом новом тесте, мне нужно эту общую часть вынести в отдельный класс, откуда необходимо брать методы и т.д. Так вот, не мог бы кто-нибудь подсказать, как это можно реализовать? 
Наследование просили не делать. Хотя у меня и с ним не получилось, т.к. навыков программирования нет (успел только 1 главу одной книги по Java прочитать быстро). 
Вот как выглядит авторизация сейчас: 

 

package utils;


import java.util.regex.Pattern;  
import java.util.concurrent.TimeUnit;
import org.junit.*;
import static org.junit.Assert.*;
import static org.hamcrest.CoreMatchers.*;
import org.openqa.selenium.*;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.Select;


public class Login {
  public WebDriver driver;
  public String baseUrl;
  
  @Before
  public void setUp() throws Exception {
    driver = new FirefoxDriver();
    baseUrl = "http://sys.it-co.ru:7077/";
    driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
  }


  @Test
  public void authentication() throws Exception {
driver.get(baseUrl + "/DBudgeting/");
    driver.findElement(By.id("ctlLogin_textBoxLogin")).clear();
    driver.findElement(By.id("ctlLogin_textBoxLogin")).sendKeys("admin");
    driver.findElement(By.id("ctlLogin_textBoxPassword")).clear();
    driver.findElement(By.id("ctlLogin_textBoxPassword")).sendKeys("admin");
    driver.findElement(By.id("ctlLogin_btnLogin")).click();
  }
}

 


  • 0

#2 BabyRoot

BabyRoot

    Специалист

  • Members
  • PipPipPipPipPip
  • 833 сообщений


Отправлено 26 января 2015 - 15:11

Почему сделали ограничение на наследование?

Без наследования вы не сможете ничего гибкого сделать.

 

Создайте рядом с этим классом, новый класс.

Пометите туда authentication(). - замените 'driver.'  на 'Login.driver.'

А здесь, в самом тесте используйте уже ссылку на новый_класс.authentication(); - и вы будете использовать метод из другого класса.


  • 1

#3 Fortis

Fortis

    Новый участник

  • Members
  • Pip
  • 4 сообщений

Отправлено 27 января 2015 - 06:40

Почему сделали ограничение на наследование?

Без наследования вы не сможете ничего гибкого сделать.

 

Создайте рядом с этим классом, новый класс.

Пометите туда authentication(). - замените 'driver.'  на 'Login.driver.'

А здесь, в самом тесте используйте уже ссылку на новый_класс.authentication(); - и вы будете использовать метод из другого класса.

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

Спасибо большое за помощь, сейчас попробую. 


  • 0

#4 Vovan2266

Vovan2266

    Новый участник

  • Members
  • Pip
  • 6 сообщений
  • ФИО:Исаев Владимир Сергеевич
  • Город:Москва

Отправлено 17 января 2017 - 08:54

Подскажите пожалуйста как автоматизировать авторизацию по номеру телефона с вводом проверочного кода.

На странице авторизации вводим номер телефона, нажимаем Получить код. Код приходит на телефон, его надо ввести в поле. Selenium WebDriver + Java. Помогите плиз, очень надо)


  • 0

#5 Little_CJIOH

Little_CJIOH

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 515 сообщений
  • ФИО:Власкин Павел
  • Город:Санкт-Петербург


Отправлено 17 января 2017 - 09:11

Подскажите пожалуйста как автоматизировать авторизацию по номеру телефона с вводом проверочного кода.
На странице авторизации вводим номер телефона, нажимаем Получить код. Код приходит на телефон, его надо ввести в поле. Selenium WebDriver + Java. Помогите плиз, очень надо)

А проблема в чем? что можете сделать, что нет?
  • 0

#6 Spock

Spock

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 772 сообщений
  • ФИО:Роман

Отправлено 17 января 2017 - 09:18

такое наверное лучше тестировать руками

 

может не обязательно автоматизировать? слишком уж муторно


  • 0

#7 Little_CJIOH

Little_CJIOH

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 515 сообщений
  • ФИО:Власкин Павел
  • Город:Санкт-Петербург


Отправлено 17 января 2017 - 09:26

такое наверное лучше тестировать руками
 
может не обязательно автоматизировать? слишком уж муторно

за авторизацией обычно стоит тестируемое приложение.
  • 0

#8 Spock

Spock

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 772 сообщений
  • ФИО:Роман

Отправлено 17 января 2017 - 10:43

 

 

за авторизацией обычно стоит тестируемое приложение. 

так тут вопрос что тестируется - либо сам метод "аутентификация через смс" либо само приложение

 

если тестируешь приложение, то не надо использовать сложные методы аутентификации


  • 0

#9 Vovan2266

Vovan2266

    Новый участник

  • Members
  • Pip
  • 6 сообщений
  • ФИО:Исаев Владимир Сергеевич
  • Город:Москва

Отправлено 17 января 2017 - 10:46

Нет, это не приложение, а веб сайт клининговой компании и там для авторизации нужно ввести номер телефона


  • 0

#10 Little_CJIOH

Little_CJIOH

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 515 сообщений
  • ФИО:Власкин Павел
  • Город:Санкт-Петербург


Отправлено 17 января 2017 - 10:48

за авторизацией обычно стоит тестируемое приложение. 

так тут вопрос что тестируется - либо сам метод "аутентификация через смс" либо само приложение
 
если тестируешь приложение, то не надо использовать сложные методы аутентификации

До этой "очевидной" истины мы бы дошли шаге на 3-м дисскуссии.
  • 0

#11 Spock

Spock

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 772 сообщений
  • ФИО:Роман

Отправлено 17 января 2017 - 10:49

 

 

Нет, это не приложение, а веб сайт клининговой компании и там для авторизации нужно ввести номер телефона

ну веб-сайт это тоже считается приложением

 

на тестовом сервере скорее всего не надо вводить номер телефона. вот там и надо тестировать. Зачем лезть в продакшен?


  • 0

#12 Little_CJIOH

Little_CJIOH

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 515 сообщений
  • ФИО:Власкин Павел
  • Город:Санкт-Петербург


Отправлено 17 января 2017 - 10:52

Нет, это не приложение, а веб сайт клининговой компании и там для авторизации нужно ввести номер телефона

Понятие "приложение" несколько щире чем "то, что лежит в AppStore"
Вы тестируете приложение с вэб-интерфейсом.
  • 0

#13 baxatob

baxatob

    Опытный участник

  • Members
  • PipPipPipPip
  • 258 сообщений
  • ФИО:Юрий
  • Город:Riga

Отправлено 17 января 2017 - 12:21

Можно дернуть сгенерированный код напрямую из базы данных.


  • 1

#14 Spock

Spock

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 772 сообщений
  • ФИО:Роман

Отправлено 17 января 2017 - 14:48

 

 

Можно дернуть сгенерированный код напрямую из базы данных.

по требованиям безопасности данные для аутентификации (в данном случае коды доступа с мобильного) не должны храниться в текстовом виде - только хэшированные и подсоленные


  • 0

#15 Vovan2266

Vovan2266

    Новый участник

  • Members
  • Pip
  • 6 сообщений
  • ФИО:Исаев Владимир Сергеевич
  • Город:Москва

Отправлено 17 января 2017 - 14:52

Придётся тогда думать как это пропустить, хотя это основной и необходимый шаг при входе на сайт или создании заказа на уборку, если создаёшь неавторизованным(


  • 0

#16 Little_CJIOH

Little_CJIOH

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 515 сообщений
  • ФИО:Власкин Павел
  • Город:Санкт-Петербург


Отправлено 17 января 2017 - 15:13

Придётся тогда думать как это пропустить, хотя это основной и необходимый шаг при входе на сайт или создании заказа на уборку, если создаёшь неавторизованным(

Не надо думать, надо спрашивать разработчиков.
Вам надо или иметь доступ к коду, или иметь способ получать предсказуемый код.
  • 1



Темы с аналогичным тегами selenium, java, junit

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных