Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Нужен совет по качественному переиспользованию кода в тестах



Software-Testing.Ru - портал тестировщиков  

Новые темы форума тестировщиков


Нужен совет по качественному переиспользованию кода в тестах
2017-05-02 14:23

Сам тест

@DataProvider
    public Object[][] type() {
        return new Object[][]{
                {ПАКЕТФИНАНСОВЫХДОКУМЕНТОВ}
        };
    }
    @DataProvider
    public Object[][] status() {
        return new Object[][]{
                {ДАННЫЕЗАУКАЗАННЫЙПЕРИОД}
        };
    }
    @Test(priority = 4)
    public void testFilterByDataPeriod() {
        app.getUserHelper().loginAs(USER);
        app.getUserHelper().isLoggedInAs(USER);
        app.getNavigationHelper().toDocuments();
        app.getOrderedDocumentsPage().selectLSfromSelectList("130-Б102 ЗАО \"Секретно\"");
        app.getOrderedDocumentsPage().getOrderedDocList();
        //Ручной ввод даты не работает
       // app.getOrderedDocumentsPage().filterByDate("01.04.2017","30.04.2017");
        app.getOrderedDocumentsPage().filterByDocType(ПАКЕТФИНАНСОВЫХДОКУМЕНТОВ);
        app.getOrderedDocumentsPage().filterByStatus(ДАННЫЕЗАУКАЗАННЫЙПЕРИОД);
        app.getOrderedDocumentsPage().showSearchResult();//Просто клик по копне "Показать"
        app.getOrderedDocumentsPage().assertFilterOrderedDocuments(ПАКЕТФИНАНСОВЫХДОКУМЕНТОВ,ДАННЫЕЗАУКАЗАННЫЙПЕРИОД);
    }

Фильтр по типу аналогичен с фильтр по типу

public void filterByStatus(Status type) {
        click(By.xpath("//*[@name=\"Список 2\"]/div[2]"));
        switch (type) {
            case НЕТДАННЫХ:
                driver.findElement(By.xpath(".//div[@class='uniapp input-field select__opt' and @title='Нет данных']/div")).click();
                break;
            case ВОБРАБОТКЕ:
                driver.findElement(By.xpath(".//div[@class='uniapp input-field select__opt' and @title='В обработке']/div")).click();
                break;
            case ОТПРАВЛЕН:
                driver.findElement(By.xpath(".//div[@class='uniapp input-field select__opt' and @title='Отправлен']/div")).click();
                break;
            case ОШИБКА:
                driver.findElement(By.xpath(".//div[@class='uniapp input-field select__opt' and @title='Ошибка']/div")).click();
                break;
            case ДАННЫЕЗАУКАЗАННЫЙПЕРИОД:
                driver.findElement(By.xpath(".//div[@class='uniapp input-field select__opt' and @title='Данные за указанный период не найдены']/div")).click();
                break;
        }
    }

Основная проблема здесь.

public void assertFilterOrderedDocuments(Type type,Status status) {
        List<WebElement> elements=driver.findElements(By.xpath("//*[@name='GRID_DOCUMENTS']/table[1]/tbody[1]/tr[1]/td[1]/div/span"));
        int i=1;
        for (WebElement element:elements) {
            String doc_type = element.findElement(By.xpath("//*[@name='GRID_DOCUMENTS']/table[1]/tbody[1]/tr[" + i + "]/td[3]/div/span")).getText();
            String doc_period=element.findElement(By.xpath("//*[@name='GRID_DOCUMENTS']/table[1]/tbody[1]/tr[" + i + "]/td[4]/div/span")).getText();
            String doc_status=element.findElement(By.xpath("//*[@name='GRID_DOCUMENTS']/table[1]/tbody[1]/tr["+i+"]/td[5]/div/span")).getText();
            String doc_delivery=element.findElement(By.xpath("//*[@name='GRID_DOCUMENTS']/table[1]/tbody[1]/tr["+i+"]/td[5]/div/span")).getText();
            String doc_format=element.findElement(By.xpath("//*[@name='GRID_DOCUMENTS']/table[1]/tbody[1]/tr[1]/td["+i+"]/div/span")).getText();
            String doc_LS=element.findElement(By.xpath("//*[@name='GRID_DOCUMENTS']/table[1]/tbody[1]/tr["+i+"]/td[5]/div/span")).getText();
            i++;
            assertEquals(doc_type,type);
            assertEquals(doc_period, "01.01.2017 - 31.01.2017, 01.02.2017 - 28.02.2017, 01.03.2017 - 31.03.2017, 01.10.2016 - 31.10.2016, 01.11.2016 - 30.11.2016, 01.12.2016 - 31.12.2016");
            assertEquals(doc_status, status);
            assertEquals(doc_delivery, "Andrey.Samoylov@south.rt.ru");
            assertEquals(doc_format, "PDF");
            assertEquals(doc_LS, "ЛС: 8451651");
        }

Суть проблемы:

1) Понятное дело сейчас в сравнении получается подстановка "ПАКЕТФИНАНСОВЫХДОКУМЕНТОВ", что приводит к результату:

Expected :ПАКЕТФИНАНСОВЫХДОКУМЕНТОВ
Actual   :Счет-фактура, Счет, Расшифровка счета, Акт выполненных работ

Какие есть способы для подстановки мне требуемых данных, например алиас, что-то вроде: если выбран -"ПАКЕТФИНАНСОВЫХДОКУМЕНТОВ" то ожидается текст .... и т.д
2) Вообще не уверен в верности решения в методе "assertFilterOrderedDocuments", возможно есть более элегантные решения?



Тестирование производительности (HP Load Runner), начало 12 мая
2017-05-02 17:54

Онлайн-тренинг продолжительностью 4 занятия примерно по 60 минут и не менее 32 часов практику с постоянными консультациями тренера в скайп-чате.

 

тренер: Таисия Рыбак

 

Этот курс предназначен для тех, кто хочет научиться проводить нагрузочное тестирование при помощи HP Load Runner.

 

Данный инструмент используют до 70% крупных компаний по всему миру при проведении нагрузочного тестирования, так как он позволяет эмулировать нагрузку на системы с разной архитектурой и написанными на разных платформах.

 

На занятиях мы рассмотрим основные функции и настройки, которые Вам потребуются на первых порах.

 

Обучение будет на тренировочном web-приложении и мы пройдем все этапы проведения нагрузочного тестирования на одном примере от анализа задачи на проведение тестирования, создания профиля и до написания отчета о выполнении тестов.

 

В курсе используется HP Load Runner версии 12.53 Community Edition. Не удивляйтесь :) это полностью бесплатная лицензия, которая позволяет провести полноценное нагрузочное тестирование для небольших систем.

 

Программа и условия участия



© 2010 | Software-Testing.Ru


В избранное