Перейти к содержимому

Публикации filipok

40 публикаций создано filipok (учитываются публикации только с 26 апреля 2023)



#88202 тестирование загрузки файла

Отправлено автор: filipok 12 мая 2011 - 09:07 в JMeter - Тестирование производительности

Здравствуйте,
необходимо проверить производительность WEB приложения где происходит генерация файла и его скачивание пользователем в результате кликания пользователем по ссылке.

Создаю сценарий через прокси, Jmeter реагирует на нажатие ссылки но уже не реагирует на нажатие кнопок в окне подтверждения скачивания (выбор действия и тд и тп)
как оттестировать загрузку файла в таком случае или по суте это уже включено в сценарий, ведь ответ с сгенерированным файлом уже пришёл .....



#86177 Не выполняется assert

Отправлено автор: filipok 28 марта 2011 - 13:26 в Selenium - Functional Testing

может кому поможет (хотя возможно это я такой балбес в единственном экземпляре :crazy: ):

при выполнении в командной строке надо Java передать ещё и ключик -ea что бы он обрабатывал assert. Раньше со старой версией Java это делать было не обязательно. Сейчас поставил 6-ю, и она этого требует.



#86170 Не выполняется assert

Отправлено автор: filipok 28 марта 2011 - 11:47 в Selenium - Functional Testing

может сие быть из-за смены версии java?
хотя в принципе я пробовал и на старой и на новой, не хочет из командной строки обрабатываться assert



#86164 Не выполняется assert

Отправлено автор: filipok 28 марта 2011 - 11:07 в Selenium - Functional Testing

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



#86160 Не выполняется assert

Отправлено автор: filipok 28 марта 2011 - 10:25 в Selenium - Functional Testing

Здравствуйте други.

Выполняю тесты Selenium + testNG + Java
Если запускать их через Eclipse и Ant Task то всё работает замечательно, но как только я выполняю их же через командную строку то все тесты проходять положительно, даже если явно указать в классах "assert false;"
Голову поломал себе уже, но понять почему так происходит не могу.



#82307 Порядок выполнения

Отправлено автор: filipok 21 декабря 2010 - 11:58 в Автоматизированное тестирование


Конечно

  <!DOCTYPE suite (View Source for full doctype...)> 
- <suite name="application" verbose="1" junit="false" parallel="false" configfailurepolicy="skip" thread-count="5" skipfailedinvocationcounts="false" data-provider-thread-count="10">
- <test name="V2_F26-Login_Logout" junit="false" skipfailedinvocationcounts="false" preserve-order="true">
- <classes>
- <!--  TS1  --> 
  <class name="test.v2.f26.VerifyLoginLogoutEnterUsernamePasswordPossibility" /> 
- <!--  TS2  --> 
  <class name="test.v2.f26.VerifyLoginLogoutCaseSensitivityUsernamePasswordField" /> 
- <!--  TS3  --> 
  <class name="test.v2.f26.VerifyLoginLogoutLabelsLoginPageAvailibility" /> 
- <!--  TS4  --> 
  <class name="test.v2.f26.VerifyLoginLogoutLinksLoginPageAvailibility" /> 
  </classes>
  </test>
  </suite>

при любом раскладе первым выполняется TS2 а потом уже TS1 и далее по порядку. Тоесть выполняет он их по алфавиту а на последовательность классов в файле не обращает внимания

Сдается мне, что порядок алфавитный для параметра name.

не понятно тогда правда на кой нужна опция preserve-order="true"



#81990 Порядок выполнения

Отправлено автор: filipok 16 декабря 2010 - 06:36 в Автоматизированное тестирование

Конечно

  <!DOCTYPE suite (View Source for full doctype...)> 
