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

Публикации Maysenka

34 публикаций создано Maysenka (учитываются публикации только с 25 апреля 2023)



#134267 Получение данных из БД

Отправлено автор: Maysenka 15 сентября 2014 - 11:55 в Selenium - Functional Testing

Всем спасибо. Решено было просто через PDO реализовывать 




#134157 Получение данных из БД

Отправлено автор: Maysenka 12 сентября 2014 - 05:44 в Selenium - Functional Testing

Вам надо получить данные из таблицы и потом сравнить с ожидаемыми?

Статья http://habrahabr.ru/post/113872/ поможет

 

Изучала это. Там написано, что

 

 

 

Вы должны реализовать два абстрактных метода — getConnection() и getDataSet(). Первый необходим для установления соединения с базой, второй для заполнения базы таблицами и заполнения собственно таблиц.

 

Вот как раз заполнение мне и не нужно. Возможно ли без него реализовать?




#134148 Получение данных из БД

Отправлено автор: Maysenka 12 сентября 2014 - 03:46 в Selenium - Functional Testing

Вам необходимо объявить все методы абстрактного класса PHPUnit_Extensions_Database_TestCase, в том числе и getDataSet

 

Так вроде так и сделано.

И я не хочу использовать функцию getDataSet. Поскольку она таблицу наполняет своими данными. А мне нужно просто получить дынные из таблицы. Возможно ли это сделать средствами dbunit?




#134111 Получение данных из БД

Отправлено автор: Maysenka 11 сентября 2014 - 08:01 в Selenium - Functional Testing

Вот такой пример работает:

<?
require_once 'PHPUnit/Extensions/Database/TestCase.php';

class testMyBase extends PHPUnit_Extensions_Database_TestCase{

    protected function getConnection()
    {
        $pdo = new PDO('mysql:host=1.1.1.1;port=1111;dbname=name_base', 'TTT', '111');
        return $this->createDefaultDBConnection($pdo, 'name_base');
    }

    protected function getDataSet()
    {
        return $this->createFlatXMLDataSet(dirname(__FILE__).'/test.xml');
    }

    public function testPerson ()
    {
        $sql = "SELECT * FROM staffs";
        $statement =
            $this->getConnection()->getConnection()->query($sql);
        $result = $statement->fetchAll(); //данные таблицы, с которыми я потом работаю
        ...
    }
} 

test.xml

<?xml version="1.0" encoding="UTF-8" ?>
<dataset>
    <partner_types
            id="4"
            name="Nadjava"/>
</dataset>

Но в данном примере получается, что таблицу partner_types я наполняю данными из test.xml. Если же опустить функцию getDataSet(), то возникает вот такая ошибка:

Fatal error:  Class testMyBase contains 1 abstract method and must therefore be declared abstract or implement the remaining methods (PHPUnit_Extensions_Database_TestCase::getDataSet) in /vagrant/www/tests/testMyBase.php on line 4



#134106 Получение данных из БД

Отправлено автор: Maysenka 11 сентября 2014 - 07:39 в Selenium - Functional Testing

Этот вопрос оффтопик, здесь обсуждается "Автоматизированное тестирование → Selenium - Functional Testing"

 

Я в рамках selenium и хочу получить данные. Ведь использоваться они будут в тестах




#134097 Получение данных из БД

Отправлено автор: Maysenka 11 сентября 2014 - 07:01 в Selenium - Functional Testing

В нашем проекте есть классы для работы с БД, в тестах я пользуюсь ими. Спросите у своих разработчиков.

 

Тесты находятся в отдельном репозитории, где нет данных классов




#134088 Получение данных из БД

Отправлено автор: Maysenka 11 сентября 2014 - 04:33 в Selenium - Functional Testing

Добрый день. Прошу помощи.

 

Появилась необходимость подключаться к базе данных и получать или проверять данные.

Не очень понимаю как это делать. Про тестирование БД написано, что нужно добавить тестовые данные в БД, но мне это не нужно. Возможно ли просто подключиться и получить данные из базы?

 

Пример. Подключение и что хотелось бы проверить

protected function getConnection()
    {
        $pdo = new PDO('mysql:host=1.1.1.1;port=1111;dbname=name_base', 'TTT', '111');
        return $this->createDefaultDBConnection($pdo, 'name_base');
    }


    public function testPerson ()
    {
        $sql = "SELECT * FROM staffs";
        $statement =
            $this->getConnection()->query($sql);
        $result = $statement->fetchAll();
        $this->assertEquals(1, sizeof($result));
    }

 




