Properties ver. 1.4

Getting Started

Все еще используете System.getProperty()? Начните новую жизнь!

Documentation

Гайдлайн по созданию собственных конвертеров, стратегий заполнения пропертей и т.д.

Matchers-Java ver. 1.0-SNAPSHOT

Getting Started

Подключение через мавен. Отдельные модули для декорирования, web элементов и коллекций

Documentation

Использование каждого матчера подробно описано. Ознакомьтесь подробно с каждым разделом

Actions ver. 2.2

Getting Started

Чтобы использовать библиотеку, не обязательно знать интерфейс WebDriver. Fluent-api поможет построить сценарий…

Documentation

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

HtmlElements ver. 1.11

Getting Started

Начать - проще простого. Подключение через мавен, продуманная структура.

Documentation

Подробная документация с примерами применения. Интеграция с Thucydides.

Changelog

What's new in 1.11

Подробнее

Cool stuff, that we made

Все это используем в своих проектах мы сами, поэтому болеем всей душой за качество и функциональность

Properties

Matchers-Java

Actions

HtmlElements

Properties

System property enchantment

Maven Dependencies

Стабильная версия:

<dependency>
    <groupId>ru.yandex.qatools.properties</groupId>
    <artifactId>properties-loader</artifactId>
    <version>1.4</version>
</dependency>

Getting Started

Работу библиотеки легче всего продемонстрировать на несложном примере конфигурирования прокси.

Project Structure

В примере будет использоваться стандартная стурктура директорий, которую декларирует maven:

|-pom.xml
|-src
  |-test
      |-java
      |    |-ProxyProperties.java
      |-resources
           |-proxy.properties

Property File Creation

Для начала, в ресурсах создаем файл proxy.properties для конфигурации прокси:

proxy.host=proxy.yandex.ru
proxy.port=3133
proxy.use=false

Property Class Creation

Далее, в исходниках создадим класс ProxyProperties, который имплементирует настройки прокси:

@Resource.Classpath("proxy.properties") //для иницализации класса будет использоваться файл proxy.poerties
public class ProxyProperties {

    public ProxyProperties() {
        PropertyLoader.populate(this); //инициализация полей класса значениями из файла
    }

    @Property("proxy.host") //ключ проперти, по которой переменной будет выставлено значение
    private String host;

    @Property("proxy.port") //ключ проперти, по которой переменной будет выставлено значение
    private int port;

    @Property("proxy.active") //ключ проперти, по которой переменной будет выставлено значение
    private boolean active;

    public String getHost() {
        return host;
    }

    public int getPort() {
        return port;
    }

    public boolean isActive() {
        return active;
    }
}

Если создавать проперти-файл вам не нужно, а вы хотите задать значения переменных по умолчанию в коде и при необходимости перегружать их значениями из системных проперти, то просто не аннотируйте класс:

public class ProxyProperties {
    public ProxyProperties() {
        PropertyLoader.populate(this);
    }

    @Property("proxy.host")
    private String host = "localhost"; //определено дефолтное значение <localhost>
   ...
}

Matchers-java

Собрание матчеров

WebDriver Matchers

Matchers library to work with WebDriver WebElement interface.

<dependency>
    <groupId>ru.yandex.qatools.matchers</groupId>
    <artifactId>webdriver-matchers</artifactId>
    <version>1.0-SNAPSHOT</version>
</dependency>

More Info

Collections Matchers

Matchers library to work with collections.

    <dependency>
        <groupId>ru.yandex.qatools.matchers</groupId>
        <artifactId>collection-matchers</artifactId>
        <version>1.0-SNAPSHOT</version>
    </dependency>

More Info

Matcher Decorators

Decorators which allows handle additional condition issues (e.g. timeouts) directly in the assertion statement.

<dependency>
    <groupId>ru.yandex.qatools.matchers</groupId>
    <artifactId>matcher-decorators</artifactId>
    <version>1.0-SNAPSHOT</version>
</dependency>

More Info

HtmlElements

PageObject enchantment

Include Html Elements in your project

Maven dependencies for Html Elements core:

<dependency>
    <groupId>ru.yandex.qatools.htmlelements</groupId>
    <artifactId>htmlelements-java</artifactId>
    <version>1.11</version>
</dependency>

And for Html Elements matchers:

<dependency>
    <groupId>ru.yandex.qatools.htmlelements</groupId>
    <artifactId>htmlelements-matchers</artifactId>
    <version>1.11</version>
</dependency>

And for Thucydides integration:

<dependency>
    <groupId>ru.yandex.qatools.htmlelements</groupId>
    <artifactId>htmlelements-thucydides</artifactId>
    <version>1.11</version>
</dependency>

Or you can include both modules at once if needed:

<dependency>
    <groupId>ru.yandex.qatools.htmlelements</groupId>
    <artifactId>htmlelements-all</artifactId>
    <version>1.11</version>
</dependency>