- <suite name="application" verbose="1" junit="false" parallel="false" configfailurepolicy="skip" thread-count="5" skipfailedinvocationcounts="false" data-provider-thread-count="10">
- <test name="V2_F26-Login_Logout" junit="false" skipfailedinvocationcounts="false" preserve-order="true">
- <classes>
- <!--  TS1  --> 
  <class name="test.v2.f26.VerifyLoginLogoutEnterUsernamePasswordPossibility" /> 
- <!--  TS2  --> 
  <class name="test.v2.f26.VerifyLoginLogoutCaseSensitivityUsernamePasswordField" /> 
- <!--  TS3  --> 
  <class name="test.v2.f26.VerifyLoginLogoutLabelsLoginPageAvailibility" /> 
- <!--  TS4  --> 
  <class name="test.v2.f26.VerifyLoginLogoutLinksLoginPageAvailibility" /> 
  </classes>
  </test>
  </suite>

при любом раскладе первым выполняется TS2 а потом уже TS1 и далее по порядку. Тоесть выполняет он их по алфавиту а на последовательность классов в файле не обращает внимания



#81886 Порядок выполнения

Отправлено автор: filipok 15 декабря 2010 - 07:11 в Автоматизированное тестирование

тему потерял 8( тока нашёл 8)

Метод у меня во всех классах только один, так что мне зависимость выполнения методов не нужна.
Мне бы хотелось что бы классы выполнялись в том порядке в котором они перечислены в testNG. У каждого класса только один метод verify(String... args)

Групп у меня нет совсем (они мне не нужны).
Параметр preserve-order не влияет вообще никак.

Или я просто что то не понимаю в этой жизни?



#81792 Порядок выполнения

Отправлено автор: filipok 14 декабря 2010 - 08:05 в Автоматизированное тестирование

Здравствуйте люди.

Есть вопрос по порядку выполнения классов и тестовых случаев.

Использую TestNG + Selenium + Java + Eclipce.

Проблема в том что я бы хотел что бы тестовые классы и данные которые я подгружаю из xsl документа через провайдера данных выполнялись в том порядке в котором я их указал. То-есть классы запускаются по порядку из testng.xml (в том порядке в котором они там напечатаны) и данные подставляются в соответствии с порядком в котором они расположены в файле с данными.

опция у тега "<test>" preserve-order="true" не даёт результатов, как запускалось всё хаотично так и запускается.

Может кто то заморачивался по этому поводу, подкиньте решение.



#81645 Изменение результатов тестирования

Отправлено автор: filipok 10 декабря 2010 - 08:08 в Selenium - Functional Testing

Попробовал, не помогло, репортер напрочь не хочет вызываться.

8))))) взял и от балды станцевал с бубном, переместил свой репортер под ключ листенера:
java -cp lib\testng-5.14.1.jar;lib\mytests.jar org.testng.TestNG -listener test.listeners.MyTestListener;test.reporters.MyEmailableReporter testng.xml
и всё заработало и репортер и листенер, я балдею

Ну и выкладываю реализацию листенера как и обещал
MyTestListener:
public class MyTestListener extends TestListenerAdapter {

  private int testCasesCount = 0;

  private String currentTestClassName;

  public void onTestStart(ITestResult result) {
    testCasesCount++;
    try {      
      Class cl = result.getTestClass().getRealClass();
      
      // count is reset if test class is changed
      String className = cl.getName();
      if (!className.equals(currentTestClassName)) {
        currentTestClassName = className;
        testCasesCount = 1;
      }
      
      result.setAttribute("WorkSheetName",
          ((AbstractTestClass) cl.newInstance()).getWorkSheetName()); //заносим название вкладки (номер тестовой функции)
      result.setAttribute("TestCase", String.valueOf(testCasesCount)); //заносим номер тестового случая 
    }
    catch (IllegalArgumentException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }
    catch (SecurityException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }
    catch (IllegalAccessException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }
    catch (InstantiationException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }
  }
}

Далее при реализации интерфейса IReporter вызываем в нужном месте метода generateReport(List<XmlSuite> xml, List<ISuite> suites, String outdir) result.getAttribute("Имя переменной")
где result - это результаты по данному тестовому случаю.



