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

Карта экранов



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

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


Карта экранов
2016-01-15 11:19

Здравствуйте,

подскажите в каких программах лучше всего делать карту экранов приложения? Есть ли какие то правила при этом?

Спасибо



Ожидание завершения AJAX-запросов. WebDriver
2016-01-15 11:34

Тесты пишу на Java + TestNG.

Необходимо работать с результатами поиска, но тест их ищет раньше, чем они появляются на странице.

Помог Thread.sleep(2000);, но запросы же могут и дольше выполняться..

Хочу сделать ожидание завершения ajax-запросов на странице. Поиск в гугле выдал только решение от 2011 года такого плана http://habrahabr.ru/post/111649/, насколько я понял это для селениума 1.0.

Каким образом сделать такое ожидание? Может есть другой способ?

 



При запуске тестов на HtmlUnitDriver NullPointerException
2016-01-15 11:39

Добрый день. Решил для запуска тестов использовать HtmlUnitDriver. Сразу столкнулся с проблемой.В BeforeTest я в зависимости от указанного в testNG.xml файле параметра запускаю тест в определенном браузере. Туда же я втулил одним из вариантов выполнения тестов HtmlUnitDriver. В итоге при запуске тестов вылетает ошибка, в чем причина понять не могу. Подскажите пожалуйста, что делаю не так.

Вот лог ошибок:
java.lang.NullPointerException
at basicTests.BasicTest.beforeTest(BasicTest.java:59)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:86)
at org.testng.internal.Invoker.invokeConfigurationMethod(Invoker.java:514)
at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:215)
at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:142)
at org.testng.TestRunner.beforeRun(TestRunner.java:656)
at org.testng.TestRunner.run(TestRunner.java:624)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:366)
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:361)
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:319)
at org.testng.SuiteRunner.run(SuiteRunner.java:268)
at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
at org.testng.TestNG.runSuitesSequentially(TestNG.java:1244)
at org.testng.TestNG.runSuitesLocally(TestNG.java:1169)
at org.testng.TestNG.run(TestNG.java:1064)
at org.testng.IDEARemoteTestNG.run(IDEARemoteTestNG.java:72)
at org.testng.RemoteTestNGStarter.main(RemoteTestNGStarter.java:122)

Disconnected from the target VM, address: '127.0.0.1:54202', transport: 'socket'

Ну и здесь у меня создается екземпляр драйвера:

        if (browser.equalsIgnoreCase("firefox")){
            driver = new FirefoxDriver();
        }
        else if (browser.equalsIgnoreCase("chrome")){
            System.setProperty("webdriver.chrome.driver", "C:\\tools\\drivers\\chromedriver.exe");
            driver = new ChromeDriver();
        }
        else if (browser.equalsIgnoreCase("opera")){
            System.setProperty("webdriver.opera.driver", "C:\\tools\\drivers\\operadriver.exe");
            driver = new OperaDriver();
        }
        else if (browser.equalsIgnoreCase("safari")){
            System.setProperty("webdriver.safari.driver", "C:\\tools\\drivers\\safaridriver.exe");
            driver = new SafariDriver();
        }
        else if (browser.equalsIgnoreCase("ie")){
            System.setProperty("webdriver.ie.driver", "C:\\tools\\drivers\\IEDriverServer.exe");
            driver = new InternetExplorerDriver();
        }
        else if (browser.equalsIgnoreCase("html")){
            System.setProperty("webdriver.html.driver", "C:\\tools\\drivers\\selenium-htmlunit-driver-2.49.0.jar");
            HtmlUnitDriver driver = new HtmlUnitDriver();
            driver.setJavascriptEnabled(true);
            System.out.println("create html driver");
        }


Вопросы начинающего. 1. Фреймы, переключение? 2. Как работать с выпада
2016-01-15 11:50

1. Есть некая страница. В код вставлен кусок, ведущий на отдельный проект (через него реализована поддержка).

 

Загрузка страницы занимает 2 - 60 секунд (это нормально по некоторым причинам, не суть).

 

После загрузки фокус может оказаться основной странице, тогда драйвер дожидается появления элемента WebDriver.WaitToBeClickable... и после этого можно перейти.

Или фокус может оказаться на фрейме поддержки.

При этом какой процесс раньше завершиться не понятно.

Может полностью загрузиться первой фрейм (по факту - небольшое окно сбоку) поддержки. Могут почти одновременно, может позже.

 

1.1. Как сделать оптимальное ожидание появления элемента на основном фрейме (странице)?

1.2. Как сделать переключение во время ожидания, при том что переключиться на фрейм поддержки может не сразу, а в какой-то момент загрузки?

 