#132834 Несколько тестов в одной сессии

Отправлено автор: Maysenka 01 августа 2014 - 06:43 в Selenium - Functional Testing

удалите закрытие браузера.

 удалите открытие браузера.

Это прям в тесте можно прописать? А есть пример?




#132829 Несколько тестов в одной сессии

Отправлено автор: Maysenka 01 августа 2014 - 03:37 в Selenium - Functional Testing

Вам нужно смотреть в сторону Test Dependencies.

Как вариант: http://phpunit.de/ma...st-dependencies

Пробовала. Каждый тест в любом случае запускается с чистой сессией.

 

 

Что вы используете?

Скорее всего вам надо научиться запускать броузер с готовым профилем, т.к. по умолчанию профили создаются всегда чистые и потом удаляются.

Профили я использую. Но постоянно быть авторизованным в профиле мне не нужно, т.к. и другие тесты проходят с другим функционалом.

 

 

А может, просто не закрывать браузер в тестах, имеющих зависимости от них?

Это еще не пробовала. Пока не нашла решения как это сделать




#132807 Несколько тестов в одной сессии

Отправлено автор: Maysenka 31 июля 2014 - 12:07 в Selenium - Functional Testing

Добрый день вечер. Есть ли реализовать такую логику:

 

Допустим у меня есть 3 метода в классе:

    private function login(){
        //авторизация, открытие страницы_1
    }

    private function isPresentH1(){
        //переход на страницу_2 и проверка наличия на ней заголовка 
    }

    private function isPresentForm(){
        //проверка наличия на странице_2 формы
    }

Хотелось бы создать такую проверку:

public function testLogin(){
   $this->login();
}
//если авторизация прошла успешно, то проверяется отображение заголовка_1
public function testPresent1(){
   $this->isPresentH1();
}
//если заголовок_1 присутствует, то проверка отображение формы_1
public function testFrom1(){
   $this->isPresentForm();
}

//если форма_1 отображается, то переход на другую страницу и проверка там на наличие заголовка_2
public function testPresent2(){
   $this->isPresentH1();
}
//если заголовок_2 присутствует, то проверка отображение формы_2
public function testFrom2(){
   $this->isPresentForm();
}
//и так далее...

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

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

 

Спасибо )




#129574 Передача даты в тест через консоль

Отправлено автор: Maysenka 15 апреля 2014 - 11:51 в Selenium - Functional Testing

Добрый день.

 

Как передать аргументы в скрипт? Например:

phpunit test.php argument

А в тесте его получить.




#127632 Selenium RC + PHPUnit. Создание нового окна

Отправлено автор: Maysenka 28 февраля 2014 - 10:06 в Selenium - Functional Testing

 

Возникла с открытием нового окна.

Если я нахожусь на сайте с https, то команда

$this->openWindow('http://primer.ru', 'primer');
$this->selectWindow('primer');

выдает ошибка, что окна "primer" не существует. Хотя я вижу, что оно открыто. Таймауты не помогают. Также я пробовала выводить список открытых окон. Окна "primer" в этом списке не было, будто оно и не открывалось.

 

Как можно обойти это?

 

Более правильно будет:

$this->selectWindow('name=primer');

насколько я помню, openWindow именно имя окна задаёт

 

Нет, он именно окно создает с именем "primer". 

Но тут казус. Он вроде бы его создает, я его вижу открытым. НО! Сам селениум его не видит. Говорит, что нет такого окна, как бы я его не искала




#127564 Selenium RC + PHPUnit. Создание нового окна

Отправлено автор: Maysenka 27 февраля 2014 - 06:46 в Selenium - Functional Testing

Извините, но первое, что мне бросилось в глаза, - это то, что находитесь Вы на сайте HTTPS, а открываете окно с HTTP.

Да ну даже если я прописываю 'https://primer.ru', то ошибка таже




#127557 Selenium RC + PHPUnit. Создание нового окна

Отправлено автор: Maysenka 27 февраля 2014 - 04:14 в Selenium - Functional Testing

Возникла с открытием нового окна.

Если я нахожусь на сайте с https, то команда

$this->openWindow('http://primer.ru', 'primer');
$this->selectWindow('primer');

