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

Автоматизатор мобильных приложений
онлайн, начало 11 августа
Тестирование безопасности
онлайн, начало 11 августа
Тестирование мобильных приложений
онлайн, начало 11 августа
Автоматизация тестирования REST API на Python
онлайн, начало 11 августа

Публикации pbezpal

39 публикаций создано pbezpal (учитываются публикации только с 05 августа 2020)



#172715 Сборка Maven проекта в jar файл

Отправлено автор: pbezpal 25 июня 2019 - 13:57 в Автоматизированное тестирование

Вроде разобрался что нужно писать.

package ru.minicom.itphone.client;

import org.junit.runner.JUnitCore;
import org.junit.runner.Result;
import org.junit.runner.notification.Failure;

public class RunTests {
public static void main(String[] args){
Result result = JUnitCore.runClasses(LoginPageTest.class);

System.out.println("Total number of tests " + result.getRunCount());

System.out.println("Total number of test failed " + result.getFailureCount());

for(Failure failure : result.getFailures()){
System.out.println(failure.getMessage());
}

System.out.println(result.wasSuccessful());
}
}

В pom.xml пописал

<configuration>
<archive>
<manifest>
<mainClass>ru.minicom.itphone.client.RunTests</mainClass>
</manifest>
</archive>
</configuration>

Но при компиляции теперь ругается 

 

D:\Project\ITPhone_Firelink\ver.8.0\Tests\ClientTest>mvn compile
[INFO] Scanning for projects...
[INFO]
[INFO] ------------< TestITPhoneClient:ru.minicom.itphone.client >-------------
[INFO] Building TestITPhoneClient 1.0
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ ru.minicom.itphone.client ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 10 resources
[INFO]
[INFO] --- maven-compiler-plugin:3.8.1:compile (default-compile) @ ru.minicom.itphone.client ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 5 source files to D:\Project\ITPhone_Firelink\ver.8.0\Tests\ClientTest\target\classes
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  1.158 s
[INFO] Finished at: 2019-06-25T16:53:34+03:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project ru.minicom.itphone.client: Fatal error compiling: invalid flag: --release -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException



#172696 Сборка Maven проекта в jar файл

Отправлено автор: pbezpal 24 июня 2019 - 09:43 в Автоматизированное тестирование

Всем привет!

 

Пытаюсь собрать Maven в jar файл средствами Intellij Idea. В интернете пишут, что нужно всего лишь сделать структуру pom.xml файла нужную и всё заработает. У меня pom.xml получился следующий

<?xml version="1.0" encoding="UTF-8"?>
<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>TestITPhoneClient</groupId>
<artifactId>ru.minicom</artifactId>
<packaging>jar</packaging>
<version>1.0</version>
<name>TestITPhoneClient</name>
<url>http://maven.apache.org</url>

<dependencies>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>3.141.59</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13-beta-1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.sikulix/sikulixapi -->
<dependency>
<groupId>com.sikulix</groupId>
<artifactId>sikulixapi</artifactId>
<version>1.1.2</version>
</dependency>
</dependencies>

<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.1.2</version>
<configuration>
<archive>
<manifest>
<mainClass>TestClass</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
</plugins>
</build>

</project>

При сборке никак не хочет появляться jar файл в директории target. В чём ошибка?

Прикрепленные изображения

  • Structure_project.jpg



#172736 Сборка Maven проекта в jar файл

Отправлено автор: pbezpal 26 июня 2019 - 09:48 в Автоматизированное тестирование

понятно) Значит собирать jar файл не нужно?




#172732 Сборка Maven проекта в jar файл

Отправлено автор: pbezpal 26 июня 2019 - 08:53 в Автоматизированное тестирование

Кстати нашёл неплохое описание для сборки maven

 

http://java-online.r...surefire-plugin




#172731 Сборка Maven проекта в jar файл

Отправлено автор: pbezpal 26 июня 2019 - 08:52 в Автоматизированное тестирование

