Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

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


(Sergey356) #1

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

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

У меня код такого вида:

 

public class KupiVipSmokeTest extends TestSuite {
    public static Test suite() {
        TestSuite suite = new TestSuite(KupiVipSmokeTest.class.getName());
        //$JUnit-BEGIN$
        // Регистрация пользователя
       suite.addTestSuite(NewUserRegistrationTest.class);
       suite.addTestSuite(AlreadyRegUserTest.class);
       suite.addTestSuite(RegFailedTest.class);
       //$JUnit-END$
       return suite;
   }
}
 
Проект:

 


(devnull) #2

как насчет testNg и варианта "

java org.testng.TestNG testng1.xml [testng2.xml testng3.xml ...]

"?

 

Доки по тестНг можно просмотереть тут  или в гугле


(Hohner) #3

Можно попробовать использовать Ant.

В этой теме можно и пример найти: http://automated-testing.info/forum/ant-pageobject-junit-posledovatelnost-targetov


(d3unka) #4

Не делайте велосипед. Прикрутите ant или maven и облегчите себе жизнь.

Но если уж сильно хочется батник, то 

 

set SELENIUM_HOME=d:\tools\java\selenium
 
set CLASSPATH=.\bin;%SELENIUM_HOME%\selenium-server-standalone-2.8.0.jar;
 
java org.testng.TestNG %* testng.xml
 
P.S. Все три примера должны быть в материалах моего доклада на первой AutoConfetQA https://dl.dropbox.com/u/10632790/ConfetQARedmine.zip

(gausner) #5

Добрый день!

Столкнулся с такой же проблемой - надо запустить из командной строки тест testNG.

Мучился три дня, пока не нашёл Ваш совет. Огромное спасибо!

Скажите, а можно ли в батнике прописать ещё и чтобы сервер селениум запускался из батника?

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

 

Заранее огромное спасибо.


(Mykhailo Poliarush) #6

зачем вам запуск сервера?

вы запускаете тесты через selenium grid? или с помощью selenium RC?


(gausner) #7

Я  запускаю через selenium RC. Зачем - ну чтобы в батнике сразу всё прописать и чтобы само всё запускалось )


(Mykhailo Poliarush) #8

тогда вам лучше встроить запуск сервера в сами тесты а не в батник

и запуска сервер программно

SeleniumServer _server = new SeleniumServer();
_server.boot();
_server.start();

и вот даже скопировал вам код сюда :)

http://www.testingexcellence.com/how-to-start-selenium-server-with-java-code/

 

package com.company;
import org.openqa.selenium.server.RemoteControlConfiguration;
import org.openqa.selenium.server.SeleniumServer;
import com.thoughtworks.selenium.Selenium;
import java.net.BindException;
import java.net.ServerSocket;
 
public class Server {
    public static SeleniumServer server;
    public static void startSeleniumServer() throws Exception {
 
       try {
   ServerSocket serverSocket = new ServerSocket(RemoteControlConfiguration.DEFAULT_PORT);
   serverSocket.close();
           //Server not up, start it
           try {
            RemoteControlConfiguration rcc = new RemoteControlConfiguration();
            rcc.setPort(RemoteControlConfiguration.DEFAULT_PORT);
            server = new SeleniumServer(false, rcc);
 
           } catch (Exception e) {
               System.err.println("Could not create Selenium Server because of: "
                       + e.getMessage());
               e.printStackTrace();
           }
           try {
            server.start();
            System.out.println("Server started");
           } catch (Exception e) {
               System.err.println("Could not start Selenium Server because of: "
                       + e.getMessage());
               e.printStackTrace();
           }
       } catch (BindException e) {
           System.out.println("Selenium server already up, will reuse...");
       }
}
 
public static void stopSeleniumServer(Selenium selenium){
selenium.stop();
if (server != null)
     {
        try
        {
        selenium.shutDownSeleniumServer();
        server.stop();
 
           server = null;
        }
        catch (Exception e)
        {
           e.printStackTrace();
        }
     }
}
 
}