#81611 Изменение результатов тестирования

Отправлено автор: filipok 09 декабря 2010 - 17:21 в Selenium - Functional Testing


Запускаю тесты из командной строки так:

java -cp lib\testng-5.14.1.jar;lib\MyTests.jar org.testng.TestNG -reporter MyEmailableReporter -listener MyTestListener testng.xml

листенер отрабатывает а вот репортер отчёт не создаёт, что за подстава? что я упустил?

-usedefaultlisteners false

ок, завтра попробую, тока вот вопрос, у меня то не листенер не работает а репортер, с листенером то всё в порядке. Да и листенеры, что по умолчанию работают, мне как бы нужны я думаю + в эклипсе то всё работает без этой опции.

Короче всё это как то странно.
буду надеяться что это поможет.
В доках написано что когда запускаешь репортер из командной строки через ключ -reporter надо ещё какие то фильтры указывать, но я подробной информации об этом не нашёл (что за фильтры и с чем их едят).



#81586 Изменение результатов тестирования

Отправлено автор: filipok 09 декабря 2010 - 11:46 в Selenium - Functional Testing

Народ как вызвать мой репортер через командную строку. Запускаю тесты через эклипс+ант так:
<target name="run-tests" depends="compile">
		<taskdef classpathref="compile.cp" name="testng" classname="com.beust.testng.TestNGAntTask" />
		<testng classpathref="run.cp" outputdir="${test.output}" listener="MyTestListener" reporter="MyEmailableReporter">
			<xmlfileset dir="${basedir}" includes="testng.xml" />
		</testng>
	</target>

типа всё работает и мой отчёт отображается.

Запускаю тесты из командной строки так:
java -cp lib\testng-5.14.1.jar;lib\MyTests.jar org.testng.TestNG -reporter MyEmailableReporter -listener MyTestListener testng.xml

листенер отрабатывает а вот репортер отчёт не создаёт, что за подстава? что я упустил?



#81581 Изменение результатов тестирования

Отправлено автор: filipok 09 декабря 2010 - 10:22 в Selenium - Functional Testing


мне всё таки импонирует вариант заморочиться с контекстом, тока как туда добраться пока что не могу понять

Это я Вам расскажу -- реализуйте листенер IInvokedMethodListener2

спасибо, но я уже разобрался, хотя решение аналогичное, тока листенер другой 8)
Чуть позже выложу код, ща занят чутка 8)



#81497 Изменение результатов тестирования

Отправлено автор: filipok 08 декабря 2010 - 12:06 в Selenium - Functional Testing

я бы тоже хотел посмотреть на решение 8))))



#81476 Изменение результатов тестирования

Отправлено автор: filipok 08 декабря 2010 - 09:31 в Selenium - Functional Testing

Откуда до него достучаться?

Из моего класса тестов. У меня что то даже до параметров достучаться не получается



#81469 Изменение результатов тестирования

Отправлено автор: filipok 08 декабря 2010 - 08:44 в Selenium - Functional Testing

ЗЫ: Можно еще в IAttributes поковыряться.