С 100500 раза получилось собрать jar файл, но всё равно он не запускается(((

 

получился такой pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<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>TestITPhoneClient</groupId>
<artifactId>ru.minicom.itphone.client</artifactId>
<version>1.0</version>
<name>TestITPhoneClient</name>
<url>http://maven.apache.org</url>

<properties>
<!--region General-->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<!--<java.version>11</java.version>-->
<java.version>11</java.version>
<!--endregion-->
<!--region Libs -->
<selenium-java.version>3.141.59</selenium-java.version>
<sikulixapi.version>1.1.2</sikulixapi.version>
<jadb.version>94ebf38</jadb.version>
<junit.version>4.13-beta-1</junit.version>
<!--endregion-->
<!--region Plugins-->
<maven-compiler-plugin.version>3.8.1</maven-compiler-plugin.version>
<maven.compiler.release>${java.version}</maven.compiler.release><!-- for compiler plugin version >= 3.8 -->
<maven.compiler.parameters>true</maven.compiler.parameters>
<maven-jar-plugin.version>3.1.2</maven-jar-plugin.version>
<!--endregion-->
</properties>
<repositories>
<repository>
<id>Mulesoft</id>
<url>https://repository.mulesoft.org/nexus/content/repositories/public</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>${selenium-java.version}</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
</dependency>
<dependency><!-- https://mvnrepository.com/artifact/com.sikulix/sikulixapi -->
<groupId>com.sikulix</groupId>
<artifactId>sikulixapi</artifactId>
<version>${sikulixapi.version}</version>
<exclusions>
<exclusion>
<groupId>com.github.vidstige</groupId>
<artifactId>jadb</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.github.vidstige</groupId>
<artifactId>jadb</artifactId>
<version>${jadb.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.maven.surefire/surefire-junit4 -->
<dependency>
<groupId>org.apache.maven.surefire</groupId>
<artifactId>surefire-junit4</artifactId>
<version>3.0.0-M3</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>${maven-compiler-plugin.version}</version>
</plugin>
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<version>${maven-jar-plugin.version}</version>
<configuration>
<archive>
<manifest>
<mainClass>ru.minicom.itphone.client.RunTests</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0-M3</version>
<configuration>
<includes>
<include>**\LoginPageTest.java</include>
</includes>
<excludes>
<exclude>**\MainPageTest.java</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>

</project>

Класс RunTest

package ru.minicom.itphone.client;

import org.junit.runner.JUnitCore;
import org.junit.runner.Result;
import org.junit.runner.notification.Failure;

public class RunTests {
public static void main(String[] args){
Result result = JUnitCore.runClasses(LoginPageTest.class);

System.out.println("Total number of tests " + result.getRunCount());

System.out.println("Total number of test failed " + result.getFailureCount());

for(Failure failure : result.getFailures()){
System.out.println(failure.getMessage());
}

System.out.println(result.wasSuccessful());
}
}

И сам проект. После сборки проекта получается файл ru.minicom.itphone.client-1.0.jar. Когда его запускаю, ругается 

 

D:\Project\ITPhone_Firelink\ver.8.0\Tests\ClientTest>java -jar target\ru.minicom.itphone.client-1.0.jar
Error: Could not find or load main class ru.minicom.itphone.client.RunTests

Может дело в том, что класс RunTests находится в директории test?

 

Прикрепленные изображения

  • structure.jpg



#172712 Сборка Maven проекта в jar файл

Отправлено автор: pbezpal 25 июня 2019 - 12:36 в Автоматизированное тестирование

Получилось собрать проект в jar

 

http://forum.vingrad...pic-394115.html

 

Только теперь при запуске ругается

 

D:\Project\ITPhone_Firelink\ver.8.0\Tests\ClientTest>java -jar target\ru.minicom-1.0.jar
Error: Could not find or load main class mypackage.TestClass

Что нужно указывать вместо mypackage?




#172900 Ошибка при запуске тестов из консоли

Отправлено автор: pbezpal 12 июля 2019 - 11:15 в Автоматизированное тестирование

Всем привет!

 

Столкнулся с такой проблемой. Сделал параметризированные тесты

 

package ru.minicom.itphone.client;


import org.junit.Assert;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.MethodSource;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.openqa.selenium.WebDriver;


import java.io.File;
import java.io.IOException;
import java.net.MalformedURLException;
import java.util.ArrayList;
import java.util.Collection;


import static junit.framework.Assert.assertTrue;


@RunWith(Parameterized.class)
public class WindowLoginParametersTest {
    //private static String str = "!\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ЂЃ‚ѓ„…†‡€‰Љ‹ЊЌЋЏђ‘’“”•–—™љ›њќћџ ЎўЈ¤Ґ¦§Ё©Є«¬®Ї°±Ііґµ¶·ё№є»јЅѕїАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюяƒˆŠŒŽ˜šœžŸ¡¢£¥¨ª¯²³´¸¹º¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ";
    public static String str = "!\"#$%&";
    private static StartTest start = new StartTest();
    private static Process shell = null;
    private static WebDriver driver = null;
    private static WindowLogin windowLogin = null;
    private static String profile = System.getProperty("user.home") + "\\AppData\\Roaming\\IT-Phone\\Profiles";;


    @BeforeAll
    public static void startTest(){
        try {
            Assert.assertTrue("Севрер " + start.getServer() + " недоступен", start.pingServer());
        } catch (IOException e) {
            e.printStackTrace();
        }


        try {
            shell = start.RunWinum();
        } catch (IOException e) {
            e.printStackTrace();
        }


        Assert.assertNotNull("Winium.Desktop.Driver не запущен...", shell);


        start.deleteFolderProfile(new File(profile));


        try {
            driver = start.startClient();
        } catch (MalformedURLException e) {
            e.printStackTrace();
        }


        Assert.assertNotNull("RemoteWebDriver не запущен...",driver);


        windowLogin = new WindowLogin(driver);
    }


    @Parameterized.Parameters(name = "{0}")
    public static Collection<Character> Symbols(){
        ArrayList<Character> data = new ArrayList<>();


        for (char c : str.toCharArray()) data.add(c);


        return data;
    }


    @Parameterized.Parameters(name = "{0}")
    public static Collection<String> Text(){
        ArrayList<String> data = new ArrayList<>();
        String tempStr = "";


        for (char c : str.toCharArray()){
            tempStr = tempStr + c;
            if(tempStr.length() > 32) break;
            data.add(tempStr);
        }


        return data;
    }


    /*@Parameterized.Parameters(name = "{0}")
    public static Collection<String> textServer(){
        ArrayList<String> data = new ArrayList<>();
        String tempStr = "";


        for (char c : str.toCharArray()){
            tempStr = tempStr + c;
            data.add(tempStr);
        }


        return data;
    }*/


    @ParameterizedTest
    @MethodSource("Symbols")
    public void test_Symbols_Login(char symbol){
        windowLogin.setLogin(Character.toString(symbol));
        char[] rez = windowLogin.getLogin().toCharArray();
        assertTrue(symbol == rez[0]);
    }


    @ParameterizedTest
    @MethodSource("Text")
    public void test_Text_Login(String text){
        windowLogin.setLogin(text);
        assertTrue(text.equals(windowLogin.getLogin()));
    }


    /*@ParameterizedTest
    @MethodSource("Symbols")
    public void test_Symbols_Password(char symbol){
        windowLogin.setPassword(Character.toString(symbol));
        System.out.println("Password: " + windowLogin.getPassword());
        char[] rez = windowLogin.getPassword().toCharArray();
        assertTrue(symbol == rez[0]);
    }*/


    @ParameterizedTest
    @MethodSource("Symbols")
    public void test_Symbols_Server(char symbol){
        windowLogin.setServer(Character.toString(symbol));
        char[] rez = windowLogin.getServer().toCharArray();
        assertTrue(symbol == rez[0]);
    }


    /*@ParameterizedTest
    @MethodSource("textServer")
    public void test_Text_Server(String text){
        windowLogin.setServer(text);
        assertTrue(text.equals(windowLogin.getServer()));
    }*/


    @AfterAll
    public static void tearDown() {
        windowLogin.clickYesExitConfirmForm();
        Assert.assertFalse(windowLogin.isAvailableLoginWindow());
        if(shell != null) shell.destroy();
    }
}

Подключил необходимые библиотеки в maven

 

<?xml version="1.0" encoding="UTF-8"?>
<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>TestITPhoneClient</groupId>
    <artifactId>ru.minicom.itphone.client</artifactId>
    <version>1.0</version>
    <name>TestITPhoneClient</name>
    <url>http://maven.apache.org</url>


    <properties>
        <!--region General-->
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <!--<java.version>11</java.version>-->
        <java.version>1.8</java.version>
        <!--endregion-->
        <!--region Libs -->
        <selenium-java.version>3.141.59</selenium-java.version>
        <sikulixapi.version>1.1.2</sikulixapi.version>
        <jadb.version>94ebf38</jadb.version>
        <junit.version>4.12</junit.version>
        <junit.jupiter.version>5.5.0</junit.jupiter.version>
        <junit.parameters.version>1.1.1</junit.parameters.version>
        <ant.version>1.10.6</ant.version>
        <!--endregion-->
        <!--region Plugins-->
        <maven-compiler-plugin.version>3.8.1</maven-compiler-plugin.version>
        <maven.compiler.source>${java.version}</maven.compiler.source>
        <maven.compiler.target>${java.version}</maven.compiler.target>
        <maven-jar-plugin.version>3.1.2</maven-jar-plugin.version>


        <!--endregion-->
    </properties>
    <repositories>
        <repository>
            <id>Mulesoft</id>
            <url>https://repository.mulesoft.org/nexus/content/repositories/public</url>
        </repository>
    </repositories>
    <dependencies>
        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-java</artifactId>
            <version>${selenium-java.version}</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/pl.pragmatists/JUnitParams -->
        <dependency>
            <groupId>pl.pragmatists</groupId>
            <artifactId>JUnitParams</artifactId>
            <version>${junit.parameters.version}</version>
            <scope>test</scope>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-api -->
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-api</artifactId>
            <version>${junit.jupiter.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency><!-- https://mvnrepository.com/artifact/com.sikulix/sikulixapi -->
            <groupId>com.sikulix</groupId>
            <artifactId>sikulixapi</artifactId>
            <version>${sikulixapi.version}</version>
            <exclusions>
                <exclusion>
                    <groupId>com.github.vidstige</groupId>
                    <artifactId>jadb</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>com.github.vidstige</groupId>
            <artifactId>jadb</artifactId>
            <version>${jadb.version}</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.apache.maven.surefire/surefire-junit4 -->
        <dependency>
            <groupId>org.apache.maven.surefire</groupId>
            <artifactId>surefire-junit4</artifactId>
            <version>3.0.0-M3</version>
        </dependency>
        <dependency>
            <groupId>io.appium</groupId>
            <artifactId>java-client</artifactId>
            <version>6.0.0</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>${junit.version}</version>
            <scope>test</scope>
        </dependency>
        <!-- https://mvnrepository.com/artifact/junit/junit-dep -->
        <!--<dependency>
            <groupId>junit</groupId>
            <artifactId>junit-dep</artifactId>
            <version>4.11</version>
            <type>pom</type>
            <scope>test</scope>
        </dependency>-->
        <!-- https://mvnrepository.com/artifact/org.junit/junit5-engine -->
        <dependency>
            <groupId>org.junit</groupId>
            <artifactId>junit5-engine</artifactId>
            <version>5.0.0-ALPHA</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.junit.platform/junit-platform-commons -->
        <dependency>
            <groupId>org.junit.platform</groupId>
            <artifactId>junit-platform-commons</artifactId>
            <version>1.5.0</version>
        </dependency>
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-params</artifactId>
            <version>${junit.jupiter.version}</version>
            <scope>test</scope>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.junit.vintage/junit-vintage-engine -->
        <dependency>
            <groupId>org.junit.vintage</groupId>
            <artifactId>junit-vintage-engine</artifactId>
            <version>${junit.jupiter.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-engine</artifactId>
            <version>5.5.0</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-failsafe-plugin</artifactId>
            <version>3.0.0-M3</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>${maven-compiler-plugin.version}</version>
            </plugin>
            <!--<plugin>
                <artifactId>maven-jar-plugin</artifactId>
                <version>${maven-jar-plugin.version}</version>
                <configuration>
                    <archive>
                        <manifest>
                            <mainClass>ru.minicom.itphone.client.RunTests</mainClass>
                        </manifest>
                    </archive>
                </configuration>
            </plugin>-->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>3.0.0-M3</version>
                <configuration>
                    <trimStackTrace>false</trimStackTrace>
                    <includes>
                        <include>**\WindowLoginTest.java</include>
                        <include>**\WindowMainTest.java</include>
                        <include>**\WindowSearchContactsTest.java</include>
                        <include>**\WindowCallsTest.java</include>
                        <!--<include>**\WindowLoginParametersTest.java</include>-->
                    </includes>
                    <!--<excludes>
                        <exclude>**\NewTestClient.java</exclude>
                    </excludes>-->
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-failsafe-plugin</artifactId>
                <version>3.0.0-M3</version>
                <!-- https://mvnrepository.com/artifact/org.apache.maven.plugins/maven-failsafe-plugin -->
                <!--<dependencies>
                    <dependency>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-failsafe-plugin</artifactId>
                        <version>3.0.0-M3</version>
                        <scope>test</scope>
                    </dependency>
                </dependencies>-->
            </plugin>
            <plugin>
                <groupId>org.jvnet.maven-antrun-extended-plugin</groupId>
                <artifactId>maven-antrun-extended-plugin</artifactId>
                <dependencies>
                    <dependency>
                        <groupId>org.apache.ant</groupId>
                        <artifactId>ant-junit</artifactId>
                        <version>${ant.version}</version>
                    </dependency>
                    <dependency>
                        <groupId>org.apache.ant</groupId>
                        <artifactId>ant-trax</artifactId>
                        <version>1.8.0</version>
                    </dependency>
                </dependencies>
                <executions>
                    <execution>
                        <id>test-reports</id>
                        <phase>test</phase>
                        <configuration>
                            <tasks>
                                <junitreport todir="target/surefire-reports">
                                    <fileset dir="target/surefire-reports">
                                        <include name="**/*.xml" />
                                    </fileset>
                                    <report format="noframes" todir="target/surefire-reports/html" />
                                </junitreport>
                                <!--<tstamp>
                                    <format property="datetime" pattern="yyyyMMddHHmmss" />
                                </tstamp>-->
                                <move
                                        file="target/surefire-reports/html/junit-noframes.html"
                                        tofile="target/surefire-reports/html/client-test-report.html" />
                            </tasks>
                        </configuration>
                        <goals>
                            <goal>run</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>

Теперь при запуске тестов из консоли

mvn compile && mvn package -Dmaven.test.skip=true && mvn test

У меня вываливается сообщение об ошибке

 

[INFO] -------------------------------------------------------
[INFO]  T E S T S
[INFO] -------------------------------------------------------
июл 12, 2019 2:15:13 PM org.junit.platform.launcher.core.DefaultLauncher handleThrowable
WARNING: TestEngine with ID 'junit-vintage' failed to discover tests
org.junit.platform.commons.JUnitException: Failed to parse version of junit:junit: 3.8.1
        at org.junit.vintage.engine.JUnit4VersionCheck.parseVersion(JUnit4VersionCheck.java:54)
        at org.junit.vintage.engine.JUnit4VersionCheck.checkSupported(JUnit4VersionCheck.java:37)
        at org.junit.vintage.engine.JUnit4VersionCheck.checkSupported(JUnit4VersionCheck.java:32)
        at org.junit.vintage.engine.VintageTestEngine.discover(VintageTestEngine.java:61)
        at org.junit.platform.launcher.core.DefaultLauncher.discoverEngineRoot(DefaultLauncher.java:168)
        at org.junit.platform.launcher.core.DefaultLauncher.discoverRoot(DefaultLauncher.java:155)
        at org.junit.platform.launcher.core.DefaultLauncher.discover(DefaultLauncher.java:120)
        at org.apache.maven.surefire.junitplatform.TestPlanScannerFilter.accept(TestPlanScannerFilter.java:56)
        at org.apache.maven.surefire.util.DefaultScanResult.applyFilter(DefaultScanResult.java:102)
        at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.scanClasspath(JUnitPlatformProvider.java:143)
        at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invoke(JUnitPlatformProvider.java:124)
        at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:384)
        at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:345)
        at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:126)
        at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:418)

 




#172928 Ошибка при запуске тестов из консоли

Отправлено автор: pbezpal 15 июля 2019 - 13:37 в Автоматизированное тестирование

И это победил) 

 

 <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>3.0.0-M3</version>
                <configuration>
                    <trimStackTrace>false</trimStackTrace>
                    <includes>
                        <!--<include>**\WindowLoginTest.java</include>
                        <include>**\WindowMainTest.java</include>
                        <include>**\WindowSearchContactsTest.java</include>
                        <include>**\WindowCallsTest.java</include>-->
                        <include>**\testWindowLogin.java</include>
                    </includes>
                    <!--<excludes>
                        <exclude>**\NewTestClient.java</exclude>
                    </excludes>-->
                </configuration>
                <!-- https://mvnrepository.com/artifact/org.junit.platform/junit-platform-surefire-provider -->
                <dependencies>
                    <dependency>
                        <groupId>org.junit.platform</groupId>
                        <artifactId>junit-platform-surefire-provider</artifactId>
                        <version>1.3.2</version>
                        <!--<scope>test</scope>-->
                    </dependency>
                </dependencies>
            </plugin>



#172927 Ошибка при запуске тестов из консоли

Отправлено автор: pbezpal 15 июля 2019 - 12:36 в Автоматизированное тестирование

Если в IDE нормально стартует то проблема где-то в зависимостях которые вы в pom прописали. У вас же была ошибка и вы туда какую-то зависимость подтянули, вот отсюда и нужна плясать

Все оказалось проще! Junit 5 не поддерживает аннотацию 

@RunWith(Parameterized.class)

После того, как убрал аннотацию ошибка перестала появляться, но и тесты из консоли перестали запускаться(((




#174260 Ошибка при запуске selenoid в docker-compose

Отправлено автор: pbezpal 29 октября 2019 - 13:17 в Управление тестированием

Всем привет! Я только начал изучать docker и как с ним работать. Никак не получается запустить selenoid в docker-compose

Создал docker-compose.yml

 

version: '3'
services:
  selenoid:
    network_mode: bridge
    image: aerokube/selenoid:latest-release
    container_name: "selenoid"
    volumes:
      - "$PWD/selenoid:/etc/selenoid"
      - "/var/run/docker.sock:/var/run/docker.sock"
      - "$PWD/selenoid/video:/opt/selenoid/video"
      - "$PWD/selenoid/logs:/opt/selenoid/logs"
    environment:
      - OVERRIDE_VIDEO_OUTPUT_DIR=$PWD/selenoid/video
    command: ["-conf", "/etc/selenoid/browsers.json", "-video-output-dir", "/opt/selenoid/video", "-log-output-dir", "/opt/selenoid/logs"]
    ports:
      - "4444:4444"
  selenoid-ui:
    image: aerokube/selenoid-ui
    container_name: "selenoid-ui"
    network_mode: bridge
    links:
      - selenoid
    ports:
      - "8080:8080"
    command: ["--selenoid-uri","http://selenoid:4444"]
  jenkins:
    image: "jenkins:latest"
    container_name: "jenkins"
    volumes:
      - "/home/sysadm/rmo_test_docker/jenkins:/var/jenkins_home"
      - "/var/run/docker.sock:/var/run/docker.sock"
    environment:
      JENKINS_HOST_HOME: "/home/sysadm/jenkins_home"
    ports:
      - 8088:8080
      - 5000:5000
      - 50000:50000

jenkins и selenoid-ui запускаются и работают корректно, но selenoid выдает такое сообщение в логи:

sysadm@ubuntu:~/rmo_test_docker$ docker-compose logs -f selenoid
Attaching to selenoid
selenoid       | 2019/10/29 12:54:44 [-] [INIT] [Loading configuration files...]
selenoid       | 2019/10/29 12:54:44 [-] [INIT] [/usr/bin/selenoid: browsers config: read error: open /etc/selenoid/browsers.json: no such file or directory]
selenoid       | 2019/10/29 12:55:57 [-] [INIT] [Loading configuration files...]
selenoid       | 2019/10/29 12:55:57 [-] [INIT] [/usr/bin/selenoid: browsers config: read error: open /etc/selenoid/browsers.json: no such file or directory]
selenoid exited with code 1

Кто сталкивался с такой проблемой и, как победили её?




#174261 Ошибка при запуске selenoid в docker-compose

Отправлено автор: pbezpal 29 октября 2019 - 13:59 в Управление тестированием

Решил проблему. Было некорректное имя конфигурационного файла. Должно быть $PWD/selenoid/browsers.json, а у меня было $PWD/selenoid/browser.json

Мучался несколько часов с этой ошибкой. Фух




#172553 Не передаётся значение перменной

Отправлено автор: pbezpal 10 июня 2019 - 11:33 в Selenium - Functional Testing

Всё нашел ошибку) Неправильный локатор указал. Вместо select нужно было поставить input))

Прикрепленные изображения

  • value_var.jpg



#172550 Не передаётся значение перменной

Отправлено автор: pbezpal 10 июня 2019 - 11:27 в Selenium - Functional Testing

Всем привет! Уже всю голову сломал себе, но хоть убей не понимаю, почему не передается параметр переменной в качестве значения атрибута.

 

 

Прикрепленные изображения

  • value_var.jpg



#173152 Не отрабатывает второй actions

Отправлено автор: pbezpal 01 августа 2019 - 07:22 в Автоматизированное тестирование

Всем привет!

Столкнулся с такой проблемой, что действия Actions не выполняются одно за другим.

Первый actions

public void callPropertiesClient(){
 if(isWaitElement(nameIconClientBy, 10, "",7)) {
  actions.contextClick(driver.findElement(nameIconClientBy)).perform();
  driver.findElement(contextMenuBy).findElement(propertiesBy).click();
}
}

Здесь кликаю правой кнопкой мыши на иконку на рабочем столе и нажимаю “Свойства”

Далее меняю свойство запуска программы и нажимаю ОК

public WebElement getElementTextObject(){ return driver.findElements(textFieldBy).get(1); }

public void setPropertiesClient(String textObject){
 getElementTextObject().clear();
 getElementTextObject().sendKeys(textObject);
}

public void clickOkPropertiesClient(){
 driver.findElement(buttonOkBy).click();
 if(isWaitElement(buttonContinuesBy, 10, "", 7)) driver.findElement(buttonContinuesBy).click();
}

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

public void clickIconClient(){
 if(isWaitElement(nameIconClientBy, 10, "",7)) actions.doubleClick(driver.findElement(nameIconClientBy)).perform();
}

Так вот этот двойной клики по иконке не отрабатывает. Хотя если запускаю просто двойной клик, то работает прекрасно. Как сделать, чтобы второй actions отрабатывал? Спасибо!




#173153 Как передать разные capabilities? (WebDriver)

Отправлено автор: pbezpal 01 августа 2019 - 07:34 в Автоматизированное тестирование

Используйте WebDriverFactory, очень удобная вещь

 

https://www.selenium...verfactory.html

 

Вот мой пример, правда с использованием Winium, но думаю смысл понятен

cap = new DesiredCapabilities();
//System.out.println("Инициализирован WebDriver на порту 9999");
cap.setCapability("app", "C:\\Program Files (x86)\\SoftPhone\\CLIENT\\SoftPhoneClient.exe");
//System.out.println("Клиент it-phone запущен");
cap.setCapability("launchDelay", "5");

try {
return WebDriverPool.DEFAULT.getDriver(new URL("http://localhost:9999"), cap);
} catch (MalformedURLException e) {
return null;
}



#176506 Как лучше организовать архитектуру тестов

Отправлено автор: pbezpal 13 мая 2020 - 09:49 в Про тестирование обо всём подряд

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

Я выношу всю реализацию в раздел main, а сами тесты выношу в раздел test

 

ffeeb5c57f3a99e8e9191969d4a0e0ae0af78e19

 

Коллега все делает в разделе test

ccc0831c122b5337e016d1493db989b756c15584

 

Интересно ваше мнение по поводу того, как лучше реализовывать проект. Всё делать в разделе test или всё же всю обработку выносить в раздел main. Спасибо




#173681 Автоматизированное тестирование/запись кликов

Отправлено автор: pbezpal 10 сентября 2019 - 11:06 в Автоматизированное тестирование

Selenium IDE (если еще жив), Katalon

Жив. Недавно обучение по нему прошёл




#172796 Winium не находит кнопку

Отправлено автор: pbezpal 01 июля 2019 - 12:45 в Автоматизированное тестирование

Попробую расписать поподробнее:

 

Тестирую программу на Windows 10.

  1. Авторизуюсь на сервере
  2. После авторизации, программа сворачивается в иконку, которая находится в tree
  3. Вызываю окно настроек (см. рис. 1)
  4. Переключаюсь на вкладку “Управление” (см. рис. 2)
  5. Во вкладке “Управление” нужно нажать на кнопку “Открыть”

Сейчас дохожу до вкладки “Управление” и дальше Winium не видит кнопки “Открыть”.

Как видно на последнем изображении, элементов “Управление” Winium определяет всего один и это элемент вкладки. Элементов кнопок с названием “Открыть” вообще нет. Можно ли как-то достучаться до элементов кнопок и элемента “Управление” панель? Может есть у кого какие идеи или мысли, потому как у меня пока уже мыслей нет. И в интернете ничего не нашёл подходящего

Прикрепленные изображения

  • 1.png
  • 2.png
  • analize.png



#172753 Winium не находит кнопку

Отправлено автор: pbezpal 27 июня 2019 - 14:13 в Автоматизированное тестирование

Всем привет! Уже себе всю голову сломал, но так и не смог постичь тонкости Winium'a

 

У меня открывается окно, в котором я перехожу на вкладку "Управление". Когда переходу на вкладку, появляются элементы, с которыми нужно взаимодействовать. Но т.к. начал только разбираться с Winium, не хватает знаний, как добраться до этой самой кнопки.

 

Уже и вверх ходил, через запрос xpath "parent:: " и мне кажется чего только не перепробовал уже, но не находит кнопку и все.

 

Прикрепленные изображения

  • elementButton.png



#172895 Winium не возвращает значение в поле типа password

Отправлено автор: pbezpal 12 июля 2019 - 06:44 в Автоматизированное тестирование

Привет!
 
Сразу скажу, что хакерством не занимаюсь, но начал изучать Winium, JUnit со всеми их возможностями.
 
Столкнулся вот с какой проблемой, делаю параметрическое тестирование на допустимые символы в окне авторизации и поле пароль не возвращает значение для сравнения. Вот сам тест
 
 
package ru.minicom.itphone.client;


import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.ClassRule;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.MethodSource;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.openqa.selenium.WebDriver;


import java.io.File;
import java.io.IOException;
import java.net.MalformedURLException;
import java.util.ArrayList;
import java.util.Collection;


import static junit.framework.Assert.assertTrue;


@RunWith(Parameterized.class)
public class WindowLoginParametersTest {
    //private static String str = "!\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ЂЃ‚ѓ„…†‡€‰Љ‹ЊЌЋЏђ‘’“”•–—™љ›њќћџ ЎўЈ¤Ґ¦§Ё©Є«¬®Ї°±Ііґµ¶·ё№є»јЅѕїАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюяƒˆŠŒŽ˜šœžŸ¡¢£¥¨ª¯²³´¸¹º¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ";
    public static String str = "!\"#$%&";
    private static StartTest start = new StartTest();
    private static Process shell = null;
    private static WebDriver driver = null;
    private static WindowLogin windowLogin = null;
    private static String profile = System.getProperty("user.home") + "\\AppData\\Roaming\\IT-Phone\\Profiles";;


    @BeforeAll
    public static void startTest(){
        try {
            Assert.assertTrue("Севрер " + start.getServer() + " недоступен", start.pingServer());
        } catch (IOException e) {
            e.printStackTrace();
        }


        try {
            shell = start.RunWinum();
        } catch (IOException e) {
            e.printStackTrace();
        }


        Assert.assertNotNull("Winium.Desktop.Driver не запущен...", shell);


        start.deleteFolderProfile(new File(profile));


        try {
            driver = start.startClient();
        } catch (MalformedURLException e) {
            e.printStackTrace();
        }


        Assert.assertNotNull("RemoteWebDriver не запущен...",driver);


        windowLogin = new WindowLogin(driver);
    }


    @Parameterized.Parameters(name = "{0}")
    public static Collection<Character> Symbols(){
        ArrayList<Character> data = new ArrayList<>();


        for (char c : str.toCharArray()) data.add(c);


        return data;
    }






    @ParameterizedTest
    @MethodSource("Symbols")
    public void test_Parameters_Login(char symbol){
        windowLogin.setLogin(Character.toString(symbol));
        char[] rez = windowLogin.getLogin().toCharArray();
        assertTrue(symbol == rez[0]);
    }


    @ParameterizedTest
    @MethodSource("Symbols")
    public void test_Parameters_Password(char symbol){
        windowLogin.setPassword(Character.toString(symbol));
        char[] rez = windowLogin.getPassword().toCharArray();
        assertTrue(symbol == rez[0]);
    }


    @ParameterizedTest
    @MethodSource("Symbols")
    public void test_Parameters_Server(char symbol){
        windowLogin.setServer(Character.toString(symbol));
        char[] rez = windowLogin.getServer().toCharArray();
        assertTrue(symbol == rez[0]);
    }


    @AfterAll
    public static void tearDown() {
        windowLogin.clickYesExitConfirmForm();
        Assert.assertFalse(windowLogin.isAvailableLoginWindow());
        if(shell != null) shell.destroy();
    }
}

 




#172709 Winium Desktop Driver не находит окно

Отправлено автор: pbezpal 25 июня 2019 - 11:25 в Автоматизированное тестирование

Добавил в проверку ожидание

//Здесь проверяем, что элемент mainWindowBy существует
public boolean checkMainWindow(){
try{
new WebDriverWait(driver, 20).until(ExpectedConditions.presenceOfElementLocated(mainWindowBy));
return true;
}catch(NoSuchElementException e){
return false;
}
}

И получил ошибку

 

"C:\Program Files\Java\jdk1.8.0_201\bin\java.exe" -ea -Didea.test.cyclic.buffer.size=1048576 "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2019.1\lib\idea_rt.jar=21067:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2019.1\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2019.1\lib\idea_rt.jar;C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2019.1\plugins\junit\lib\junit-rt.jar;C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2019.1\plugins\junit\lib\junit5-rt.jar;C:\Program Files\Java\jdk1.8.0_201\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_201\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_201\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_201\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0_201\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_201\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0_201\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0_201\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0_201\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0_201\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0_201\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0_201\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0_201\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0_201\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.8.0_201\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0_201\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_201\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_201\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0_201\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_201\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0_201\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0_201\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_201\jre\lib\rt.jar;D:\Project\ITPhone_Firelink\ver.8.0\Tests\ClientTest\target\test-classes;D:\Project\ITPhone_Firelink\ver.8.0\Tests\ClientTest\target\classes;C:\Users\pbezpal\.m2\repository\org\seleniumhq\selenium\selenium-java\3.141.59\selenium-java-3.141.59.jar;C:\Users\pbezpal\.m2\repository\org\seleniumhq\selenium\selenium-api\3.141.59\selenium-api-3.141.59.jar;C:\Users\pbezpal\.m2\repository\org\seleniumhq\selenium\selenium-chrome-driver\3.141.59\selenium-chrome-driver-3.141.59.jar;C:\Users\pbezpal\.m2\repository\org\seleniumhq\selenium\selenium-edge-driver\3.141.59\selenium-edge-driver-3.141.59.jar;C:\Users\pbezpal\.m2\repository\org\seleniumhq\selenium\selenium-firefox-driver\3.141.59\selenium-firefox-driver-3.141.59.jar;C:\Users\pbezpal\.m2\repository\org\seleniumhq\selenium\selenium-ie-driver\3.141.59\selenium-ie-driver-3.141.59.jar;C:\Users\pbezpal\.m2\repository\org\seleniumhq\selenium\selenium-opera-driver\3.141.59\selenium-opera-driver-3.141.59.jar;C:\Users\pbezpal\.m2\repository\org\seleniumhq\selenium\selenium-remote-driver\3.141.59\selenium-remote-driver-3.141.59.jar;C:\Users\pbezpal\.m2\repository\org\seleniumhq\selenium\selenium-safari-driver\3.141.59\selenium-safari-driver-3.141.59.jar;C:\Users\pbezpal\.m2\repository\org\seleniumhq\selenium\selenium-support\3.141.59\selenium-support-3.141.59.jar;C:\Users\pbezpal\.m2\repository\net\bytebuddy\byte-buddy\1.8.15\byte-buddy-1.8.15.jar;C:\Users\pbezpal\.m2\repository\org\apache\commons\commons-exec\1.3\commons-exec-1.3.jar;C:\Users\pbezpal\.m2\repository\com\google\guava\guava\25.0-jre\guava-25.0-jre.jar;C:\Users\pbezpal\.m2\repository\com\google\code\findbugs\jsr305\1.3.9\jsr305-1.3.9.jar;C:\Users\pbezpal\.m2\repository\org\checkerframework\checker-compat-qual\2.0.0\checker-compat-qual-2.0.0.jar;C:\Users\pbezpal\.m2\repository\com\google\errorprone\error_prone_annotations\2.1.3\error_prone_annotations-2.1.3.jar;C:\Users\pbezpal\.m2\repository\com\google\j2objc\j2objc-annotations\1.1\j2objc-annotations-1.1.jar;C:\Users\pbezpal\.m2\repository\org\codehaus\mojo\animal-sniffer-annotations\1.14\animal-sniffer-annotations-1.14.jar;C:\Users\pbezpal\.m2\repository\com\squareup\okhttp3\okhttp\3.11.0\okhttp-3.11.0.jar;C:\Users\pbezpal\.m2\repository\com\squareup\okio\okio\1.14.0\okio-1.14.0.jar;C:\Users\pbezpal\.m2\repository\junit\junit\4.13-beta-1\junit-4.13-beta-1.jar;C:\Users\pbezpal\.m2\repository\org\hamcrest\hamcrest-core\1.3\hamcrest-core-1.3.jar;C:\Users\pbezpal\.m2\repository\com\sikulix\sikulixapi\1.1.2\sikulixapi-1.1.2.jar;C:\Users\pbezpal\.m2\repository\commons-cli\commons-cli\1.2\commons-cli-1.2.jar;C:\Users\pbezpal\.m2\repository\commons-net\commons-net\3.4\commons-net-3.4.jar;C:\Users\pbezpal\.m2\repository\com\github\tulskiy\jkeymaster\1.2\jkeymaster-1.2.jar;C:\Users\pbezpal\.m2\repository\net\java\dev\jna\jna\4.2.1\jna-4.2.1.jar;C:\Users\pbezpal\.m2\repository\org\slf4j\slf4j-api\1.7.13\slf4j-api-1.7.13.jar;C:\Users\pbezpal\.m2\repository\org\slf4j\slf4j-nop\1.7.25\slf4j-nop-1.7.25.jar;C:\Users\pbezpal\.m2\repository\com\melloware\jintellitype\1.3.7\jintellitype-1.3.7.jar;C:\Users\pbezpal\.m2\repository\com\nativelibs4java\bridj\0.7.0\bridj-0.7.0.jar;C:\Users\pbezpal\.m2\repository\com\google\android\tools\dx\1.7\dx-1.7.jar;C:\Users\pbezpal\.m2\repository\com\sikulix\sikulixlibswin\1.1.1\sikulixlibswin-1.1.1.jar;C:\Users\pbezpal\.m2\repository\com\sikulix\sikulix2tigervnc\2.0.0-SNAPSHOT\sikulix2tigervnc-2.0.0-20180306.143551-15.jar;C:\Users\pbezpal\.m2\repository\com\github\vidstige\jadb\94ebf38\jadb-94ebf38.jar" com.intellij.rt.execution.junit.JUnitStarter -ideVersion5 -junit4 MainPageTest,testCallMainWindowIconTree
июн 25, 2019 2:21:23 PM org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Detected dialect: OSS
[log] CLICK on L(1648,1060)@S(0)[0,0 1920x1080] (547 msec)


org.openqa.selenium.TimeoutException: Expected condition failed: waiting for presence of element located by: By.className: TfrmMain (tried for 60 second(s) with 500 milliseconds interval)


at org.openqa.selenium.support.ui.WebDriverWait.timeoutException(WebDriverWait.java:95)
at org.openqa.selenium.support.ui.FluentWait.until(FluentWait.java:272)
at MainPage.checkMainWindow(MainPage.java:64)
at MainPageTest.testCallMainWindowIconTree(MainPageTest.java:43)
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:498)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
at org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:349)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:314)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:312)
at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:292)
at org.junit.runners.ParentRunner.run(ParentRunner.java:396)
at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
Caused by: org.openqa.selenium.NoSuchElementException: Element cannot be found (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 0 milliseconds
For documentation on this error, please visit: https://www.seleniumhq.org/exceptions/no_such_element.html
Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:17:03'
System info: host: 'DESKTOP-CBDE5N6', ip: '10.10.11.68', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_201'
Driver info: org.openqa.selenium.remote.RemoteWebDriver
Capabilities {app: C:\Program Files (x86)\Soft..., args: , debugConnectToRunningApp: false, innerPort: 9998, javascriptEnabled: true, keyboardSimulator: 1, launchDelay: 5, platform: ANY, platformName: ANY}
Session ID: AwesomeSession
*** Element info: {Using=class name, value=TfrmMain}
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:214)
at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:166)
at org.openqa.selenium.remote.http.JsonHttpResponseCodec.reconstructValue(JsonHttpResponseCodec.java:40)
at org.openqa.selenium.remote.http.AbstractHttpResponseCodec.decode(AbstractHttpResponseCodec.java:80)
at org.openqa.selenium.remote.http.AbstractHttpResponseCodec.decode(AbstractHttpResponseCodec.java:44)
at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:158)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:552)
at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:323)
at org.openqa.selenium.remote.RemoteWebDriver.findElementByClassName(RemoteWebDriver.java:412)
at org.openqa.selenium.By$ByClassName.findElement(By.java:389)
at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:315)
at org.openqa.selenium.support.ui.ExpectedConditions$6.apply(ExpectedConditions.java:182)
at org.openqa.selenium.support.ui.ExpectedConditions$6.apply(ExpectedConditions.java:179)
at org.openqa.selenium.support.ui.FluentWait.until(FluentWait.java:249)
... 27 more




