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

Как обратиться к одному элементу блока, идентифицировав его по другому



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

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


Как обратиться к одному элементу блока, идентифицировав его по другому
2014-08-18 11:01

Всем привет.
У меня вопрос, который многим наверное покажется достаточно простым, но вот моих познаний пока для его решения не хватает.

Короче есть div с классом contact-header. Он содержит 4 блока.

<div class="pull-left" >
<div class="contact-image">
<div class="contact-action">
<div class="contact-content">

Блок "contact-content" содержит блок "contact-name" внутри которого лежит интересующаяя меня ссылка.

Xpath путь к ней следующий.

//div[@class='contact-header']/div[@class='contact-content']/div[@class='contact-name']/a[contains(text(), 'username')]

С помощью этой команды я нахожу блок "contact-header" с пользователем "username". В этом блоке мне нужно выполнить действие с элементом лежащим в блоке "contact-action"

<div class="contact-action" data-bind="if: $data.Id != 2319 && $parent.UserContextMenuItems.length">
  <div class="dropdown" style="width: 94px;">
    <a class="btn dropdown-toggle" data-toggle="dropdown">
      Действие
      <span class="caret"></span>
    </a>
    <ul class="dropdown-menu" data-bind="template: { name: $parent.ContextMenuItemTemplate, foreach: $parent.UserContextMenuItems }" style="left: 0">
  </div>
</div>

Как мне вернуться в коренной блок и перейти на действие - я ума не приложу. Возможно это вопрос больше по XPath, но прошу не судить строго и если не трудно - помочь разобраться. Заранее благодарен.

Ну и сразу скажу - идетифицировать этот блок для этого user'a другим способом - нет никакой возможности (Не считая id пользователя в аттрибуте data-bind, но "вытаскивать" id я не вижу возможностей.)



Тестирование безопасности – выбираем нужное
2014-08-18 11:41

Дмитрий Ильюк, OOO “Технологии качества», бренд A1QA

 

В каких случаях может понадобиться тестирование безопасности?

Эта статья для тех, кому пришлось столкнуться с проблемами безопасности своих ресурсов, в первую очередь – корпоративной сети либо веб-приложений, но они не имеют четкого представления о том, как это тестирование осуществляется на практике.

Вариантов, разумеется, может быть множество, вот лишь некоторые из них:

  • после проведенной кибер-атаки либо ее попытки;
  • при наличии корпоративной сети или веб-приложения, тестирование безопасности которых проводилось давно либо не проводилось вообще;
  • после добавления новой функциональности в уже имеющийся продукт;
  • при значительном изменении топологии корпоративной сети;
  • при миграции приложения из тестовой среды в производственную;
  • при наличии требований отраслевых стандартов (PCI DSS, HIPAA).

Однако, определить насколько необходимо проведения тестов безопасности можно гораздо проще. В общем виде формула выглядит так: если у вас есть “что-то”, оно хранит либо обрабатывает важные данные и при этом доступно из Интернета, то тест безопасности необходим!

 

Подробнее...



Онлайн-интенсив для начинающих тестировщиков, начало 1 сентября
2014-08-18 13:06

Онлайн-интенсив, 7 коротких 25-минутных записей,консультации в скайп-чате, домашняя работа, начало 1 сентября

Тестировщик -- это состояние души! А также интересная и высокооплачиваемая работа в ИТ-сфере! Хотите стать тестировщиком? Уже прочитали книги, статьи или блоги, но нужна реальная практика для поиска хорошей работы??

Мы предлагаем решение: Онлайн-интенсив по тестированию для начинающих.

7 дней, 7 занятий.  Работа с реальным проектом!  Узнавай новое и сразу применяй, получая советы тренера! Получи быстрый старт в профессии!

ВАЖНО!

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

НО!

Это будет неделя интенсивной работы. Придется поднапрячься, но оно того стоит! Правила жесткие – не получил приемлемую оценку спустя сутки после выкладки ДЗ, вылетел с курса. Поблажек не будет.

Если у Вас сильная загрузка и нет времени выделять по 2 часа в день 6 дней подряд на домашние задания – лучше не начинать. Для размеренного темпа у нас есть другие замечательные курсы:

Но если вы готовы интенсивно поработать, то добро пожаловать!

Подробная программа курса


Читать дальше

Кто-нибудь использовал paratest+jenkins ?
2014-08-18 16:14

Если использовали, то подскажите как, пожалуйста. Желательно через ant. Но у меня и через консольный вызов не запускается. Прихожу к такому мнению что он не работает с ним и нужно переходить на TeamCity.



Alias и WaitProperty
2014-08-18 16:26

Добрый день!

Версия  TestComplete'a 10.30, trial, использую Java Script, приложение написано на Delphi.Приложение открытое

