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

Selenium webdriver + Ant + Jenkins



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

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


Selenium webdriver + Ant + Jenkins
2015-12-02 13:04

Здравствуйте. Недавно поставил Jenkins + Ant + Selenium webdriver на Ubuntu
Все настроил билд собирается без ошибок. В build.xml  проставил все зависимости , экспортировал build.xml  из  Eclipse  ( Export ant buildfiles).  Дополнил уже имеющийся Build.xml на виртуалке с Jenkins, перенес на виртуалку plugins, lib, сам проект с тестами и прописал в build.xml  новый путь ко всем папкам и файлам. Поставил Selenium Grid  и подключил к нему  Selenium node на другой виртуалке с  Windows 7. Запустил Selenium hub и Selenium node . В настройках selenium hub показывается нода которую я подключил.
Тест выглядет так:


package com.example.tests;

import java.util.regex.Pattern;
import java.util.concurrent.TimeUnit;

import org.junit.*;

import static org.junit.Assert.*;
import static org.hamcrest.CoreMatchers.*;

import org.openqa.selenium.*;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.Select;
import org.openqa.selenium.remote.DesiredCapabilities;
import java.net.MalformedURLException;
import java.net.URL;
import org.openqa.selenium.remote.RemoteWebDriver;

public class Untitled4 {
  private WebDriver driver;
  private String baseUrl, nodeUrl;
  private boolean acceptNextAlert = true;
  private StringBuffer verificationErrors = new StringBuffer();

  @Before
  public void setUp() throws MalformedURLException {
    baseUrl = "google.com";
    nodeUrl = "http://192.168.128.115:5566/wd/hub";
    DesiredCapabilities capability = DesiredCapabilities.firefox();
    capability.setBrowserName("firefox");
    capability.setPlatform(Platform.VISTA);
    driver = new RemoteWebDriver(new URL(nodeUrl),capability);
    driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);

  }


  @Test
 
  
  
  public void testUntitled4() throws Exception {
    driver.get(baseUrl);
    
  }

 @After
  public void tearDown() throws Exception {
    driver.quit();
    String verificationErrorString = verificationErrors.toString();
    if (!"".equals(verificationErrorString)) {
      fail(verificationErrorString);
    }
  }

Не на jenkins  все работает. Тест выполняется на ноде.
Проблема заключается в следующем:  когда я запускаю билд в  jenkins  в консоле все проходит успешно , без единой ошибки и в конце выдает BUILD SUCCESSFUL. Однако сами тесты не запускаются.  Когда я делаю в самом коде теста ошибку и пытаюсь собрать билд в консоле пишет что в коде теста есть ошибка.
Заранее спасибо .



Школа Тест-Аналитика, онлайн-тренинг, начало 23 декабря
2015-12-02 14:54

Как-то раз, молодой тестировщик пришёл к более опытному и успешному с вопросом:

- Я так стараюсь, я так много тестирую, но всё равно я не успеваю протестировать всё!

Что же мне делать? Неужели, пропускать баги – это нормально?

- Нет, - отрешенно ответил коллега.

- Но что же тогда мне делать? Тестировать больше? Тестировать по ночам?

- Тоже нет, - уже менее спокойно продолжал свои ответы опытный тестировщик.

- Но как иначе? Как же мне тогда успевать тестировать всё?

- Ничем не могу помочь! - молвил гуру, и углубился в чтение сайта.

"Тест-анализ" - прочитал молодой человек на мониторе и подумал: "Вот эгоист, а? Нет бы нормально ответить!!!".

Чтобы делать свою работу лучше, а не больше, требуются качественные изменения, а не количественные. Но что делать, если способы для этих самых качественных изменений пока не известны? Если вы не знаете, какие техники помогут в вашем случае сократить количество тестов? Если вы не знакомы с инструментарием, который помогает экономить время на генерации тестовых наборов, на поддержке документации? В этом случае приходится увеличивать усилия, перерабатывая или расширяя команду, но получая на выходе крохотный прирост в результате.

Мы предлагаем уйти от этой порочной практики. Как сказал Стив Джобс, «работать надо не 12 часов, а головой». Поэтому, на курсе «Школа Тест-Аналитика» мы собрали и заботливо для вас упаковали только те знания, которые позволяют получить качественный прирост в результате. Что из этого получилось – посмотрите в Программе курса.

«Курс, практически, перевернул мое сознание в сфере тестирования. До него я ничего не слышала про тест-анализ, была только куча разной информации, плавающей где-то на поверхности…
В общем, ощущение, что у меня был сломан мозг, а мне его вправили

