Добрый день. Использую Selenium Webdriver + Node js. Из node js запускаю первый тест, в котором открываю страницу, ввожу логин+пароль, происходит переход на главную страницу приложения, получение куки, запись куки в файл и прописываю модуль для запуска второго теста.
Во втором тесте происходит открытие второго окна, прописываю открытие главной страницы + устанавливаю ранее добытые куки. Вместо главной страницы, открывает страницу авторизации. Пробовала прописывать ожидания, не помогло.
Подскажите, пожалуйста, в чем может быть дело?
Код теста 1:
"use strict";
var webdriver = require('selenium-webdriver');
var browser = new webdriver.Builder().usingServer().withCapabilities({'browserName': 'chrome' }).build();
Проведение ручного(функционального) тестирования по плану.
Проведение нагрузочного тестирования и тестирования отказоустойчивости.
Создание планов для функционального, нагрузочного тестирования и тестирования отказоустойчивости.
Разбор результатов автотестов.
Регистрация и сопровождение найденных ошибок в баг-трекинговой системе.
Внесение доработок в существующий фреймворк для автотестов.
Требование:
Знание операционных систем семейства Linux (Fedora, Centos) на уровне уверенного пользователя(установка пакетов из репозитория, управление сервисами в автозагрузке, написание bash скриптов для запуска сервисов, настройка параметров локальной сети).
Знание основ построения тестов планов для функционального, нагрузочного и других видов тестирования.
Знание основ Python 2.7 (модули PyTest, subprocess, threading, re, os)
Опыт работы с баг-трекинг системами(Redmine, Jira, Bugzilla)
Преимуществом будут:
Опыт работы с openstack на уровне уверенного пользователя.
Опыт работы с Testlink и его модификация(PHP + Javascript).
Опыт работы с системой контроля версий Git.
Условия:
Образование: Законченное высшее
Оформление в соответствии с ТК РФ;
Оплачиваемый отпуск и больничный;
Молодой дружный коллектив;
Размер заработной платы обсуждается с успешными кандидатами;
График работы: 10.00-18.30;
Офис расположен в шаговой доступности от ст. метро (центр).
В веб-приложении при удалении позиции из списка вылезает confirm-окошко, требующее подтверждения действия. В коде автотеста обрабатывающий окошко участок выглядит следующим образом:
SetMethods.ClickElement(By.Id(General.StitchId(button_combine, childPosition))); //клик по кнопке удаления записи
WaitUntilSmth.WaitLittle.Until(ExpectedConditions.AlertIsPresent()); //ждем окошко
Driver.browser.SwitchTo().Alert().Accept();
Два дня назад все тесты выполнялись без ошибок. Вчера на локальной машине тест начал падать на ExpectedConditions.AlertIsPresent() со следующей ошибкой:
The HTTP request to the remote WebDriver server for URL http://localhost:54623/session/4d597cd674e654ace5ac79c9a516cd61/alert_text timed out after 60 seconds.
System.Exception {OpenQA.Selenium.WebDriverException}
Stacktrace:
OpenQA.Selenium.WebDriverException : The HTTP request to the remote WebDriver server for URL http://localhost:55632/session/b4277da23ac26cc6ce309e5a35c231a8/alert_text timed out after 60 seconds.
----> System.Net.WebException : Запрос был прерван: Время ожидания операции истекло.
в OpenQA.Selenium.Remote.HttpCommandExecutor.CreateResponse(WebRequest request)
в OpenQA.Selenium.Remote.HttpCommandExecutor.Execute(Command commandToExecute)
в OpenQA.Selenium.Remote.DriverServiceCommandExecutor.Execute(Command commandToExecute)
в OpenQA.Selenium.Remote.RemoteWebDriver.Execute(String driverCommandToExecute, Dictionary`2 parameters)
в OpenQA.Selenium.Remote.RemoteTargetLocator.Alert()
в OpenQA.Selenium.Support.UI.ExpectedConditions.<AlertIsPresent>b__4c(IWebDriver driver)
в OpenQA.Selenium.Support.UI.DefaultWait`1.Until[TResult](Func`2 condition)
в Expo2.Utility.General.AcceptAlert() в g:\Git\expo-2\Tests\NewSeleniumTests\Expo2\Utility\General.cs:строка 144
в Expo2.Tests.Catalogs.Support.DeleteChild(String Name, String subMenu, String subSubMenu, String elementText, Int32 childNumber, String[] button_combine) в g:\Git\expo-2\Tests\NewSeleniumTests\Expo2\Tests\Catalogs\Support.cs:строка 143
в Expo2.Tests.Catalogs.ActivitiesTest.DeleteChild(String elementText, Int32 childNumber) в g:\Git\expo-2\Tests\NewSeleniumTests\Expo2\Tests\Catalogs\ActivitiesTest.cs:строка 123
в Expo2.Tests.Catalogs.ActivitiesTest.FullTestActivities() в g:\Git\expo-2\Tests\NewSeleniumTests\Expo2\Tests\Catalogs\ActivitiesTest.cs:строка 181
--WebException
в System.Net.HttpWebRequest.GetResponse()
в OpenQA.Selenium.Remote.HttpCommandExecutor.CreateResponse(WebRequest request)
При этом при деплое на тестовый сервер все тесты по-прежнему выполняются без нареканий. На локальных машинах падают.
Изменения в тесты не вносились, разработчики ничего не правили.
Мы в очередной раз провели опрос про популярность языков программирования среди тестировщиков-автоматизаторов. И вновь, как и в прошлый раз, ожидаемо с большим отрывом победил язык Java. Но теперь Python и C# подобрались к лидеру уже ближе, проиграв не в три раза, а всего лишь в два :)
Но нельзя не признать, что инструменты разработки, создаваемые компанией Microsoft, эволюционируют семимильными шагами. Поэтому мы решили, что пришло время запустить тренинг "Программирование на C# для тестировщиков", аналогичный тренингу по языку Java.
Этот курс предназначен для обучения тестировщиков программированию на языке С# (для тех, кого интересует программирование на Java у нас есть другой курс).
Да, именно тестировщиков. Обучение программированию не сводится только к изучению языка программирования. Построение правильной архитектуры, использование фреймворков и библиотек, владение инструментами разработки и отладки -- это тоже часть “умения программировать”. Поэтому в этом курсе детально рассматриваются именно те возможности языка и вспомогательных библиотек, которые наиболее востребованы при разработке автотестов, в том числе при тестировании веб- и windows-приложений через пользовательский интерфейс.
Весь изучаемый материал будет демонстрироваться на одном сквозном примере -- мы будем разрабатывать на языке C# автоматизированные тесты для веб-приложения, используя Selenium WebDriver. Начав с простого теста, записанного “рекордером”, мы будем постепенно усложнять архитектуру тестового набора, добавлять и усиливать проверки в тестах, дополнять тесты генераторами тестовых данных. Основной акцент будет сделан не на алгоритмы, а на изучение различных полезных библиотек и фреймворков, а также шаблонов проектирования, позволяющих организоваэ ь код автоматизированных тестов таким образом, чтобы его было легко модифицировать и расширять.
Онлайн-тренинг Алексея Баранцева, 1 месяц занятий, 6 часов теории + много практики + постоянные консультации тренера в скайп-чате
Можно ли представить себе хорошего линуксового системного администратора, который не знает общую теорию операционных систем и сетей, не подозревает о существовании Windows и MacOS, не умеет пользоваться для настройки системы консолью так же хорошо, как графической оболочкой? Можно ли считать хорошим инженером-строителем человека, который не владеет сопроматом, не знает про современные строительные материалы и особенности их применения, даже если на текущем объекте строительства они не используются? Можно ли признать хорошим актёром того, кто день за днём играет одну и ту же роль, не знает о современных тенденциях в театральном искусстве и не пытается попробовать себя в других амплуа?
Хороший специалист должен обладать достаточно широкими знаниями. Да, он глубоко изучает какую-то одну тему, специализируется в каком-то направлении, но при этом он должен представлять себе общую картину своей профессиональной области. Если он не будет это делать -- мир уйдёт вперёд, его узкая тема окажется устаревшей и невостребованной, а он ничего другого не знает и не умеет.
Умение создавать автоматизированные тесты предполагает владение специализированными инструментами, которые так и называются "инструменты для автоматизации тестирования". Но знания хорошего специалиста должны охватывать всю область автоматизации. Какие вообще инструменты бывают? Для чего они предназначены? В какой ситуации следует (или наоборот не следует) использовать тот или иной инструмент? Как выбрать наиболее подходящий для решения задачи инструмент среди множества похожих?
И конечно же надо уметь делать хорошие автотесты. Да, сначала надо научиться понимать, чем "хорошие" автотесты отличаются от "плохих". А потом -- научиться делать "хорошие". Эти правила являются общими, независимыми от конкретного используемого инструмента.
Для тех, кто хочет расширить свой кругозор и получить общие фундаментальные знания в области автоматизации тестирования мы подготовили этот учебный курс.
Тестирование в стартапе, конечно, отличается от тестирования в большой компании. Продукт, с которым вы работаете, часто меняется, и это неизбежно, если ваш стартап ориентирован на успешный конечный результат. Кадровые ресурсы ограничены: ваш продукт не будет тестировать целый отдел, а банальное ограничение средств может сказаться на количестве тестировщиков в команде.
Чтобы понять, как грамотно организовать тестирование будучи стартапером, лучше всего прислушаться к опыту тех, кто знает об этом не понаслышке. На прошедшей в мае конференции SQA Days 19 некоторые докладчики делились своим опытом как раз на примерах стартапа.
Ниже вы можете посмотреть записи докладов на эту тему и, кстати, узнаете не только о том, как преодолеть сложности, работая в стартапе, но и о плюсах работы в таких условиях.
Тестировщик в стартапе. Зачем и как, Сергей Кушнир, Cubehostel, Санкт-Петербург, Россия
Тестирование в условиях Lean: как приручить MVP?, Нина Белан, Tutu.ru, Москва, Россия
Как тестировщику выжить в стартапе и как тестировщик помогает стартапу выжить, Антон Киселев, Tester's Life, Москва, Россия
О том, как оптимизировать работу CI своими силами, Егор Васильев, Truckerpath, Москва, Россия
Команда проекта MAPS.ME (входит в состав Mail.Ru Group) разрабатывает мобильные карты c открытым исходном кодом для iOS и Android. Наши карты популярны среди более 40 млнпользователей по всему миру: из России, США, Германии, Тайваня, Таиланда и других стран.
За 4 года работы мы побывали на первых местах в категории «Путешествия» в App Store почти во всех странах мира, вошли в список лучших приложений за 2014, 2015 и 2016 годы в Google Play, выпустили карты для e-ink экрана на YotaPhone, засветились в публикациях TechCrunch, Forbes, Washington Post. Исходный код MAPS.ME открыт на GitGub: https://github.com/mapsme/omim
Мы расширяем отдел тестирования проекта и приглашаем в нашу команду специалиста по автоматизированному тестированию мобильных приложений.
Задачи:
● автоматизация функциональных и регрессионных тестов;
● анализ отчетов, выявление проблемных мест;
● разработка и поддержка фреймворка тестирования;
● взаимодействие с командой разработки.
Требования:
● понимание принципов тестирования;
● опыт автоматизированного тестирования;
● навыки программирования на Java и/или Python.
Будет плюсом:
● опыт тестирования мобильных приложений;
● опыт тестирования API;
● знание средств автоматизации Appium и др.;
● опыт разработки и поддержки тестового фреймворка;
● опыт работы с сервисами удаленного тестирования мобильных приложений.
Условия работы:
● комфортно работаем: просторные опенспейсы, звукопоглощающие панели, несколько десятков переговорных, дополнительные мониторы, мощное железо и макбуки, если нужно;
● вкусно кормят: в офисе есть ресторан с завтраками и обедами, а на каждом этаже есть 2 кухни, где всегда есть фрукты и ягоды, чай, кофе, кола и, конечно, печеньки;
● приятно отдыхаем: большая лаунж-зона, массажные кресла, бар со свежевыжатыми соками, качели, уголки с пледами и подушками, где можно отдохнуть, игровые приставки, кинотеатр;
● заботимся о здоровье: с первых дней работы мы даем отличную программу ДМС, включающую стоматологию и даже массаж;
● занимаемся спортом: бесплатный фитнес-зал в офисе (со всеми тренажерами и, конечно, душевыми), теннисные столы и даже футбольное поле;
● легко добираемся: мы находимся в пяти минутах ходьбы от м. «Аэропорт». Для тех, кто предпочитает добираться на работу на машине, у нас есть 5-этажная подземная парковка. И да, на ней есть места;
● профессионально развиваемся: в нашем офисе регулярно проходят семинары, тренинги, мероприятия для разработчиков ― Moscow.pm, CocoaHeadsMoscow, UX-среда и др. Конечно, мы отправляем сотрудников и на внешние профессиональные мероприятия.
При вашей заинтересованности пишите на почту: naumenko@corp.mail.ru (Алексей Науменко)
Не нашёл похожего в интернете. Есть тесты с "софт асертами" (такие проверки, которые не прекращают выполнения теста). Если ошибка есть в одном тесте, то остальные помечаются как ошибочные.
import org.testng.annotations.Test;
import org.testng.asserts.SoftAssert;
public class Test2 {
SoftAssert softAssert = new SoftAssert();
@Test
public void one(){
softAssert.assertEquals("1", "2");
softAssert.assertAll();
}
@Test
public void two(){
softAssert.assertEquals("1", "1");
softAssert.assertAll();
}
}
1й тест "ложит и 2й". Если в 1м тесте исправить "2" на "1", то всё работает. Возможно, есть какая-то настройка, которая всё исправит? Или я неправильно использую testNG?