Решила попробовать написать скрипт с помощью Alias

  var f_client = Aliases.FormEngine.frmMain;
  f_client.BTN_CLIENT.Click();
  var cat_cl = f_client.WaitAliasChild("F_CCATEG",50000);
  f_client.F_IDCODE.WaitProperty("ReadOnly",False,50000);
  cat_cl.TWinControl.Click(); 

Что-то не срабатывает WaitProperty. Уже поле стало недоступным для редактирования, но ожидает 50000(при загрузке формы, поле сначало редактируемое, а когда полностью загружено - не редактируемое)

 

Вообще хотела узнать, может не стоит их использовать, будут ли какие-то проблемы с этими Alias 



jenkins
2014-08-18 18:09

Пробывал запустить тесты на  инструменте для непрерывной интеграции(Jenkins)

 

Tecт вываливается по такой ошибке.

-------------------------------------------------------
 T E S T S
-------------------------------------------------------

Running TestSuite
...
... TestNG 6.8.9beta by Cédric Beust (cedric@beust.com)
...

org.openqa.selenium.firefox.NotConnectedException: Unable to connect to host 127.0.0.1 on port 7055 after 45000 ms. Firefox console output:

(process:17320): GLib-CRITICAL **: g_slice_set_config: assertion 'sys_page_size == 0' failed
Error: no display specified

(process:17331): GLib-CRITICAL **: g_slice_set_config: assertion 'sys_page_size == 0' failed
Error: no display specified

	at org.openqa.selenium.firefox.internal.NewProfileExtensionConnection.start(NewProfileExtensionConnection.java:118)
	at org.openqa.selenium.firefox.FirefoxDriver.startClient(FirefoxDriver.java:246)
	at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:114)
	at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:191)
	at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:186)
	at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:103)
	at ru.stqa.selenium.factory.WebDriverFactoryInternal.createLocalDriver(WebDriverFactoryInternal.java:74)
	at ru.stqa.selenium.factory.WebDriverFactoryInternal.newDriver(WebDriverFactoryInternal.java:57)
	at ru.stqa.selenium.factory.ThreadLocalSingletonStorage.createNewDriver(ThreadLocalSingletonStorage.java:91)
	at ru.stqa.selenium.factory.ThreadLocalSingletonStorage.getDriver(ThreadLocalSingletonStorage.java:36)
	at ru.stqa.selenium.factory.WebDriverFactory.getDriver(WebDriverFactory.java:35)
	at performance.test.TestNgTestBase.initWebDriver(TestNgTestBase.java:52)
	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:483)
	at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:84)
	at org.testng.internal.Invoker.invokeConfigurationMethod(Invoker.java:564)
	at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:213)
	at org.testng.internal.Invoker.invokeMethod(Invoker.java:653)
	at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:901)
	at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1231)
	at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:127)
	at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111)
	at org.testng.TestRunner.privateRun(TestRunner.java:767)
	at org.testng.TestRunner.run(TestRunner.java:617)
	at org.testng.SuiteRunner.runTest(SuiteRunner.java:348)
	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:343)
	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:305)
	at org.testng.SuiteRunner.run(SuiteRunner.java:254)
	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1224)
	at org.testng.TestNG.runSuitesLocally(TestNG.java:1149)
	at org.testng.TestNG.run(TestNG.java:1057)
	at org.apache.maven.surefire.testng.TestNGExecutor.run(TestNGExecutor.java:293)
	at org.apache.maven.surefire.testng.TestNGXmlTestSuite.execute(TestNGXmlTestSuite.java:84)
	at org.apache.maven.surefire.testng.TestNGProvider.invoke(TestNGProvider.java:91)
	at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:200)
	at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:153)
	at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103)

