Написание java скриптовой общей функции в RunnerTest.jave в фреймворке каратэ - PullRequest
2 голосов
/ 28 апреля 2020

Я работаю над фреймворком карате и создал несколько файлов объектов.

В каждой функции есть общая функция скрипта java Эта функция вставляет указанные данные для притока в БД

Моя функция файл выглядит примерно так

    #####################################################
          @API Name
    Feature: API test

    #####################################################################################
            Background:
        * def DbUtils 
      * def config 
        * def db 

        * def 
        * def db
        * configure afterScenario = 
java script function to insert code to DB    
"""
    function(){
      var info = karate.info; 
      karate.log('after', );
      karate.log('after', );
      karate.log('after', );
      karate.log('after', );
      karate.log('after', );
      var featurenameupdate = info.featureFileName.substring();

      var status="Fail";
      if(!info.errorMessage == null){
        status="Pass";
      }
      dbCDB.DBConnection( );
      dbCDB.DBwrite(  );
      dbCDB.connectionClose();
    }
    """

    Scenario Outline: <scenarioNm>
    * def req = read('')

    * set req.param.param.id = 
    * set req.param.param.param = 


    #Building the authentication request, storing cookie and response validation

    Given url <<URL>>
    And request req
    When method method
    Then status status code
    Then match response.error
    <<error response>>      

Возможно ли это? Как этого можно достичь?

1 Ответ

2 голосов
/ 28 апреля 2020

Это именно тот случай, когда я рекомендую использовать Java interop. Пожалуйста, напишите специальную утилиту Java, которая может выполнить эту настройку, и ее будет намного проще поддерживать и отлаживать. Тогда вы можете легко позвонить из любого места.

См. Документы: https://github.com/intuit/karate#calling - java

В этом конкретном примере c используется JDB C : dogs.feature

...