ды вот к нему и склоняюся, но если честно ума не дам как всё это провернуть. Вроде как всё там есть что надо, можно завести нужную переменную, но как достучаться не знаю 8(



#81462 Изменение результатов тестирования

Отправлено автор: filipok 08 декабря 2010 - 07:51 в Selenium - Functional Testing

Ну я как бы просто предлагаю брать IReporter, например, и править правила генерации отчетов так, чтобы сообщения из логов правильно маркированные не попадали в лог, а складывались куда нам нужно в отчете.
Листенеры они скорее для отображения прогресса в реальном времени.

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



#81449 Изменение результатов тестирования

Отправлено автор: filipok 08 декабря 2010 - 06:27 в Selenium - Functional Testing

Ну можно записать данные с HTML разметкой, например, а потом CSS'ками сделать красиво. Или парсить. Тут в общем-то мысль простая - на входе пихаем нужные данные в отчет под видом логов, а на выходе делаем с этими данными красиво. Лог-то с репортера в отчет и так и так попадет.

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



#81434 Изменение результатов тестирования

Отправлено автор: filipok 07 декабря 2010 - 21:11 в Selenium - Functional Testing

Так класс репортер и используется для того чтобы запихивать левые сообщения в отчет от TestNG.
Вот в этом отчете поковыряйтесь, там есть примеры таких выводов в отчет сгенеренный TestNG: http://reportng.unco...mple/index.html

То есть в общем-то мысль тут уже озвучена вами была - переписать маму всех тестов так чтобы она получала нужные данные и складывала в лог. То есть вы же написали что тестовый класс информацией о вкладке обладает. Дальше вопрос насколько в вашем случае возможно дергать нужные нам методы в конструкторе.

если честно то не совсем уловил мысль вашу, за ссылку спасибо, поковыряюсь.

Просто на сколько я понял репортер только генерирует отчёт, нужно только переписать нужную нам реализацию интерфейса IReporter. Но он берёт данные из контекста, опять же как я понял, но что бы их оттудова взять их туда надо положить во время выполнения тестовых сценариев. Вот этот момент меня и интересует. Складыванием данных вроде занимается ITestListenerAdapter, но я в этом не уверен, да и как правильно сделать не знаю, так что бы по фентшую (тяготы выбора правильного решения изложил в посте 11)


Кажется понял про какой репортер речь. Но он же вроде просто для логгирования а мне надо отчёт формировать на основе моих данных - отчёт который отображается в файле "emailable-report.html". А логгирование это отдельная тема, оно у меня тоже используется для вывода дополнительной информации к отчёту - чаще нужно для отладки тестов. Я же не могу записать в отчёт какие то определённые данные в переменную с определённым именем при помощи него. Или я вас всё-таки не правильно понял?



#81407 Изменение результатов тестирования

Отправлено автор: filipok 07 декабря 2010 - 17:03 в Selenium - Functional Testing

Прекрасный класс Reporter (TestNG) никак не подходит?

спасибо за ответ, но я написал что репортер я буду пользовать репортер для формирования отчёта, но для того что бы в отчёт добавить нестандартные данные их надо в отчёт положить, думаю что в контекст. Основной вопрос в том как положить данные в контекст если они не передаются с основными тестовыми данными.
Про листенер я уже писал, пока что разбираюсь с ним, но может у кого то есть более простой и очевидный вариант или уже готовое решение через листенер, просто я пока что не знаю к чему там обратиться и куда листенер пихать, или сделать его реализацию в моём базовом тестовом классе или описать отдельно мой листенер - правда как тогда получить доступ к методу который возвращает нужные данные в тестовых классах из этого моего отдельного класса листенера. А может сделать анонимный внутренний класс - реализацию интерфейса листенера. Короче решение в процессе.

Если есть кому что добавить буду рад помощи.



#81400 Изменение результатов тестирования

Отправлено автор: filipok 07 декабря 2010 - 16:16 в Selenium - Functional Testing


как попадает информация из Excel-файла не важно, там свой механизм (написан Итератор и через Дата провайдер они пихаются в тестовый метод).
Информацией о вкладке обладает тестовый класс - есть соответствующее приватное поле (ну и метод который значение данного поля возвращает). А для тестовых случаев можно завести ещё одно приватное поле и использовать его как счётчик вызовов тестового метода. И при каждом вызове метода пихать его в отчёт. А вот как запихать в отчёт всю эту информацию.
Тестовые данные и имя метода и класса туда попадают сами собой (ну как бы по умолчанию если всё правильно описать).

Отлично! Именно это я и хотел услышать. Добавьте в сигнатуру тестовых методов ещё пару служебных параметров -- название вкладки и номер строки, и передавайте их вместе со всеми остальными данными из провайдера, так они тоже станут "тестовыми данными".

8))) это конечно хорошо но не подходит, тестовых классов много, файлов с тестовыми данными ещё больше, перелопачивать такую кучу информации как то не с руки, проще переписать чуть чуть родительский класс всех тестовых классов или реализацию листенера вызывая в нужном месте метод возвращающий номер вкладки (или имя, но это не важно). Я думаю такой подход будет лучше. Вот только где это самое место которое мне необходимо.



