Использование каратэ в качестве библиотеки для моих Java @Tests - PullRequest
1 голос
/ 20 апреля 2020

Лучший способ использования каратэ - использовать DSL в карате в файлах объектов. Однако я просто хочу проверить, могу ли я использовать каратэ в качестве библиотеки для моей java платформы.

Например, я знаю, что могу использовать приведенный ниже код и автоматизировать Chrome, используя Chrome DevTools.

public class Test {
    public static void main(String[] args) {
        Chrome chrome = Chrome.startHeadless();
        chrome.setLocation("https://github.com/login");
        ......
        chrome.quit();
    } 
}

Могу ли я сделать аналогичное для com.intuit.karate.driver.WebDriver для автоматизации любых браузеров на основе WebDriver (например, ChromeWebDriver, GeckoWebDriver et c.) Без файлов функций?

Можно Я использую аналогичный способ для автоматизации тестов API с моими собственными методами @Test, но использую библиотеку каратэ внизу в методе теста?

Спасибо

Ответы [ 2 ]

1 голос
/ 20 апреля 2020

После обсуждения с Питером Томасом (Создателем каратэ) я нашел способ сделать это. Вот пример кода для запуска Chrome браузера веб-драйвера через каратэ.

HashMap<String,Object> map = new HashMap<String,Object>();
map.put("type","chromedriver");
map.put("executable","/Users/vxt82/Apps/chromedriver");
HashMap httpConfig = new HashMap<String,Object>();
httpConfig.put("readTimeout", 120000);
map.put("httpConfig",httpConfig);
ChromeWebDriver driver = new ChromeWebDriver(new DriverOptions(null, map, null, 9515, "chromedriver"));

И затем вы можете вызывать методы, такие как

driver.setUrl("https://github.com/login");
driver.input("#login_field", "dummy");
driver.input("#password", "world");
driver.submit().click("input[name=commit]");

PS: Как сказал Томас, это не рекомендуется использовать каратэ, но публиковать ответ на тот случай, если кто-то пытается использовать каратэ для автоматизации тестирования в качестве зависимости и написать тест в java вместо использования файла функций.

0 голосов
/ 20 апреля 2020

Вы можете, но мы не будем поддерживать или документировать это (может быть, вы можете :). Не рекомендуется, поскольку вы потеряете такие вещи, как отчеты и возможность отладки .

Вот пример для автоматизации браузера.

    Chrome driver = Chrome.start();        
    driver.setUrl("https://github.com/login");
    driver.input("#login_field", "dummy");
    driver.input("#password", "world");
    driver.submit().click("input[name=commit]");
...