Всем спасибо. Решено было просто через PDO реализовывать
- Форум тестировщиков
- → Публикации Maysenka
34 публикаций создано Maysenka (учитываются публикации только с 25 апреля 2023)
Отправлено автор: Maysenka 15 сентября 2014 - 11:55 в Selenium - Functional Testing
Всем спасибо. Решено было просто через PDO реализовывать
Отправлено автор: Maysenka 12 сентября 2014 - 05:44 в Selenium - Functional Testing
Вам надо получить данные из таблицы и потом сравнить с ожидаемыми?
Статья http://habrahabr.ru/post/113872/ поможет
Изучала это. Там написано, что
Вы должны реализовать два абстрактных метода — getConnection() и getDataSet(). Первый необходим для установления соединения с базой, второй для заполнения базы таблицами и заполнения собственно таблиц.
Вот как раз заполнение мне и не нужно. Возможно ли без него реализовать?
Отправлено автор: Maysenka 12 сентября 2014 - 03:46 в Selenium - Functional Testing
Вам необходимо объявить все методы абстрактного класса PHPUnit_Extensions_Database_TestCase, в том числе и getDataSet
Так вроде так и сделано.
И я не хочу использовать функцию getDataSet. Поскольку она таблицу наполняет своими данными. А мне нужно просто получить дынные из таблицы. Возможно ли это сделать средствами dbunit?
Отправлено автор: 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
Отправлено автор: Maysenka 11 сентября 2014 - 07:39 в Selenium - Functional Testing
Этот вопрос оффтопик, здесь обсуждается "Автоматизированное тестирование → Selenium - Functional Testing"
Я в рамках selenium и хочу получить данные. Ведь использоваться они будут в тестах
Отправлено автор: Maysenka 11 сентября 2014 - 07:01 в Selenium - Functional Testing
В нашем проекте есть классы для работы с БД, в тестах я пользуюсь ими. Спросите у своих разработчиков.
Тесты находятся в отдельном репозитории, где нет данных классов
Отправлено автор: 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)); }
Отправлено автор: Maysenka 01 августа 2014 - 06:43 в Selenium - Functional Testing
удалите закрытие браузера.
удалите открытие браузера.
Это прям в тесте можно прописать? А есть пример?
Отправлено автор: Maysenka 01 августа 2014 - 03:37 в Selenium - Functional Testing
Вам нужно смотреть в сторону Test Dependencies.
Как вариант: http://phpunit.de/ma...st-dependencies
Пробовала. Каждый тест в любом случае запускается с чистой сессией.
Что вы используете?
Скорее всего вам надо научиться запускать броузер с готовым профилем, т.к. по умолчанию профили создаются всегда чистые и потом удаляются.
Профили я использую. Но постоянно быть авторизованным в профиле мне не нужно, т.к. и другие тесты проходят с другим функционалом.
А может, просто не закрывать браузер в тестах, имеющих зависимости от них?
Это еще не пробовала. Пока не нашла решения как это сделать
Отправлено автор: 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(); } //и так далее...
Все эти тесты хотелось бы выполнять в одной сессии, т.е. при повторном запуске браузера я была авторизована и проверялось только наличие элементов.
Это необходимо, чтобы не тратить время на постоянную авторизацию в начале теста проверка наличия элемента.
Спасибо )
Отправлено автор: Maysenka 15 апреля 2014 - 11:51 в Selenium - Functional Testing
Добрый день.
Как передать аргументы в скрипт? Например:
phpunit test.php argument
А в тесте его получить.
Отправлено автор: 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".
Но тут казус. Он вроде бы его создает, я его вижу открытым. НО! Сам селениум его не видит. Говорит, что нет такого окна, как бы я его не искала
Отправлено автор: Maysenka 27 февраля 2014 - 06:46 в Selenium - Functional Testing
Извините, но первое, что мне бросилось в глаза, - это то, что находитесь Вы на сайте HTTPS, а открываете окно с HTTP.
Да ну даже если я прописываю 'https://primer.ru', то ошибка таже
Отправлено автор: Maysenka 27 февраля 2014 - 04:14 в Selenium - Functional Testing
Возникла с открытием нового окна.
Если я нахожусь на сайте с https, то команда
$this->openWindow('http://primer.ru', 'primer'); $this->selectWindow('primer');
выдает ошибка, что окна "primer" не существует. Хотя я вижу, что оно открыто. Таймауты не помогают. Также я пробовала выводить список открытых окон. Окна "primer" в этом списке не было, будто оно и не открывалось.
Как можно обойти это?
Отправлено автор: Maysenka 27 февраля 2014 - 04:04 в Selenium - Functional Testing
Вообще изменение реферера понадобилось, чтобы указать с какой страницы был произведен переход.
Почему-то в селениуме, когда я, например, в гугле нажимаю на какую-нибудь ссылку, то она открывается не в соседней вкладке, а в отдельном окне, при чем в нем не сохраняется откуда был произведен переход. Как это обойти не получилось придумать.
target="_blank" у элемента можно было убрать =)
В том то и дело, что нельзя. Сайт сторонний
Ну вы же на него заходите селениумом?
Так используйте setAttribute('target','')
хм, а вот об таком решении даже и не подумала. Спасибо )
Отправлено автор: Maysenka 04 февраля 2014 - 06:07 в Selenium - Functional Testing
Вообще изменение реферера понадобилось, чтобы указать с какой страницы был произведен переход.
Почему-то в селениуме, когда я, например, в гугле нажимаю на какую-нибудь ссылку, то она открывается не в соседней вкладке, а в отдельном окне, при чем в нем не сохраняется откуда был произведен переход. Как это обойти не получилось придумать.
target="_blank" у элемента можно было убрать =)
В том то и дело, что нельзя. Сайт сторонний
Отправлено автор: Maysenka 22 января 2014 - 04:14 в Selenium - Functional Testing
Отправлено автор: Maysenka 20 января 2014 - 11:39 в Selenium - Functional Testing
Вообще изменение реферера понадобилось, чтобы указать с какой страницы был произведен переход.
Почему-то в селениуме, когда я, например, в гугле нажимаю на какую-нибудь ссылку, то она открывается не в соседней вкладке, а в отдельном окне, при чем в нем не сохраняется откуда был произведен переход. Как это обойти не получилось придумать.
Отправлено автор: Maysenka 20 января 2014 - 11:13 в Selenium - Functional Testing
Мне это нужно, чтобы получить капчу со страницы. Когда я ее просто сохраняю, то генерится соершенно другое изображение.
Отправлено автор: Maysenka 20 января 2014 - 11:11 в Selenium - Functional Testing
Насколько я знаю, PHPBrowserMobProxy не позволяет писать собственные интерцепторы, при помощи которых можно модифицировать запросы или ответы.
Нужно либо писать на Java (я, кстати, про это буду рассказывать на selen-конфетке), либо использовать более "родной" для PHP прокси (какой -- не знаю).
Я вообще не очень поняла в чем заключается работа этого прокси. Как можно изменить благодаря ему реферер страницы. На многих форумах советуют PHPBrowserMobProxy, но не объясняют как им пользоваться
Отправлено автор: Maysenka 20 января 2014 - 11:09 в Selenium - Functional Testing
Поясните, что имеется в виду?Нет. Мне нужно куки, кот ставятся на конкретный сайт, но с других доменов.
Установить куки для другого домена невозможно (точнее говоря, если это возможно -- это уязвимость, баг в браузере).
Точнее говоря, для поддомена возможно, а для "совсем другого" домена -- нельзя.
Мне нужно получиться эти куки.
Но проблема уже решена. Нашелся обходной путь
Отправлено автор: Maysenka 20 января 2014 - 11:08 в Selenium - Functional Testing
А ошибок с FF не возникает?
У меня после того, как скрипт отработал, эррор:
org.openqa.selenium.WebDriverException: '[JavaScript Error: "a is null" ....
У меня все нормально было
Отправлено автор: Maysenka 14 января 2014 - 04:29 в Selenium - Functional Testing
Отправлено автор: Maysenka 12 ноября 2013 - 08:52 в Selenium - Functional Testing
Отправлено автор: Maysenka 12 ноября 2013 - 08:33 в Selenium - Functional Testing
ДаAutoIT?
Community Forum Software by IP.Board Русификация от IBResource
Лицензия зарегистрирована на: Software-Testing.Ru