Process finished with exit code -1



#172819 Winium Desktop Driver не находит окно

Отправлено автор: pbezpal 03 июля 2019 - 05:53 в Автоматизированное тестирование

Кажется решил проблему

driver.switchTo().activeElement()

Получаю тот самый @ClassName='TfrmMain'




#172710 Winium Desktop Driver не находит окно

Отправлено автор: pbezpal 25 июня 2019 - 11:35 в Автоматизированное тестирование

Смущает, что UIAVerify не может найти это окно. Может в этом всё дело




#172725 Winium Desktop Driver не находит окно

Отправлено автор: pbezpal 26 июня 2019 - 07:34 в Автоматизированное тестирование

Спасибо за подсказку) Не прокатило  :sad:  Буду делать проверку через Sikuli




#172706 Winium Desktop Driver не находит окно

Отправлено автор: pbezpal 25 июня 2019 - 09:03 в Автоматизированное тестирование

Всем привет!

 

Написал тест для проверки появления окна при определенных действиях. Ищу окно по параметру className. Вот мой код для проверки существования окна

import org.openqa.selenium.By;
import org.openqa.selenium.NoSuchElementException;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
import org.sikuli.script.FindFailed;
import org.sikuli.script.Pattern;
import org.sikuli.script.Screen;

import java.awt.*;
import java.awt.event.KeyEvent;

