Могу ли я использовать ту же функцию ниже для запроса Json Api, а также - PullRequest
0 голосов
/ 26 июня 2018
Xmlsample.feature
Feature: test A

Scenario:  test apple
    * table test_apple_one

    | payload_file              |
    | 'sample/ball.xml'         |
* def result = call read('classpath:........./samplereq.feature')  test_apple_one       



    Jsonsample.feature
Feature: test B

Scenario:  test Mango
    * table test_Mango_one

    | payload_file              |
    | 'sample/cat.`enter code here`json'         |



samplereq.feature

Feature: sample

  Background:
#Common Config load  
* def sampleURL = baseURL+'/sample/test'      
* xml payload = read('classpath:.....'+payload_file)   
#OAuth Signature generator
* def authorization = "oauth string"

  Scenario: Make the sample API call
Given url sampleURL`enter code here`
Given header Authorization = authorization
Given request payload
And header Content-Type = 'application/xml;charset=UTF-8'
And header Host = host
And header Accept = content_type
When method post    
Then match header Content-Type contains 'application/xml' 

Я использую вышеуказанную функцию samplereq.feature для запроса XML API и Я хочу сохранить эту функцию samplereq.feature как общую и использовать ее для запроса Json Api. Могу ли я сделать то же самое с запросом API JSON (Jsonsample.feature), пожалуйста, предложите

1 Ответ

0 голосов
/ 27 июня 2018

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

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

Поэтому, пожалуйста, используйте различные файлы функций для JSON и XML. Для каждого теста вы можете иметь несколько сценариев. Теперь данные сценария могут быть одинаковыми для JSON и XML, и вы можете прочитать общий файл JSON. Обратитесь к этому примеру, чтобы узнать, как создать XML из JSON: https://github.com/intuit/karate/blob/master/karate-junit4/src/test/java/com/intuit/karate/junit4/xml/xml.feature

Если вы все еще настаиваете на использовании JSON и XML в общей функции, взгляните на этот пример: https://github.com/intuit/karate/tree/master/karate-demo/src/test/java/demo/loopcall

Выше также приведен пример вызова функции JavaScript. Также, пожалуйста, внимательно прочитайте документы.

...