вот мой pom.xml 

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>performance.test</groupId>
  <artifactId>Bil</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>jar</packaging>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
    </dependency>
    <dependency>
      <groupId>org.testng</groupId>
      <artifactId>testng</artifactId>
      <version>6.8.8</version>
    </dependency>
    <dependency>
      <groupId>ru.stqa.selenium</groupId>
      <artifactId>webdriver-factory</artifactId>
      <version>1.1.42</version>
    </dependency>
    <dependency>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-clean-plugin</artifactId>
      <version>2.5</version>
      <type>zip</type>
      <classifier>source-release</classifier>
    </dependency>
    <dependency>
      <groupId>org.seleniumhq.selenium</groupId>
      <artifactId>selenium-server</artifactId>
      <version>2.42.2</version>
    </dependency>
    <dependency>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-compiler-plugin</artifactId>
      <version>3.1</version>
    </dependency>
    <dependency>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-surefire-plugin</artifactId>
      <version>2.17</version>
    </dependency>
    <dependency>
      <groupId>org.seleniumhq.webdriver</groupId>
      <artifactId>webdriver-firefox</artifactId>
      <version>0.9.7376</version>
    </dependency>
  </dependencies>
  <build>
    <resources>
      <resource>
        <directory>src/main/resources</directory>
        <filtering>true</filtering>
      </resource>
    </resources>
    <testResources>
      <testResource>
        <directory>src/test/resources</directory>
        <filtering>true</filtering>
      </testResource>
    </testResources>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-resources-plugin</artifactId>
        <version>2.6</version>
        <configuration>
          <encoding>${project.build.sourceEncoding}</encoding>
        </configuration>
      </plugin> 
      <plugin>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>2.17</version>
        <configuration>
          <suiteXmlFiles>
            <suiteXmlFile>src/test/resources/testng.xml</suiteXmlFile>
          </suiteXmlFiles>
          <systemPropertyVariables>
            <application.properties>/application.properties</application.properties>
          </systemPropertyVariables>
        </configuration>
      </plugin>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.1</version>
        <configuration>
          <source>1.6</source>
          <target>1.6</target>
            <encoding>${project.build.sourceEncoding}</encoding>
        </configuration>
      </plugin>
    </plugins>
  </build>
  <!-- profiles -->
  <profiles>
    <!-- browsers -->
    <profile>
      <id>firefox</id>
      <properties>
        <capabilities>/firefox.capabilities</capabilities>
      </properties>
      <activation>
        <activeByDefault>true</activeByDefault>
      </activation>
    </profile>
    <profile>
      <id>chrome</id>
      <properties>
        <capabilities>/chrome.capabilities</capabilities>
      </properties>
    </profile>
    <profile>
      <id>ie</id>
      <properties>
        <capabilities>/ie.capabilities</capabilities>
      </properties>
    </profile>
    <profile>
      <id>safari</id>
      <properties>
        <capabilities>/safari.capabilities</capabilities>
      </properties>
    </profile>
    <profile>
      <id>phantomjs</id>
      <properties>
        <capabilities>/phantomjs.capabilities</capabilities>
      </properties>
    </profile>
    <profile>
      <id>opera</id>
      <properties>
        <capabilities>/opera.capabilities</capabilities>
      </properties>
    </profile>
    <profile>
      <id>htmlunit</id>
      <properties>
        <capabilities>/htmlunit.capabilities</capabilities>
      </properties>
    </profile>
    <!-- environments -->
    <profile>
      <id>localhost</id>
      <properties>
        <site.url>http://localhost/</site.url>
      </properties>
      <activation>
        <activeByDefault>true</activeByDefault>
      </activation>
    </profile>
    <profile>
      <id>devhost</id>
      <properties>
        <site.url>http://devhost/</site.url>
      </properties>
    </profile>
    <profile>
      <id>testhost</id>
      <properties>
        <site.url>http://testhost/</site.url>
      </properties>
    </profile>
    <profile>
      <id>prodhost</id>
      <properties>
        <site.url>http://prodhost.com/</site.url>
      </properties>
    </profile>
    <!-- grid -->
    <profile>
      <id>nogrid</id>
      <properties>
        <grid.url></grid.url>
      </properties>
      <activation>
        <activeByDefault>true</activeByDefault>
      </activation>
    </profile>
    <profile>
      <id>grid</id>
      <properties>
        <grid.url>http://localhost:4444/wd/hub/</grid.url>
      </properties>
    </profile>
  </profiles>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>
</project>


c Chromedriver также не может найти...

Tests run: 2, Failures: 1, Errors: 0, Skipped: 1, Time elapsed: 1.433 sec <<< FAILURE! - in TestSuite
initWebDriver(bil.bil.tests.Registration_Successful) Time elapsed: 1.168 sec <<< FAILURE!
java.lang.IllegalStateException: The path to the driver executable must be set by the webdriver.chrome.driver system property; for more information, see http://code.google.com/p/selenium/wiki/ChromeDriver. The latest version can be downloaded from http://chromedriver.storage.googleapis.com/index.html

хотя у меня через IDE хром запускается норм. Chromedriver лежит /usr/local/share/chromedriver и символические ссылки
/usr/local/bin/chromedriver
/usr/bin/chromedriver



Инструменты нагрузочного тестирования приложения на БД Oracle
2014-08-19 00:20

Здравствуйте, уважаемые коллеги. Не так давно начал заниматься тестированием, вот поступила директива от начальства: провести нагрузочное тестирование системы, разработанной нашей компанией. Вводные данные следующие:

десктопный клиент написан на delphi, крутится на БД Oracle 10xe. Нагрузку нужно проверить примерно при 1000 пользователей, единовременно работающих с приложением. Раньше с нагрузочным тестированием не сталкивался никогда, вот приходится на ходу постигать это ремесло. Прошу совета у экспертов и опытных коллег: каким инструментом (инструментами) в данном случае лучше пользоваться? Проштудировал этот форум прежде чем создать тему. Судя по всему, HP Load Runner в данном случае-наиболее часто используемое решение. Но интересует вопрос-действительно ли он нужен в данном конкретном случае, или есть какие-то альтернативы ему? Например, что-то более простое и дешёвое? Или в моём случае ничего более подходящего не найти?



© 2010 | Software-Testing.Ru


В избранное