Вы наверняка читали о том, что гарантированно найти все ошибки в сколь-нибудь сложной программе средствами тестирования невозможно. Равно как невозможно доказать, что ошибок в программе нет. Это в теории. А на практике некоторые тестировщики находят дефектов в программе больше, чем другие, в том числе они умеют находить весьма нетривиальные дефекты. Почему? Как им это удаётся? Что за секретные техники они применяют? Увы, никаких особых приёмов проектирования тестов, о которых не было бы написано в любой книжке, не существует. Эффективные тестировщики применяют те же самые техники, что и все остальные. Разница лишь в том, КАК они их применяют. На этом тренинге я не буду ничего говорить о том, как и в каком формате записывать тесты, я буду рассказывать только о том, как их придумывать. Мы постоянно будем держать в уме два противоборствующих фактора:
с одной стороны, тестов надо придумать достаточно много и они должны быть достаточно разнообразными, чтобы выявить как можно больше дефектов;
с другой стороны, тестов надо придумать как можно меньше, чтобы не делать лишней работы.
Онлайн-тренинг с практической работой, 10 занятий, начало 20 февраля.
Мы в очередной раз провели опрос про популярность языков программирования среди тестировщиков-автоматизаторов. И вновь, как и в прошлый раз, ожидаемо с большим отрывом победил язык Java. Но теперь Python и C# подобрались к лидеру уже ближе, проиграв не в три раза, а всего лишь в два :)
Но нельзя не признать, что инструменты разработки, создаваемые компанией Microsoft, эволюционируют семимильными шагами. Поэтому мы решили, что пришло время запустить тренинг "Программирование на C# для тестировщиков", аналогичный тренингу по языку Java.
Этот курс предназначен для обучения тестировщиков программированию на языке С# (для тех, кого интересует программирование на Java у нас есть другой курс).
Да, именно тестировщиков. Обучение программированию не сводится только к изучению языка программирования. Построение правильной архитектуры, использование фреймворков и библиотек, владение инструментами разработки и отладки -- это тоже часть “умения программировать”. Поэтому в этом курсе детально рассматриваются именно те возможности языка и вспомогательных библиотек, которые наиболее востребованы при разработке автотестов, в том числе при тестировании веб- и windows-приложений через пользовательский интерфейс.
Весь изучаемый материал будет демонстрироваться на одном сквозном примере -- мы будем разрабатывать на языке C# автоматизированные тесты для веб-приложения, используя Selenium WebDriver. Начав с простого теста, записанного “рекордером”, мы будем постепенно усложнять архитектуру тестового набора, добавлять и усиливать проверки в тестах, дополнять тесты генераторами тестовых данных. Основной акцент будет сделан не на алгоритмы, а на изучение различных полезных библиотек и фреймворков, а также шаблонов проектирования, позволяющих организоваэ ь код автоматизированных тестов таким образом, чтобы его было легко модифицировать и расширять.
Необходимо написать тест при выполнении которого происходит подсветка элементов. Тест работает, но почему то падает при нажатии на кнопку "manageFilter$ctl00$ctl19"
Вот код:
public class SampleHighlight {
public static void main(String[] args) throws InterruptedException {
EventFiringWebDriver driver = new EventFiringWebDriver(new InternetExplorerDriver());
driver.register(new ListenerThatHiglilightsElements("#FFFF00", 1, 300, TimeUnit.MILLISECONDS));
driver.get("http://localhost/test");
for (int i = 0; i < 1; i++) {
driver.findElement(By.id("loginContainer_username")).clear();
driver.findElement(By.id("loginContainer_username")).sendKeys("da");
driver.findElement(By.id("loginContainer_password")).clear();
driver.findElement(By.id("loginContainer_password")).sendKeys("da");
driver.findElement(By.name("loginContainer$ctl05")).click();
driver.findElement(By.id("tdImbButtonmenu_2")).click();
new Select(driver.findElement(By.id("manageFilter_ctl00_filterSiteList"))).selectByVisibleText("ES");
driver.findElement(By.name("manageFilter$ctl00$ctl19")).click(); --вот во время этого валится
driver.findElement(By.xpath("//a[text()='Logout']")).click();
driver.quit();
}
}
}
Ошибка:
Started InternetExplorerDriver server (32-bit)
2.44.0.0
Listening on port 34380
Exception in thread "main" org.openqa.selenium.WebDriverException: JavaScript error (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 98 milliseconds
Build info: version: '2.44.0', revision: '76d78cf', time: '2014-10-23 20:02:37'
тестируем через qtp дельфовый продукт. QTP контролы не находит :(
думаем использовать AutoItX3.dll
Помогите с примерами плиз
например нужно нажать кнопку "Войти" в окне "Вход"
Set oAutoIt = CreateObject("AutoItX3.Control")
дальше плыву.... :(
Вопрос, возможно покажется странным :) Но возможно ли с помощью Селениума и Мозиллы переместиться по истории на два шага назад.
Два раза back не предлагать! Не работает! Дело в том, что сей хитрый сайт действует следующим образом:
1. кликаем переход по ссылке
2. начинает грузиться нужная страничка.
3. вдруг где-то на сервере считается, что произошла ошибка и генерируется URL по которому перенаправляется браузер.
4. Пока браузер что-то крутит/куда-то идет, ВНЕЗАПНО, генерируется еще один (другой) урл на страницу с ошибкой, куда браузер также идет, но на этом останавливается - загрузилась страница с ошибкой.
Теперь если нажать "Назад", то переход идет по ссылке из пункта 3. И, соответственно, перетекает в пункт 4.
Даже два раза быстро нажать "Назад" - не поможет!
Если руками на пару секунд удерживать кнопку "Назад", чтобы показалась история, и щелкнуть на два шага назад, то можно попасть туда куда надо было по пункту 2.
Вот и вопрос: Возможно ли с помощью Селениума в Мозилле перескакивать по истории на несколько шагов СРАЗУ?