Этот вариант не прокатит. Фреймворк написан на Java.
- Форум тестировщиков
- → Публикации DennisM
55 публикаций создано DennisM (учитываются публикации только с 24 мая 2023)
Отправлено автор: DennisM 10 марта 2016 - 20:29 в Автоматизированное тестирование
Этот вариант не прокатит. Фреймворк написан на Java.
Отправлено автор: DennisM 10 марта 2016 - 20:16 в Автоматизированное тестирование
То есть, у вас есть TFS в котором хранятся тест-кейсы, которые вы хотите выполнять некоторой внешней системой, которая никак не интегрируется с TFS напрямую и дирижировать всем этим поставите дженкинс....
Во! сами объяснили. Прямой интеграции нет, соответственно нужна выгрузка и выполнение. Выполнение не проблема. Выгрузка - надо копать API конкретных систем TFS и Jira. в Jira точно есть все что нужно, а вот в TFS - гуглите, читайте доки, ищите API. Курите msdn.
Вот нашлось с ходу, то есть API есть.
https://msdn.microso...(v=vs.120).aspx
ЗЫ: тесты все-таки выполняют или исполняют, не извлекают.
ЗЗЫ: жутко интересно, какая фраза на английском на русский у вас перевелась как извлечение теста?
Отправлено автор: DennisM 10 марта 2016 - 19:47 в Автоматизированное тестирование
Ого, сколько мы знаем;)
Нормальный боевой набор. :)
Отправлено автор: 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И потом задавать вопрос? :)
Только давайте без нервов :) Оригинальный вопрос действительно сформулирован непонятно.
Отправлено автор: DennisM 10 марта 2016 - 14:39 в Автоматизированное тестирование
Выйдите из своего контекста, войдите в положение людей ни разу в вашем контексте не бывших и спросите еще раз.
Отправлено автор: DennisM 09 марта 2016 - 19:15 в Автоматизированное тестирование
Можно-ли читать тест-кейс из TFS из извлекать его через Cucumber так же как из .feature файла?
Например тест кейс записан в gherkin формате:
Given ...
When ...
Then ...
Во время билда, перед извлечением тестов взять TFS тест кейс, записать в локальную директорию и извлечь с помощью Cucumber?
Отправлено автор: DennisM 04 марта 2016 - 14:34 в Автоматизированное тестирование
Отправлено автор: DennisM 04 марта 2016 - 14:28 в Selenium - Functional Testing
Лучше покажите страницу, где есть демка или пример этого редактора. Очень сложно по неполному куску HTML-кода давать какие-то советы.
Не выйдет... Эта форма находится на страницах после логина. Шерить пароли не могу.
Отправлено автор: DennisM 04 марта 2016 - 14:22 в Selenium - Functional Testing
Мне на практике было удобнее не фичи выбирать, а фильтровать тесты по тэгам.
Тэг можно навесить как на отдельный тест, так и на фичу. В итоге, в параметре features указываешь корневую папку, где лежит вообще всё. А дополнительно в командной строке в cucumber.options укаываешь нужные тэги.
Важная особенность: ключей "--tags" может быть несколько, а в одном ключе можно указать несколько тэгов через запятую. Так вот, при перечислении в одном ключе выборки объединяются (OR), а для разных ключей применяется пересечение (AND). В доках этого не видел, выяснил экспериментально.
Отправлено автор: DennisM 03 марта 2016 - 19:41 в Selenium - Functional Testing
-------
Отправлено автор: DennisM 02 марта 2016 - 20:02 в Selenium - Functional Testing
В ff этот же скрипт отрабатывает полностью, так же как и ранее в хромдрайвере
После обновления Хрома вы обновили сам WebDriver и chromedriver.exe?
Отправлено автор: DennisM 02 марта 2016 - 16:27 в Selenium - Functional Testing
Да. Я создал .bat файл для запуска с админскими правами. И проблем никаких. ;)
Также Jenkins скидывает всё свое барахло в папку юзера. Можно указать свое место.Мой Start_Jenkins.bat файл выглядит так:SET JENKINS_HOME=C:\Jenkins\.jenkinsjava -jar jenkins.war
Отлично, всё ясно!
Я так же попробовал, но появилась одна проблема:
Jenkins, который запускался через службы, хранил все свои настройки в папке "C:\Program Files (x86)\Jenkins".
А Jenkins, который запускается через java -jar jenkins.war, смотрит настройки в папке "C:\Users\akorsakov\.jenkins".
Вопрос: как мне сделать так, чтобы во втором случае настройки смотрелись из папки "C:\Program Files (x86)\Jenkins", а не "C:\Users\akorsakov\.jenkins"???
Достаточно ли для этого запускать так:
SET JENKINS_HOME=C:\Program Files (x86)\Jenkins
???
Отправлено автор: DennisM 02 марта 2016 - 15:00 в Selenium - Functional Testing
Jenkins как сервис запущен или запускал jenkins.war из коммандной строки?
Windows не разрешает сервисам запускать другие программы как Firefox.
Запусти
java -jar jenkins.war
как администратор.
Jenkins запущен был, как сервис.
Удалось решить проблему путём создания Новой среды сборки в Настройках Jenkins.
Стандартный "мастер" отключил, создал новый узел Autotest, выставил Способ запуска - "Let Jenkins control this Windows slave as a Windows service". Прописал Логин/Пароль и нужный хост.
Автотесты, кажется, стали прогоняться так, как если бы их запустил прописанный пользователь. Разрешение экрана теперь, вроде бы, нормальное 1920*1080.
>>> Windows не разрешает сервисам запускать другие программы как Firefox.
Плохо. А что делать? Всегда запускать jenkins.war из коммандной строки?
Да. Я создал .bat файл для запуска с админскими правами. И проблем никаких. ;)
Отправлено автор: DennisM 02 марта 2016 - 14:57 в Selenium - Functional Testing
Селениум не может ввести техт в <div id="messageDiv"> , а textarea скрыта...
Что значит не может ввести ? Ошибка какая-то происходит.
И ты переключаешься во фрейм ?
driver.switchTo().frame
Отправлено автор: DennisM 01 марта 2016 - 18:02 в Selenium - Functional Testing
Отправлено автор: DennisM 01 марта 2016 - 17:49 в Selenium - Functional Testing
Jenkins как сервис запущен или запускал jenkins.war из коммандной строки?
Windows не разрешает сервисам запускать другие программы как Firefox.
Запусти
java -jar jenkins.war
как администратор.
Отправлено автор: 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 работает. ;)
Отправлено автор: 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, или давай сюда хтмл страницы.
Отправлено автор: DennisM 19 февраля 2016 - 16:18 в Selenium - Functional Testing
Если ничего не помогает, убиваем жестко. :)
Извлечь комманду:
taskkill /f /im firefox.exe
или
taskkill /f /im chrome.exe
или
taskkill /f /im iexplorer.exe
Метод для этого:
public String execCmdCommand(String command){StringBuffer output = new StringBuffer();Process p;try {p = Runtime.getRuntime().exec(command);p.waitFor();BufferedReader reader =new BufferedReader(new InputStreamReader(p.getInputStream()));String line = "";while ((line = reader.readLine())!= null) {output.append(line + "\n");}} catch (Exception e) {e.printStackTrace();}return output.toString();}
это всё понятно, но как выбрать именно нужный экземпляр? тесты то раннятся в параллель и висит несколько инстансов
Для этого надо указывать PID (Process ID)
taskkill /pid 1230
https://technet.micr...y/bb491009.aspx
Вот как достать PID из текущего WebDriver теста в JAVA нужно поискать... Например:
http://stackoverflow...hed-by-selenium
Или просто после всех тестов убивай все оставшиеся браузеры.
Отправлено автор: DennisM 18 февраля 2016 - 14:52 в Selenium - Functional Testing
Бывает что на странице элементы не Select и не могут инициализироваться пока не выпадут из меню. В селениуме есть Actions.
Webelement menu= driver.findElement(By.xpath("//div[@class='меню.Иконка из которой всё выпадает']/a")); //меню. Иконка из которой всё выпадает
Actions mouse = new Actions(driver);
//Двигаем мышь на меню и зависаем над ним. Меню вываливается.
mouse.moveToElement(menu).build().perform();
//mouse.moveToElement(menu).click().build().perform(); - если надо кликнуть а не висеть над меню
//Кликаем по опции из списка.
Webelement item= driver.findElement(By.xpath("//div[@class='Элемент меню из списка']/a")); //Элемент меню из списка
mouse.moveToElement(item).click().build().perform();
//или тут уже сам Webdriver может найти и кликнуть
//item.click();
Подробнее:
https://selenium.goo...ns/Actions.html
Отправлено автор: DennisM 18 февраля 2016 - 14:33 в Selenium - Functional Testing
При driver.close() просто закрывается текущее окно и всё, а там уже сам браузер пусть решает, что ему делать.
Зато при driver.quit() закрываются все окна браузера и останавливается процесс браузера. В операционной системе Windows для этого используется как раз taskkill. Именно поэтому второй раз убивать его нет смысла. Дважды не казнят :)
webDriver.Close() – Close() method closes the browser window that the driver has focus of.
webDriver.Quit() – Calls dispose; in other terms quit() method calls dispose method which will turn all the browser windows closed and ends webdriver session.
webDriver.Dispose() – Dispose() method closes all browser windows and safely ends the session.
taskkill - убивает всё не safely. :)
Отправлено автор: DennisM 17 февраля 2016 - 14:13 в Selenium - Functional Testing
Там и так taskkill выполняется, после этого Selenium 10 секунд ждёт завершения процесса. Судя по всему, этого времени просто не хватает, но в конце концов процесс всё таки останавливается. Так что необходимости повторно делать ему taskkill я не вижу.
Я не знаю что делает селениум при driver.close() . Похоже просто пытается закрыть корректно. Но taskkill убивает браузер всегда. Не закрывает аппликашку а убивает именно процесс.
Отправлено автор: DennisM 16 февраля 2016 - 16:00 в Selenium - Functional Testing
Если ничего не помогает, убиваем жестко. :)
Извлечь комманду:
taskkill /f /im firefox.exe
или
taskkill /f /im chrome.exe
или
taskkill /f /im iexplorer.exe
Метод для этого:
Отправлено автор: DennisM 16 февраля 2016 - 15:10 в Selenium - Functional Testing
import org.apache.commons.lang3.time.StopWatch;
....
StopWatch timer = new StopWatch();
timeout = 20; //sec
....
timer.start();
driver.(to-do bla bla); // :)
new WebDriverWait(driver, timeout).until(ExpectedConditions.presenceOfElementLocated(elementsToWait));
timer.stop();
System.out.println("\nTime 1 : " + timer.getTime() + " milliseconds <<<<<--------------------------------<<<<<<");
timer.reset();
timer.start();
driver.(to-do bla bla); // :)
new WebDriverWait(driver, timeout).until(ExpectedConditions.presenceOfElementLocated(elementsToWait));
timer.stop();
System.out.println("\nTime 2: " + timer.getTime() + " milliseconds <<<<<--------------------------------<<<<<<");
timer.reset();
....
Отправлено автор: DennisM 02 февраля 2016 - 21:47 в Selenium - Functional Testing
Да.... Похоже JUnit (Parameterized) не работает коректно с Selenium Grid...
Community Forum Software by IP.Board Русификация от IBResource
Лицензия зарегистрирована на: Software-Testing.Ru