- Форум тестировщиков
- → Публикации DennisM
Публикации DennisM
55 публикаций создано DennisM (учитываются публикации только с 06 июня 2023)
По типу контента
По пользователю
#149316 Что дает использование PageFactory?
Отправлено автор: DennisM 11 марта 2016 - 20:33 в Selenium - Functional Testing
По опыту оно приносит больше вреда чем пользы. На соседнем проекте использовали это. Потом посмотрели на наш автомейшн и забили на PageFactory.
PageObject надо использовать, PageFactory нет..
#149295 Чтение Cucumber feature file из TFS
Отправлено автор: DennisM 10 марта 2016 - 19:47 в Автоматизированное тестирование
Ого, сколько мы знаем;)
Нормальный боевой набор. :)
#149297 Чтение Cucumber feature file из TFS
Отправлено автор: DennisM 10 марта 2016 - 20:16 в Автоматизированное тестирование
То есть, у вас есть TFS в котором хранятся тест-кейсы, которые вы хотите выполнять некоторой внешней системой, которая никак не интегрируется с TFS напрямую и дирижировать всем этим поставите дженкинс....
Во! сами объяснили. Прямой интеграции нет, соответственно нужна выгрузка и выполнение. Выполнение не проблема. Выгрузка - надо копать API конкретных систем TFS и Jira. в Jira точно есть все что нужно, а вот в TFS - гуглите, читайте доки, ищите API. Курите msdn.
Вот нашлось с ходу, то есть API есть.
https://msdn.microso...(v=vs.120).aspx
ЗЫ: тесты все-таки выполняют или исполняют, не извлекают.
ЗЗЫ: жутко интересно, какая фраза на английском на русский у вас перевелась как извлечение теста?
Вот шаг между TFS и кукумбером вызывал затруднения.
Если курить мануалы, то и форум не нужен. ;) Думал у кого-то был такой опыт.
Бум курить...
Мой родной язык русский. Я сам оригинально из РБ. :)
Наши тут вроде так по русски и говорят друг-другу "извлечь" - execute. хм... Не задумывался...
Хотя в данном контексте их надо выколупать из TFS...
#149294 Чтение Cucumber feature file из TFS
Отправлено автор: DennisM 10 марта 2016 - 19:46 в Автоматизированное тестирование
Выйдите из своего контекста, войдите в положение людей ни разу в вашем контексте не бывших и спросите еще раз.
Эээ...Мне обьяснить что такое Selenium Webdriver, https://en.wikipedia...enium_WebDriverЧто такое Cucumber BDD https://en.wikipedia...mber_(software)Что такое Jenkins, https://en.wikipedia...kins_(software)Что такое TFS (Team Foundation Server), https://en.wikipedia...undation_ServerЧто такое Maven, https://en.wikipedia...ki/Apache_MavenИ потом задавать вопрос? :)
Только давайте без нервов :) Оригинальный вопрос действительно сформулирован непонятно.
Есть TFS. Там тесткейс написан в формате Gherkin.
Возможно-ли как-то его читать c TFS и извлекать селениум тесты с кукумбером?
То же самое может быть и с Jira.
Это чтобы мануалы писали тесты прямо в TFS или Jira. Автомейшн читал оттуда по расписанию и запускал.
#149299 Чтение Cucumber feature file из TFS
Отправлено автор: DennisM 10 марта 2016 - 20:29 в Автоматизированное тестирование
Этот вариант не прокатит. Фреймворк написан на Java.
#149285 Чтение Cucumber feature file из TFS
Отправлено автор: DennisM 10 марта 2016 - 14:39 в Автоматизированное тестирование
Выйдите из своего контекста, войдите в положение людей ни разу в вашем контексте не бывших и спросите еще раз.
Эээ...
Мне обьяснить что такое Selenium Webdriver, https://en.wikipedia...enium_WebDriver
Что такое Cucumber BDD https://en.wikipedia...mber_(software)
Что такое Jenkins, https://en.wikipedia...kins_(software)
Что такое TFS (Team Foundation Server), https://en.wikipedia...undation_Server
Что такое Maven, https://en.wikipedia...ki/Apache_Maven
И потом задавать вопрос? :)
#149254 Чтение Cucumber feature file из TFS
Отправлено автор: DennisM 09 марта 2016 - 19:15 в Автоматизированное тестирование
Можно-ли читать тест-кейс из TFS из извлекать его через Cucumber так же как из .feature файла?
Например тест кейс записан в gherkin формате:
Given ...
When ...
Then ...
Во время билда, перед извлечением тестов взять TFS тест кейс, записать в локальную директорию и извлечь с помощью Cucumber?
#148950 Помогите новичку!
Отправлено автор: DennisM 29 февраля 2016 - 14:34 в Selenium - Functional Testing
//button/div/span[text() = 'Войти' or text() = 'Войтi' or text()='ENTER']
по вкусу добавь еще "or text()='bla-bla-Language'" :)
проверил страницу. Там уже новые слова.
//button/div/span[text() = 'Войти' or text() = 'Увійти' or text()='Log In']
и страница кривая. Эти кнопки ХЗ где и не видны... Но XPath работает. ;)
#150050 Поиск элемента, если в class содержится несколько слов, разделенных пр
Отправлено автор: DennisM 04 апреля 2016 - 14:26 в Selenium - Functional Testing
//div[@class='headline']//h1
//div[contains(@class,'headline')]//h1[contains(@class,'title')]
//div[contains(@class,'product-card')]//h1[contains(@class,'title')]
И т.д.... :)
#148722 Ошибка в Selenium WebDriver
Отправлено автор: DennisM 19 февраля 2016 - 16:30 в Selenium - Functional Testing
Поддерживаю про XPath.
такое дело: "//table/tbody/tr[1]/td[3]//table/tbody/tr/td[5]" самое ужасное что можно придумать.
Вбей это в Firepath и оцени сколько элементов нашлось.
или проверь в коде типа:
int elements = driver.findElements(By.xpath("//table/tbody/tr[1]/td[3]//table/tbody/tr[1]/td[5]")).size();
если более 1, то кури мануал по Xpath, или давай сюда хтмл страницы.
#152310 Не скроллится экран при попытке клика на элемент
Отправлено автор: DennisM 29 июня 2016 - 15:39 в Selenium - Functional Testing
Были такие грабли. Скроллится отлично этим:
import org.openqa.selenium.interactions.Actions;
***
Actions mouse = new Actions(driver);
mouse.moveToElement(driver.findElement(element_locator)).build().perform();
#151551 Не находится элемент для события click().
Отправлено автор: DennisM 27 мая 2016 - 16:08 в Selenium - Functional Testing
Код:
waitmis.Until(ExpectedConditions.ElementExists(By.XPath("//html/body/div[1]/div[1]/ul/li[1]/ul/li[2]/a")));var search = Driver.FindElement(By.XPath("//html/body/div[1]/div[1]/ul/li[1]/ul/li[2]/a"));
За такие XPath нужно линейкой по пальцам бить!
#151679 Локатор для кнопки попапа с динамическим ID
Отправлено автор: DennisM 02 июня 2016 - 13:36 в Selenium - Functional Testing
Вот что лень делает с тестировщиками... ID еще подавай с голубой каемочкой. Девелоперам без вас хватает мозготр!@%а. ;)
#150431 Локатор для кнопки попапа с динамическим ID
Отправлено автор: DennisM 14 апреля 2016 - 13:47 в Selenium - Functional Testing
Нефиг тут бюрократию ворошить. Хуже будет!Вот несколько примеров://div[contains(@id, 'popup') AND @class="buttons"]/button[text()='OK']
//div[@class="buttons"]/button[text()='OK']
//div[@class="buttons"]/button[1]
Спасибо за примеры! По всем 3-м к сожалению находится ещё 3-5 вариантов, соответственно локатор ссылается не на то что нужно. Пока честно говоря не знаю что делать, т.к. сроки есть, а разумным решением видится действительно продавливание разработчиков в сторону статичных id
я не вижу кода всей страницы. Можно было бы сочинить что-нибудь точнее.
#150429 Локатор для кнопки попапа с динамическим ID
Отправлено автор: DennisM 14 апреля 2016 - 13:38 в Selenium - Functional Testing
Окей, продолжаем увлекательный забег по граблям :)Нефиг тут бюрократию ворошить. Хуже будет!
У меня на проекте нет вообще id и всё работает норм. Те кто требуют id или неопытные или ленивые... ;)
#150432 Локатор для кнопки попапа с динамическим ID
Отправлено автор: DennisM 14 апреля 2016 - 13:52 в Selenium - Functional Testing
Вполне может быть что у тебя в коде несколько окон и на данный момент теста только одно видимое. Добавляем условие contains(@style, 'display: block')
//div[contains(@id, 'popup') AND contains(@style, 'display: block')]//div[@class="buttons"]/button[text()='OK']
#150427 Локатор для кнопки попапа с динамическим ID
Отправлено автор: DennisM 14 апреля 2016 - 13:16 в Selenium - Functional Testing
Нефиг тут бюрократию ворошить. Хуже будет!
Вот несколько примеров:
//div[contains(@id, 'popup') AND @class="buttons"]/button[text()='OK']
//div[@class="buttons"]/button[text()='OK']
//div[@class="buttons"]/button[1]
#148289 Какой максимум тестов можно кинуть в Selenium GRID в параллели?
Отправлено автор: DennisM 02 февраля 2016 - 17:06 в Selenium - Functional Testing
Заметил в отчете что фейлятся тесты которые уже прошли. Грид выполнил тест на одной ноде и бросил на второй? О_о
Test Name Duration Age
........
.......
Test6_StackMenu[3] 2 min 2 sec 1
Test6_StackMenu[3] 0 ms 1
Test6_StackMenu[0] 7 min 19 sec 1
Test6_StackMenu[0] 0 ms 1
......
.....
#148254 Какой максимум тестов можно кинуть в Selenium GRID в параллели?
Отправлено автор: DennisM 01 февраля 2016 - 18:06 в Selenium - Functional Testing
Интерестно то, что если запустить всё на одну Ноду, то тесты проходят нормально. Похоже Грид не может аккуратно раскидать тесты на 2 ноды.
Для ограничения нагрузки на Грид, делал так же ограничение в POM.XML. Не помогло...
Вижу решение только в уменьшении нагрузки (делать больше Джабс на Jenkins с меньшим количеством тестов в каждом) или раннить только на одной ноде. Но тогда теряется смысл Грида - раскидать тесты в параллели для уменьшения времени.
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.19.1</version>
<configuration>
<includes>
<include>**/StackChecking.java</include>
</includes>
<parallel>all</parallel>
<threadCount>15</threadCount>
<argLine>-Xmx512m -XX:MaxPermSize=256m</argLine>
</configuration>
</plugin>
</plugins>
</build>
#148286 Какой максимум тестов можно кинуть в Selenium GRID в параллели?
Отправлено автор: DennisM 02 февраля 2016 - 14:03 в Selenium - Functional Testing
<threadCount>15</threadCount>Судя по конфигурации, у вас по 10 браузеров разного типа, т.е. 15 потоков это на 5 больше, чем может выделить хаб, при условии, если вы используете стандартный паттерн WebDriverFactory.
Т.е. вам нужно делать количество потоков не больше, чем указано здесь:
-browser "browserName=chrome, maxInstances=10
Даже если там вот так:
<parallel>all</parallel>
<useUnlimitedThreads>true</useUnlimitedThreads>
<parallelOptimized>true</parallelOptimized>
Результат тот же. На одной ноде всё ОК, на одновременно 2 начинает падать в случайном порядке.
Иногда в логе просто это:
Stacktrace
java.lang.NullPointerException
С одной нодой этот тест проходит.
#148291 Какой максимум тестов можно кинуть в Selenium GRID в параллели?
Отправлено автор: DennisM 02 февраля 2016 - 21:47 в Selenium - Functional Testing
Да.... Похоже JUnit (Parameterized) не работает коректно с Selenium Grid...
#148198 Какой максимум тестов можно кинуть в Selenium GRID в параллели?
Отправлено автор: DennisM 29 января 2016 - 16:01 в Selenium - Functional Testing
Есть Datadriven тесты и их много. Один сет на 200 второй на 500 тестов. При запуске 200 и более в параллели Grid медленно умирает. На нодах появляются браузеры и никакого движения внутри. При запуске ~150 в параллели вроде всё работает но много тестов валятся не начавшись. Лимит на 2 нодах по 10 браузеров, т.е. 130 в ожидании сразу висят.
Error Message
Error forwarding the new session Error forwarding the request Read timed out
Command duration or timeout: 1110.85 seconds
Build info: version: '2.49.0', revision: '365eeb44deba2067b1761c8862ef21d55250e063', time: '2016-01-13 11:57:39'
System info: host: 'Jenkins', ip: '192.168.3.220', os.name: 'Windows 8.1', os.arch: 'x86', os.version: '6.3', java.version: '1.8.0_65'
Driver info: org.openqa.selenium.remote.RemoteWebDriver
Stacktrace
org.openqa.selenium.WebDriverException:
Error forwarding the new session Error forwarding the request Read timed out
Command duration or timeout: 1110.85 seconds
Build info: version: '2.49.0', revision: '365eeb44deba2067b1761c8862ef21d55250e063', time: '2016-01-13 11:57:39'
System info: host: 'Jenkins', ip: '192.168.3.220', os.name: 'Windows 8.1', os.arch: 'x86', os.version: '6.3', java.version: '1.8.0_65'
Driver info: org.openqa.selenium.remote.RemoteWebDriver
at com.expion.test.Test.AllServers.Test1(AllServers.java:297)
Caused by: org.openqa.grid.common.exception.GridException: Error forwarding the new session Error forwarding the request Read timed out
Конфигурация:
Java + Selenium 2.50.0 (WebDriver) + JUnit(Parameterized) + Maven(POM Parallel) -> Jenkins :)
Grid Hub:
java -jar c:\Jenkins\SeleniumGrid\selenium-server-standalone-2.50.0.jar -port 4444 -role hub -nodeTimeout 1000 -browserTimeout 10000
Grid Node:
java -Dwebdriver.chrome.driver=c:\Jenkins\SeleniumGrid\chromedriver.exe -Dwebdriver.ie.driver=c:\Jenkins\SeleniumGrid\IEDriverServer.exe -jar c:\Jenkins\SeleniumGrid\selenium-server-standalone-2.50.0.jar -role node -hub http://192.168.3.220...4/grid/register -port 5555 -maxSession 10 -browser "browserName=firefox, version=exp_auto_1, maxInstances=10" -browser "browserName=iexplore, maxInstances=10" -browser "browserName=chrome, maxInstances=10"
#148255 Какой максимум тестов можно кинуть в Selenium GRID в параллели?
Отправлено автор: DennisM 01 февраля 2016 - 18:11 в Selenium - Functional Testing
Машины мощщщные? где тесты запускаете?
Максимум 5-6 потоков надо ставить.
Все виртуалки. По 8 CPU дано каждой. С 10 браузерами в параллели нагрузка 70-80%
#149169 Как найти то чего нет?
Отправлено автор: DennisM 04 марта 2016 - 14:34 в Автоматизированное тестирование
Можно написать что-нибудь свое...
public boolean CheckForNotElement(By by, String FailText) throws Exception
{
driver.manage().timeouts().implicitlyWait(1, TimeUnit.SECONDS);
if (!driver.findElement(by).isDisplayed()){
System.out.println(FailText);
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
return false;
} else
{
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
return true;
}
}
#152374 Как записать действия без использования плагина рекордера?
Отправлено автор: DennisM 01 июля 2016 - 17:50 в Selenium - Functional Testing
Без рекордера только на бумажку шариковой ручкой (карандашом если для дебага).
- Форум тестировщиков
- → Публикации DennisM
- Политика Конфиденциальности
- Правила форума ·