public class MainPage {

HelperClass hclass = new HelperClass();

private Screen screen;
private WebDriver driver;
private By iconAdditionalClientTreeBy = By.name("Поиск контакта");
private By treeBy = By.name("Шеврон уведомления");
private By mainWindowBy = By.className("TfrmMain"); //Вот этот className
private Pattern imgIconClientTreeBy = hclass.newPattern("tree.JPG");
private Pattern imgMainWindowMenu = hclass.newPattern("mainWindowMenu.jpg");
private Pattern imgExitButton = hclass.newPattern("exit.jpg");
private Robot robot;


public MainPage(Screen screen, WebDriver driver){
this.screen = screen;
this.driver = driver;
}

//Проверяем, есть ли дополнительная иконка клиента
public boolean checkIconAdditionalClientTree(){
try{
new WebDriverWait(driver, 60).until(ExpectedConditions.presenceOfElementLocated(iconAdditionalClientTreeBy));
return true;
}catch (NoSuchElementException e){
return false;
}
}


public void callMainWindowHotButtons() throws AWTException {
robot = new Robot();
if(checkIconAdditionalClientTree()){
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_SHIFT);
robot.keyPress(KeyEvent.VK_F1);
}
}

public void callMainWindowIconTree(String login) throws FindFailed {
if(checkIconAdditionalClientTree()){
screen.click(imgIconClientTreeBy);
driver.findElement(By.name("[" + login + "] - В сети")).click();
}

}