#81392 Изменение результатов тестирования

Отправлено автор: filipok 07 декабря 2010 - 15:15 в Selenium - Functional Testing


Каждый тестовый класс обладает информацией к какой вкладке обратиться.

Вот это ключевой момент -- как именно эта информация представлена?
Кто обладает информацией, которую Вы хотите добавить к результатам (названия вкладок, номера строк)?
Хочется понять механизм того, как данные из Excel-файла попадают в тесты.

как попадает информация из Excel-файла не важно, там свой механизм (написан Итератор и через Дата провайдер они пихаются в тестовый метод).
Информацией о вкладке обладает тестовый класс - есть соответствующее приватное поле (ну и метод который значение данного поля возвращает). А для тестовых случаев можно завести ещё одно приватное поле и использовать его как счётчик вызовов тестового метода. И при каждом вызове метода пихать его в отчёт. А вот как запихать в отчёт всю эту информацию.
Тестовые данные и имя метода и класса туда попадают сами собой (ну как бы по умолчанию если всё правильно описать).



#81384 Изменение результатов тестирования

Отправлено автор: filipok 07 декабря 2010 - 14:41 в Selenium - Functional Testing

Ух как быстро наотвечали, я надеялся максимум к завтрашнему.
Ок
Дополняю свой вопрос.

Имеем тестовые классы с тестовым методом. Тестовые данные хранятся в XLS документе в виде таблиц с данными. Для каждого тестового сценария там выделена отдельная вкладка.
Каждый тестовый класс обладает информацией к какой вкладке обратиться.

Необходимо информацию об этой вкладке отобразить в отчёте. В нашем случае это "emailable-report.html".
Нужно это для удобства, что бы оператор при использовании тестов в случае ошибки сразу наглядно видел к какой вкладке стоит обратиться. Ещё необходимо напротив каждой строки с данными в отчёте отображать номер этой строки из файла с тестовыми данными - грубо говоря номер тестового случая.

Пока что понял что для модернизации отчёта надо переопределить метод
private void resultDetail(IResultMap tests, final String style)
в классе "EmailableReporter"

Но вот как добавить эти данные в отчёт я не знаю. Пока что ковыряюсь с "TestListenerAdapter" но как то мне не очень нравиться этот способ (чем дальше в лес тем больше дров)



#81370 Изменение результатов тестирования

Отправлено автор: filipok 07 декабря 2010 - 13:16 в Selenium - Functional Testing

Здравствуйте люди.

Имеется желание поменять результаты тестирования, а точнее добавить к результатам некоторую дополнительную информацию из тестирующего метода.
Далее выводить данную информацию в отчёте.

Как это можно сделать?
Пользуюсь Selenium + testNG + Java

Как вывести данную информацию в HTML отчёт я вроде как разобрался (по крайней мере я так думаю) но как добавить нужную информацию к результатам пока что не знаю (но я в процессе)



#80362 Тестирование перехода по окнам

Отправлено автор: filipok 18 ноября 2010 - 12:47 в Selenium - Functional Testing

Я бы посоветовал вам заменить waitForPageToLoad на waitForPopUp

Прочитал ваш ответ в следующей теме. У вас в waitForPageToLoad используется waitForPopUp, как я понимаю?


нет, именно waitForPageToLoad(). Дело в том что я не знаю будет открываться новое окно или всётаки в текущем откроется ссылка, это как мне кажеться более универсально. К тому же всё работает и достаточно хорошо 8)