выдает ошибка, что окна "primer" не существует. Хотя я вижу, что оно открыто. Таймауты не помогают. Также я пробовала выводить список открытых окон. Окна "primer" в этом списке не было, будто оно и не открывалось.

 

Как можно обойти это?




#127556 Как использовать PHPBrowserMobProxy

Отправлено автор: Maysenka 27 февраля 2014 - 04:04 в Selenium - Functional Testing

 

 

 

Вообще изменение реферера понадобилось, чтобы указать с какой страницы был произведен переход. 

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

target="_blank"  у элемента можно было убрать =)

 

В том то и дело, что нельзя. Сайт сторонний 

 

 

Ну вы же на него заходите селениумом?

Так используйте setAttribute('target','')

 

хм, а вот об таком решении даже и не подумала. Спасибо )




#126524 Как использовать PHPBrowserMobProxy

Отправлено автор: Maysenka 04 февраля 2014 - 06:07 в Selenium - Functional Testing

 

Вообще изменение реферера понадобилось, чтобы указать с какой страницы был произведен переход. 

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

target="_blank"  у элемента можно было убрать =)

 

В том то и дело, что нельзя. Сайт сторонний 




#126064 Как использовать PHPBrowserMobProxy

Отправлено автор: Maysenka 22 января 2014 - 04:14 в Selenium - Functional Testing

Проблема неожиданно решилась. В настройках фаерфокса изменила, чтобы окно открывалось не в новой вкладке, а в нвом окне и все заработало )



#125976 Как использовать PHPBrowserMobProxy

Отправлено автор: Maysenka 20 января 2014 - 11:39 в Selenium - Functional Testing

Вообще изменение реферера понадобилось, чтобы указать с какой страницы был произведен переход. 

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




#125975 Как сохранить изображение

Отправлено автор: Maysenka 20 января 2014 - 11:13 в Selenium - Functional Testing

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




#125974 Как использовать PHPBrowserMobProxy

Отправлено автор: Maysenka 20 января 2014 - 11:11 в Selenium - Functional Testing

Насколько я знаю, PHPBrowserMobProxy не позволяет писать собственные интерцепторы, при помощи которых можно модифицировать запросы или ответы.

Нужно либо писать на Java (я, кстати, про это буду рассказывать на selen-конфетке), либо использовать более "родной" для PHP прокси (какой -- не знаю).

 

Я вообще не очень поняла в чем заключается работа этого прокси. Как можно изменить благодаря ему реферер страницы. На многих форумах советуют PHPBrowserMobProxy, но не объясняют как им пользоваться




#125973 Как получить куки

Отправлено автор: Maysenka 20 января 2014 - 11:09 в Selenium - Functional Testing

 

Нет. Мне нужно куки, кот ставятся на конкретный сайт, но с других доменов.

Поясните, что имеется в виду?

Установить куки для другого домена невозможно (точнее говоря, если это возможно -- это уязвимость, баг в браузере).
Точнее говоря, для поддомена возможно, а для "совсем другого" домена -- нельзя.

 

Мне нужно получиться эти куки.

 

Но проблема уже решена. Нашелся обходной путь




#125972 firefox окно подтверждения

Отправлено автор: Maysenka 20 января 2014 - 11:08 в Selenium - Functional Testing

А ошибок с FF не возникает?
У меня после того, как скрипт отработал, эррор:
org.openqa.selenium.WebDriverException: '[JavaScript Error: "a is null" ....

У меня все нормально было




#125802 Как сохранить изображение

Отправлено автор: Maysenka 14 января 2014 - 04:29 в Selenium - Functional Testing

Есть изображение, кот нужно сохранить, но если я нажимаю "Сохранить изображение как...", то сохраняется совсем другая картинка. Возможно ли сохранить как-нибудь такое изображение в селениуме.
И в принципе можно сохранить изображение?



#123881 Как использовать PHPBrowserMobProxy

Отправлено автор: Maysenka 12 ноября 2013 - 08:52 в Selenium - Functional Testing

Не могу разобраться как работает PHPBrowserMobProxy в сочетании с selenium rc и phpunit. В самой документации ничего толком не сказано. Тесты проходят, кот приведены в документации, но как они работают и что делают непонятно
Стоит задача изменения referer.
Кто что знает об этом?



#123879 firefox окно подтверждения

Отправлено автор: Maysenka 12 ноября 2013 - 08:33 в Selenium - Functional Testing

AutoIT?

Да