//Здесь проверяем, что элемент mainWindowBy существует
public boolean checkMainWindow(){
try{
driver.findElement(mainWindowBy);
return true;
}catch(NoSuchElementException e){
return false;
}
}

public void clickExitButton() throws FindFailed {
screen.click(imgMainWindowMenu);
screen.click(imgExitButton);
}

}

 Вот тест для проверки окна

import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.remote.RemoteWebDriver;
import org.sikuli.script.FindFailed;
import org.sikuli.script.Screen;

import java.io.File;
import java.io.IOException;
import java.net.URL;

public class MainPageTest {

private Process shell;
private WebDriver driver;
private Screen screen;
private String profile = System.getProperty("user.home") + "\\AppData\\Roaming\\IT-Phone\\Profiles";;
private boolean windowMain;
private String login;
private String password;
private String server;

@Before
public void setUp() throws IOException {
StartTest start = new StartTest();
shell = start.RunWinum();
start.deleteFolderProfile(new File(profile));
driver = new RemoteWebDriver(new URL("http://localhost:9999"), start.startClient());
screen = new Screen();
}

@Test
public void testCallMainWindowIconTree() throws FindFailed {
MainPage mainPage = new MainPage(screen, driver);
LoginPage loginPage = new LoginPage(screen, driver);
login = "2001";
password = "o0cJ2uas";
server = "172.22.50.100";
loginPage.enterDataFields(login, password, server);
loginPage.clickEnterButton();
mainPage.checkIconAdditionalClientTree();
mainPage.callMainWindowIconTree(login);
windowMain = mainPage.checkMainWindow();
mainPage.clickExitButton();
System.out.println(windowMain);
Assert.assertTrue(windowMain);
}

@After
public void tearDown(){
shell.destroy();
}
}

Тест выдаёт результат false, хотя вижу, что окно появляется 

 

 

Прикрепленные изображения

  • classname.jpg
  • test_result.jpg




Яндекс.Метрика
Реклама на портале