Один из отзывов на Школу Тест-Аналитика

Хотите записаться? Не торопитесь! Для начала, оцените, готовы ли вы к участию в курсе:

  • Курс рассчитан не на новичков, так что записывайтесь, только если у вас есть не менее 1-2 года активного стажа в тестировании
  • Помимо ознакомления с теорией, вас ждёт объёмная практическая часть – не стоит регистрироваться, если вы не сможете выделить на обучение как минимум 5-6 часов в неделю
  • Ознакомьтесь с отзывами выпускников, чтобы принять взвешенное решение
  • Посмотрите видео первого урока.

Если же у вас останутся любые вопросы – мы всегда на них с удовольствием ответим. Просто напишите нам на trainings@software-testing.ru

Посмотреть программу и условия участия в тренинге “Школа Тест-Аналитика”


Читать дальше

Все секреты и тайны Selenium 2.0, онлайн, начало 15 января
2015-12-02 14:56

Адаптированный онлайн-тренинг Алексея Баранцева (пять двухчасовых занятий) с домашней работой, консультациями тренера в закрытом форуме и скайп-группе.

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

Курс предназначен для опытных пользователей Selenium.

Мы предлагаем новый, совершенно уникальный тренинг про Selenium 2.0 как он есть, со всеми его достоинствами и недостатками!

  • тренинг полностью посвящен WebDriver, aka Selenium 2.0, потому что за ним будущее, никаких реминисценций в адрес Selenium RC и тем более в адрес Selenium IDE не будет!
  • минимум лирических отступлений на тему “что лучше – TestNG или JUnit” или “автоматизация в контексте Agile”,
  • только правда про Selenium, вся правда, и ничего кроме правды!

Более актуальной и полной информации вы не найдёте нигде – ни в официальной документации, ни в книгах, ни на других тренингах!

Почему мы уверены в этом?

Потому что автор и ведущий тренинга –- Алексей Баранцев:

  • является участником команды разработки Selenium,
  • знает инструмент не только снаружи, но и изнутри,
  • участвует в ряде коммерческих проектов, где занимается автоматизацией тестов при помощи Selenium,
  • автор и ведущий уже упомянутых ранее тренингов по Selenium (полная линейка, разные языки, разные уровни).
  • а также целого ряда тренингов, покрывающих самые разные области тестирования –- тест-дизайн, тестирование производительности, тестирование защищенности.

Вы получите ответы даже на самые каверзные вопросы, касающиеся Selenium!

Ну а если вам не нужна настолько подробная и глубокая информация про Selenium?

Не нужна сейчас – пригодится в будущем!

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

"А что делать, если я только начинаю заниматься автоматизацией? Будет ли мне полезен этот тренинг?"

Нет. Лучше для начала выбрать какой-нибудь из более простых учебных курсов: “Разработка тестов на Selenium 2.0 + Java”, “Разработка тестов на Selenium 2.0 + Python”, Разработка тестов на C# с использованием Selenium 2.0 или даже Selenium 2.0: стартовый уровень.

Подробная программа и условия участия


Читать дальше

требуется QA engineer
2015-12-02 15:16

Специалист по автоматизации тестирования
Кол-во мест: 2
Должностные обязанности: 

∙ Создание и поддержка автоматизированных тестов

∙ Создание различных утилит для тестирования
∙ Написание тест кейсов, тест плана.
Требования:
∙ Знание теории, принципов и методологии тестирования ПО
∙ Опыт автоматизация тестирования back-end от 3 лет
∙ Хорошее знание Groovy, Java, Gradle, Selenium Web Driver
∙ Хорошее понимание работы сетей
∙ Знание английского языка (письмо, устная речь)
∙ Умение работать с Linux в режиме командной строки (запуск программ, работа с пользователями, понимание прав доступа к файлам и папкам, запуск процессов)
∙ Сильный аналитический навык
∙ Cильный troubleshooting скилл
∙ Умение работать не только по готовым сценариям, но и самостоятельно формировать тест-кейсы и тест-планы
∙ Проактивность
∙ Ответственность, внимательность,обучаемость, инициативность.
Используемые технологии и инструменты:
∙ Groovy, Java, Jenkins, Gradle, Git, TestLink, Selenium.
Желательно знание:
∙ Telecom-протоколов и систем.
∙ Хорошие коммуникативные навыки.
Условия:
∙ Компания предоставляет полный социальный пакет
∙ Молодой коллектив, офис в центре Минска
∙ Все возможности для применения ваших способностей
∙ Работа в инновационной, технологическойкомпании
∙ Мы широко практикуем Agile/Scrum/XP
∙ Мы ценим творчество и прозрачность
∙ Мы занимаемся не только разработкой на заказ, но консультируем и создаём свои продукты.

