Актуальность данных в Jmetr
2012-02-16 08:27
Актуальность данных, прочитал кучу статей на хабре и еще вот эту
Как вы получаете более детальные данные? Например при 500 и 1000 пользователей, насколько ваши данные приближены к реальности?
Или у вас специальные стенды для этого, какое нибудь серверное железо+канал > 50 мбит?
У меня все упирается в канал и железо, приходится пользоваться loadimpact.com, там реально получить актуальные данные, время отклика с разных точек земли, и никаких узких мест там нет. Разве что сервис платный, но и это решаемо...
Хочу услышать советы и пожелания...
Клик по ссылке срабатывает только в IE
2012-02-16 08:32
Добрый день.
Столкнулся с проблемой клика по гиперссылке с картиной добавленной через CSS. Не понимаю, в чем может быть проблема, может кто-нибудь сталкивался. Итак:
Сделал доп. метод
public void clickItem(WebDriver driver,String param, String errorText) throws InterruptedException
{
clickItem( driver, param, errorText, 0);
}
public void clickItem(WebDriver driver,String param, String errorText, int time) throws InterruptedException
{
for (int second = 0;; second++)
{
if (second >= 50) Assert.fail(errorText);
{
element = driver.findElement(By.xpath(param));
try
{
if (element.isDisplayed())
{
builder = new Actions(driver);
builder.moveToElement(driver.findElement(By.xpath(param))).build().perform();
element.click();
break;
}
}
catch (Exception e)
{}
}
Thread.sleep(time);
}
}
Передаем в метод xpath элемента, текст ошибки при фейле, драйвер и задержку итераций цикла фор (очень помогает для разных браузеров при работе с событиями билдера).
Все везде работает, кроме этой ссылки: <a class="SolRisCre" href="/Sol/Ris/CreSin">Создать</a>
Вызываем: clickItem(driver,creSin, "Не тыкнулось на создание нового элемента"); Пишет: Cant find element with Xpath.. No such element.. (В IE 9 все работает).
Пробую напрямую driver.findElement(By.className("SolRisCre")).click(); и опять не работает. Cant find element with className.. Пробовал через все что можно. Не находит в Опере и Фаерфоксе. В IE работает. Не может быть в 2.19 бага какого-нибудь? или может кто-нибудь сталкивался с такой проблемой?
Заранее спасибо.
Senior Tester
2012-02-16 08:55 Компания Luxoft, входящая в IBS Group Holding – глобальный партнер по разработке программного обеспечения и лидер отрасли по Восточной Европе. Клиенты доверяют нашей непревзойденной технической подготовке, квалификации инженеров, глубокой отраслевой экспертизе и лучшим практикам, позволяющим улучшать эффективность бизнеса и максимизировать прибыль. Мы помогаем компаниям – разработчикам технологических продуктов и ИТ-подразделениям предприятий посредством проектирования и разработки решений, которые способствуют повышению производительности, внедрению инноваций и оптимизации ИТ-архитектуры. За счет нашей глобальной инфраструктуры заказной разработки, обширной сети офисов и долгосрочных инвестиций в исследования наша компания предлагает услуги разработки и поддержки по целому ряду отраслей.
Мы открываем вакансию Senior Tester в Москве. Описание ниже:
∙ Обязанности:
Составление функциональных и системных тест-кейсов, тест-планов, сценариев тестирования;
Функциональное, системное, исследовательское, Регрессионное тестирование Web приложения;
Выявление и локализация ошибок тестируемого ПО, фиксирование обнаруженных дефектов и сопровождение их на протяжении всего жизненного цикла разработки;
Настройка и Управление конфигурацией;
Проведение тестирования на территории заказчика.
∙ Требования:
Опыт ручного функционального тестирования в компании, занимающейся разработкой заказного программного обеспечения
Знания методов и средств тестирования банковских систем
Готовность к работе по методологии agile, scrum
Опыт работы с bug tracking системами (Jira, HP QC)
Знание жизненного цикла дефектов. Общий навык описания дефектов
Опыт составления проектной документации, анализа документации
Знание вeб-технологий (XML, HTML, CSS)
Понимание технологии AJAX
Уверенное владение SQL и PL/SQL, написания запросов (SELECT, UPDATE, INSERT, DELETE). Опыт работы с БД Oracle или Ms SQL Server
∙ Условия работы:
Оформление в полном соответствии с ТК РФ
Конкурентная заработная плата, обсуждается с успешным кандидатом индивидуально;
Бесплатное профессиональное Обучение и обучение английскому языку в учебном центре Luxoft;
Добровольное медицинское страхование;
Спортивные мероприятия; скидки на зрелищные мероприятия.
С вопросами, комментариями, пожеланиями прошу адресоваться по контактам, указанным в подписи ниже.
Спасибо!
Генерирую рандомный номер для xpath элемента
2012-02-16 11:09
Добрый день.
Возникла проблема с рандомными числами. Не получается понять причину. Задача: есть несколько элементов option для одного селекта. Проверял, по xpath можно к ним обратиться //option[1], //option[2] итд. Элемент на странице получается уникальным.
Сделал 2 метода для рандомного выбора элемента:
public int Random(int start, int end)
{
return start + (int)(Math.round((Math.random()*(end-start))));
}
public String performanceTypeId()
{
return "//option["+Random(1,2)+"]";
}
И когда доходит дело до клика по этому элементу (метод для клика),
public void clickItem(WebDriver driver,String param, String errorText, int time) throws InterruptedException
{
for (int second = 0;; second++)
{
if (second >= 50) Assert.fail(errorText);
{
element = driver.findElement(By.xpath(param));
try
{
if (element.isDisplayed())
{
builder = new Actions(driver);
builder.moveToElement(driver.findElement(By.xpath(param))).build().perform();
element.click();
break;
}
}
catch (Exception e)
{}
}
Thread.sleep(time);
}
}
падает Java SE. Генератор сам отрабатывает, //option[1], //option[2] генерятся рандомно.
Подсажите пожалуйста профессионалы, так как моих новичковских знаний явно нехватает..
Jmeter proxy server не записывает с внешним прокси
2012-02-16 12:26
Возникла задача. Хочу записать скрипт с помощью HTTP Proxy Server. Все делаю по мануалу. Запускаю Jmeter вот так из командной строки:
-H [proxy server hostname or ip address]
-P [proxy server port]
Прокси и порт - те, с помощью которых выхожу в инет.
Естественно, в HTTP Proxy Server прописываю порт, который использую и указываю в качестве Target Controller'a Recording Controller который содердиться в созданной Thread Group.
Для Workbench'a и Thread Group добавил HTTP Header Manager, в котором указал используемый браузер в качестве User-Agent'a.
Нажимаю Start перехожу в браузер, открываю ссылки, но в указанном Recording Controller'e ничего нет.
Где я ошибаюсь и что делаю не так? Подскажите пожалуйста...
12-13-14 марта с 17-00 до 19-00 по московскому времени Вашему вниманию будут представлено 12 докладов — 6 длинных выступлений по 30 минут и 6 коротких по 15 минут.
Как обычно потом слушатели и докладчики продолжат общение в закрытом форуме, где уже можно будет подробно обсудить спорные или непонятные вопросы каждого доклада.
Логирование "мягких" проверок. TestNG
2012-02-16 14:43
Ноги темы растут отсюда, только теперь необходима реализация понятного логирования для мягких проверок. Т.е. Необходимо из сообщения об ошибке понимать откуда эта проверка вызывалась. оказалось что проблема с verify не проще
Имеем следующую реализацию "мягкой" проверки:
public static void assertTrue(boolean condition, String message) throws Exception {
try {
Assert.assertTrue(condition, message);
} catch (AssertionError ae) {
throw new Exception(" \n" + ae.getMessage());
}
}
//**Мягкая проверка*/
public static void verifyTrue(boolean condition, String message) throws Exception{
try {
assertTrue(condition,message);
} catch (Throwable e) {
addVerificationFailure(e); //Добавление стектрейса в пул ошибок, дабы в конце теста вывелись все.
}
}
Имеем следующий код вызова проверки:
private void checkFieid1()throws Exception{
try{
...
commonFunc(...);
...
}catch(Exception e)
throw new Exception("Тестирование поля 1 не пройдено\n" + e.getMessage, e)
}
private void checkFieid2()throws Exception{
try{
...
commonFunc(...);
...
}catch(Exception e)
throw new Exception("Тестирование поля 2 не пройдено\n" + e.getMessage, e)
}
private void commonFunc(...)throws Exception{
try{
...
verifyTrue(...,message);
...
}catch(Exception e)
throw new Exception("message for common func", e)
}
Test
public void createDocTest() throws Excetion{
try{
...
checkField1();
checkField2();
...
}catch(Exception e)
throw new Exception("Тест на создание документа не пройден", e)
}
Так как экшепн ловится в функции verifyTrue, логируется и там же и затухает: проброса выше не существует.
Получаем следущий стектрейс:
Цитата
java.lang.Exception: expected:<true> but was:<false>
at ru.testing.TestBase.assertTrue(TestBase.java:37)
at ru.testing.TestBase.verifyTrue(TestBase.java:99)
at ru.testing.CreateDocTest.commonFunc(CreateDocTest.java:54)
at ru.testing.CreateDocTest.checkFieid1(CreateDocTest.java:88)
at ru.testing.CreateDocTest.createDocTest(CreateDocTest.java:173)
Но! Нам необходимо вывести сообщение:
Цитата
Тест на создание документа не пройден
Тестирование поля 1 не пройдено
message for common func
Какое-то сообщение передавамое в verify
expected:<true> but was:<false>
Какие видятся варианты решения проблемы:
1. Создать свой exception: все проверки verify засунуть в try{..}catch(MyException m){...}
В catch добавлять дополнительное сообщение. Возмоно что-то более хитрое используя свой exception.
2. В функцию добавить новый передаваемый параметр Message, в которые добавлять текст, обозначающий из какого метода функция была вызвана.
3. Т.к. все сообщения уже содержатся в блоке сatch соотвествующего метода, создать файл содержащий все сообщения. В throws new Exception(будет строковая константа для конкретного метода)
Но остается проблема - как быстро узнать родительский метод для конкатенации итоговой строки...
В общем, я что-то совсем запутался. Какой бы метод вывода сообщения выбрали вы? Или есть какой-то более простой метод выхода из описанной ситуации?
WebDriver + PHP
2012-02-16 16:51
Подскажите, WebDriver поддерживает php? В списке языков не обнаружил. Неужели отказались?
Просьба к тестировщикам Казани
2012-02-16 21:23
Коллеги, наверняка кто-то из вас собирается на SQADays 11. Я тоже туда обязательно поеду.
Вот и промчалась первая online конференция по автоматизации тестирования. Организована она была совместной работой двух передовых порталов по тестированию в СНГ: automated-testing.info и software-testing.ru
Впереди предстояло немало работы, а самое основное - это поиск качественных докладов. Подготовку мы начали за 3 месяца и смогли провести тщательный отбор интересных тем. А самим докладчикам мы оказывали полноценную помощь в подготовке выступлений. Это несколько этапов проверки слайдов, более 10 часов репетиций, индивидуальные консультации и работа над замечаниями.
К дате старта конференции мы были готовы презентовать результаты.
Вот и промчалась первая online конференция по автоматизации тестирования. Организована она была совместной работой двух передовых порталов по тестированию в СНГ: automated-testing.info и software-testing.ru
Впереди предстояло немало работы, а самое основное - это поиск качественных докладов. Подготовку мы начали за 3 месяца и смогли провести тщательный отбор интересных тем. А самим докладчикам мы оказывали полноценную помощь в подготовке выступлений. Это несколько этапов проверки слайдов, более 10 часов репетиций, индивидуальные консультации и работа над замечаниями.
К дате старта конференции мы были готовы презентовать результаты.
Как извлечь изображение из Grid?
2012-02-17 11:20
Имеется Grid, в котором есть 3 колонки. В колонке с индексом 1 выводятся строки, а в колонках с индексами 0 и 2 - изображения в виде иконок. Текст извлекается через
str = p.win.Grid.Item(1,i).Value, а как можно извлечь изображение? Положение усугубляется тем, что в каждой строке колонки с индексом 2 может быть 1, 2 или 3 разных иконки, а может и не быть вовсе. Необходимо иметь возможность оценивать состояние каждой иконки по ее наличию и цвету.
Разработчик JAVA Москва на постоянную основу
2012-02-17 11:50
Компания "Гран При+" - ведущая компания-производитель и поставщик комплексных систем безопасности, ищет специалиста на вакансию "Программист JAVA".
Мы создаем решения для компаний МТС, Билайн, Ростелеком, Алкатель, Аэропорт Домодедово.
Со своей стороны предлагаем интересные проекты, достойную зарплату и работу в демократичной обстановке.
Должностные обязанности:
* Разработка новых продуктов
* Развитие и поддержка существующих.
Требования, знания:
* Опыт разработки серверных WEB-приложений с использованием Java (java2ee, JavaScript) не менее 2-х лет. Желательно знание JDBC, GWT, библиотек Hibernate, JSF, ExtJS, ExtGWT.
* Опыт разработки WEB-интерфейсов, знание DHTML, JavaScript, CSS.
* Опыт работы с реляционными базами данных (умение формировать SQL-запросы, создавать таблицы, представления, хранимые процедуры). Желательно иметь опыт работы с БД PostgreSQL и MSSQL
* Умение работать в команде, опыт создания программных продуктов от 2-х лет. Умение работать с неформализованными задачами, самообучаться.
* Желательно иметь опыт работы с аудио- и видео-файлами
Условия:
* Стартовый оклад по договоренности.
* Испытательный срок 3 месяца.
* График работы: пн-пт с 9:30 до 18:30 ч.
* Корпоративная столовая.
* Офис рядом с м. Шоссе Энтузиастов.
С уважением,
Кристина Горячевская
Менеджер по персоналу
Компания Гран При
работа скодом страницы
2012-02-17 12:52
ПОдскажите:
имеется строка в коде:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
Как присвоить переменной "i" значение элемента "http-equiv"
т.е как получить i="Content-Type".
Скрипт пишу в eclips'e
Необходимо, чтобы ЛР при завершении, например, трацзакции t1 со статусом FAIL(к примеру в случае таймаута), повторно выполнял ее до тех пор, пока она не завершится в PASS
То становится понятно, что ошибка обнаруживается только тогда, когда мы начинаем работать с элементом (выбирать в списке какие-то значения).
На текущий момент проблему решили созданием ожидания:
Boolean until = new WebDriverWait( login.getDriver(), 30 ).until( new ExpectedCondition<Boolean>()
{
public Boolean apply( WebDriver webDriver )
{
try
{
new Select( driver.findElement( By.name( "folderList" ) )).selectByVisibleText( folderName );
}
catch( StaleElementReferenceException e )
{
log.debug( "Select failed! Try again..." );
return false;
}
log.debug( "test found!" );
return true;
}
} );
Хотелось бы вытащить эту "ожидалку" в отдельный метод (какой-нибудь "waitElementExist"), который поможет работать с AJAX'ом (будет ждять до тех пор, пока объект не окажется в DOM'е), а для этого надо отделелить "driver.findElement( By.name( "folderList" ))" - сделать его не завернутым в Select. Т.е. в итоге получить конструкцию вида:
Синхронизация действий
2012-02-17 18:07
Суть проблемы такая: Есть Web Application которое размещается на двух серверах: 1 и 2. В ThreadGroup реализован основной сценарий нагрузки сервера 1. Сценарий запускает 250 пользователей на сервер, которые выполняют определённые
действия на сервере. (Сценарий реализован и работает нормально)
Необходимо:
При начале работы основного сценария, создать и открыть на запись csv файл. В него будут записываться результаты запроса который будет отправляться серверу 2
с периодичностью в 1 секунду. Когда основной сценарий завершит свою работу необходимо сохранить и закрыть данный файл.
Как создать, открыть, писать в файл, сохранить и закрыть его я знаю. Это тоже реализовано (пока в отдельном ThreadGroup), в том же тест-плане что и основной сценарий.
Но вот как синхронизировать работу между этими двумя группами, пока не знаю. Точнее необходимо начать запись в файл при старте первого пользователя и прекратить
запись после выхода последнего.
Здесь встречал похожую тему, но решения предложенные там (использование TestAction) мне не подходит, хотя суть проблемы похожа.
Прошу помочь, советом, а лучше примером.
Если что-то не понятно описал, спрашивайте, буду дополнять. Сам решить вопрос пока не могу.
Спасибо. Жду Ваших предложений и идей.
Получить текст из input
2012-02-18 18:29
Добрый вечер!
Проблема смешная, но я видимо зациклилась и не могу увидеть решения...Помогите пожалуйста понять почему не выходит получить текст из инпута...
String test = driver.findElement(By.id("id")).getText();
System.out.println(test);
Выдает пустую строку.
Проблема с тестировщиками
2012-02-19 13:44
Опять уволился тестировщик, проработал 3 месяца, ушел в менеджеры активных продаж.
Берем народ без опыта, чаще всего студентов (или вчерашних студентов), даем возможность совмещать работу с учебой. Тестировщик с опытом – зверь редкий, которого нужно перекупать из других компаний, не уверена что оно будет выгодно. А вы как думаете?
Условия не зверские – свободный график, аськи/контакты не закрываем, отчетность по минимуму. Зарплата средняя по рынку, может чуть ниже, но с другой стороны, мы ж без опыта берем.
Единственный минус – карьерный рост вряд ли возможен, но возможен профессиональный (нет четких привязок к каким-то техникам тестирования, есть возможность поэкспериментировать), в самостоятельном режиме, так как няньки прилагаются только в первые месяцы работы. Но не заметила у наших тестировщиков каких то стремлений к росту :(
Как фильтровать кандидатов, чтобы они работали не менее года и самостоятельно изучали тестирование?
как получить Title
2012-02-19 18:18
Необходимо получить title и сравнить его с заданным. Не подскажете как это сделать?