2. Есть некоторые меню с выпадающими по клику действиями.

 

Сделать для действий inspectElement не получается, т.к. при клике правой кнопкой меню сразу пропадает. Чтобы понять как кликнуть webdriver'ом на какой-либо пункт выпадающего меню, нужно лезть в код страницы?



SQA Days - 18: тест-менеджмент
2016-01-15 12:19

Публикуем подборку докладов с SQA Days-18, посвященных управлению людьми в тестировании.

 

Будни руководителя тест-джампера или как тест-джампить руководителю? - доклад Юлии Абрамовой

 

Дефицит ресурсов тестирования... или нет? - доклад Анастасии Леншмидт о решении проблемы нехватки ресурсов.

 

Выгорание и выход из кризиса - доклад Игоря Мирошниченко о том, как бороться с кризисами в работе.

 

Естественный отбор в условиях кадрового голода - доклад Екатерины Ремизовой о методиках развития команды.

 

Как собрать команду мечты - доклад Макса Богуславского о том, как эффективно набирать людей.

 

Качества хорошего тест-лида - доклад Романа Твердохлебова о пути становления тест-лида.

 

Фреймворк компетенций APM или как понять возможности Вашей команды тестирования - доклад Дарьи Ефремовой об оценке компетенций специалистов.

 

Смотреть записи докладов

 

20-21 мая 2016 г. в Санкт-Петербурге пройдет 19-я международная конференция в области обеспечения качества ПО «Software Quality Assurance Days».

 

Наши читатели при регистрации на конференцию могут получить скидку.

 

Промокод для получения 10% скидки - s-t.ru



Перезапуск упавших тестов IRetryAnalyzer в связке с dataprovider
2016-01-15 15:41

Доброго времени суток!

Связка: Testng+eclipse+Maven+jenkins

Есть тест, листенер, и аналайзер. Необходимо перезапускать упавший тест "n" раз, если он не выполнился то выдавать ошибку и продолжать тест со следующим параметром @dataprovider
 
Результаты прохождения тестов:

-первый тест запускается один раз - результат - success

-второй тест запускается один раз - результат - success

-третий тест запускается 2 раза - результат - skip,failed
-четвертый тест запускается 2 раза - результат - success,success

зы. пятый и так далее тесты будут запускаться все по 2 раза в не зависимости от статуса. А должны при статусе success отрабатывать всего один раз (как при выполнении первых двух тестов)

 

Вопрос в следующем... что надо перезаписать(прописать) в ITestResult (public void onTestSuccess / onTestFailure) для моего RetryListener.class чтобы после успешного теста, запускался следующий объект из dataprovider?

@Listeners({RetryListener.class})
public class simpletest   {
WebDriver driver;
String baseURL = "http://localhost/";
 
@DataProvider 
private Object[][] addUrl() {
return new Object[][] {
{"page1"},
{"page2"},
{"page3"},
{"page4"},
};
}

@Test(dataProvider="addUrl",retryAnalyzer=RetryAnalyzer.class)            //Сам тест
driver = new FirefoxDriver();
driver.get(baseURL+addUrl);
...............


Если тест сфейлился то перезапускаем его столько раз (сколько указано в maxRetryCount=2)

public class RetryAnalyzer implements IRetryAnalyzerWithSkip {
    private int retryCount = 0;
    private int maxRetryCount = 2;


    public boolean retry(ITestResult result) {


        if (retryCount < maxRetryCount) {
            retryCount++;
            return true;
        }
        return false;
    }


    @Override
    public boolean isRetryable() {
        return retryCount < maxRetryCount;
    }
public class RetryListener extends TestListenerAdapter {
 public void onTestFailure(ITestResult tr) { if (retryAnalyzer == null || !(retryAnalyzer instanceof IRetryAnalyzerWithSkip)) {
          super.onTestFailure(tr);
        } else if (((IRetryAnalyzerWithSkip) retryAnalyzer).isRetryable()) {
            tr.setStatus(ITestResult.SKIP);
            super.onTestSkipped(tr);
        } else {
          super.onTestFailure(tr);
         }
    }
}


Кто может скинуть книгу Cem Kaner, James Bach, Bret Pettichord
2016-01-15 22:37

Начинаю изучать тестирование, прочитал книгу Савина и Канера, теперь ищу данную книгу, безрезультатно.
-"Cem Kaner, James Bach, Bret Pettichord "Lessons Learned in Software Testing"
У кого есть данная книга? и кто может поделиться, скиньте пожалуйста на ФО и поделитесь ссылкой.

 



© 2010 | Software-Testing.Ru


В избранное