Зарплата 1500-2000$



Не удается прочитать текст кнопки
2015-12-02 22:47

Не удается прочитать текст кнопки "Поиск в Google"

public class NavigateToAUrl {
	public static void main(String[] args){
		WebDriver driver = new FirefoxDriver();
		driver.get("https://www.google.com");
		WebElement searchButton = driver.findElement(By.name("btnK"));
		System.out.println(searchButton.getText());
	}
}

от языка не зависит (пробовал с англоязычной версии Google). Причем, не читает именно с Google, например, c Yahoo читает нормально. Почему так получается?



Как правильно передавать параметры из конфиг-файла в разные методы.
2015-12-03 00:59

День добрый.

В конфиг файле хранятся такие параметры (ну, это и есть конфиг файл  - "app.properties"):

implicitWait = 30
browser = firefox
login = 123
password = 123
 
В методе setUp я обращаюсь к этому файлу и беру оттуда данные о браузере и Url. Эти две переменные объявлены как 
static protected WebDriver driver;
static protected String baseUrl;
 
//инициализация браузера
	@BeforeMethod
	@BeforeSuite
	@Parameters ({"configFile"})
	public void setUp(@Optional String configFile) throws Exception {
	    if (configFile == null) {
	    	configFile = System.getProperty("configFile");
	    }
	    if (configFile == null) {
	    	configFile = System.getenv("configFile");
	    }
	    if (configFile == null) {
	    	configFile = "app.properties";
	    }
	
		Properties props = new Properties();
		try (FileInputStream fis = new FileInputStream("src\\com\\example\\tests1\\app.properties");
		InputStreamReader isr = new InputStreamReader(fis, "UTF-8")) {
			props.load(isr);
		}

	    baseUrl = props.getProperty("baseUrl", "http://lingualeo.com/");
	    //берется из файла значение baseUrl, если его нет, берется дефолтное значение
	    
	    String driverType = props.getProperty("browser", "firefox");
	    if ("firefox".equals(driverType)) {
	    	driver = new FirefoxDriver();
	    } else if ("ie".equals(driverType)) {
	    	driver = new InternetExplorerDriver();
	    } else if ("chrome".equals(driverType)) {
	    	driver = new ChromeDriver();
	    } else if ("opera".equals(driverType)) {
	    	driver = new OperaDriver();
	    } else {
	    	driver = new HtmlUnitDriver();
	    }
	    		
		driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
	  }

И теперь вопрос такой. Есть другой метод, в котором происходит ввод логина-пароля. Эти параметры тоже хранятся в когфиг-файле. Как работать с ними? 

Сейчас работает следующим образом:

protected void loginToPage(@Optional String configFile) throws FileNotFoundException, IOException {
	    Properties props = new Properties();
	    props.load(new FileReader(configFile));
		
		driver.findElement(By.id("headEnterBtn")).click();
	    driver.findElement(By.id("landingPopupEmailSign")).clear();
	    
	    String email1 = props.getProperty("login", "123");
	    driver.findElement(By.id("landingPopupEmailSign")).sendKeys(email1);
	    
	    driver.findElement(By.id("landingPopupPasswordSign")).clear();
	    String pass1 = props.getProperty("password", "123");
	    driver.findElement(By.id("landingPopupPasswordSign")).sendKeys(pass1);
	    
	    driver.findElement(By.id("landingPopupBtnSign")).click();
	}

т.е. опять происходит чтение из файла (по сути, повторение кода). 

 

и вызов этого метода тоже работает только есть прописать ему имя конфиг файла:

(собственно сам тест):

package com.example.testwithrefactoring;

import java.util.regex.Pattern;

//import org.junit.*;
import static org.junit.Assert.*;
import static org.hamcrest.CoreMatchers.*;
import org.openqa.selenium.*;
import org.openqa.selenium.support.ui.Select;
import org.testng.annotations.Optional;
import org.testng.annotations.Test;

public class AddWordToDictionary extends BaseClass{
  @Test
  public void addWordToDictionaryMethod() throws Exception {
    goToLoginPage(baseUrl);
    loginToPage("app.properties");
    addWord("test1");
  }
}

Как правильно передавать параметры из конфиг файла в разные методы?

 

 



© 2010 | Software-Testing.Ru


В избранное