Как я могу вернуть результат данных HTTP -запроса из библиотеки каратэ в качестве предварительного условия для другого вJAVA

Программисты JAVA общаются здесь
Anonymous
Как я могу вернуть результат данных HTTP -запроса из библиотеки каратэ в качестве предварительного условия для другого в

Сообщение Anonymous »

Мне нужно создать библиотеку Java с Gradle, которая внутренне выполняет HTTP -запросы с каратэ. Либо с API, либо с файлами функций. > В настоящее время я делаю это так, но он не возвращает результат с ответом данных: < /p>
класс библиотеки Java: < /p>
public class KarateApiHelper {

public Results runFeature() {
return Runner.path("classpath:features")
.outputCucumberJson(true)
.parallel(1);
}
}
< /code>
Файл функций в библиотеку для генерации данных: < /p>
Feature: Demo for test with library

Background:
* url 'https://restful-booker.herokuapp.com'
* header Content-Type = 'application/json'
* header Accept = 'application/json'

Scenario: Test for request the API method GET by ID successful
Given path 'booking'
And request
"""
{
"firstname" : "Jim",
"lastname" : "Brown",
"totalprice" : 111,
"depositpaid" : true,
"bookingdates" : {
"checkin" : "2018-01-01",
"checkout" : "2019-01-01"
},
"additionalneeds" : "Breakfast"
}
"""
When method POST
Then status 200
* def bookingid = response.bookingid
* print 'bookingid:', bookingid
< /code>
опубликовать как библиотека Gradle: < /p>
plugins {
id 'java-library'
id 'maven-publish'
}

group = 'com.tevolvers'
version = '1.0-SNAPSHOT'

repositories {
mavenCentral()
mavenLocal()
}

dependencies {
//testImplementation group: 'io.karatelabs', name: 'karate-junit5', version: '1.5.0'
implementation 'com.intuit.karate:karate-core:1.4.0'
implementation 'com.intuit.karate:karate-junit5:1.4.0'
testImplementation 'org.junit.jupiter:junit-jupiter'
}

test {
useJUnitPlatform()
systemProperty "karate.options", System.properties.getProperty("karate.options")
systemProperty "karate.env", System.properties.getProperty("karate.env")
outputs.upToDateWhen { false }
enabled = false
}

sourceSets {
main {
resources {
srcDirs = ['src/main/resources', 'src/test/resources']
}
}
}

processResources {
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
}

jar {
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
from(sourceSets.test.resources) {
include '**/*.feature'
include '**/*.js'
}
}

publishing {
publications {
mavenJava(MavenPublication) {
from components.java
groupId = 'com.tevolvers'
artifactId = 'karate-api-helper'
version = '1.0.0'
}
}
}
< /code>
Теперь мой другой проект повторно использует эту библиотеку: < /p>
Файл функций Другой проект, реальный тест: < /p>
Feature: Use the paths for creating, reading and updating the restful-booker rest api

Background:
* url basePath = "https://restful-booker.herokuapp.com"
* def resultado =
"""
function() {
var JavaDemo = Java.type('com.tevolvers.KarateApiHelper');
var jd = new JavaDemo();
return jd.runFeature();
}
"""
* def resultsLibrary = call resultado
* def responseid = resultsLibrary.bookingid
* print resultsLibrary
* print "*************** " + responseid

@GetBookingById
Scenario: successfully get booking by id
Given path 'booking' + responseid
And header Accept = 'application/json'
When method get
Then status 200
< /code>
Runner Другой проект для выполнения файла функции: < /p>

import com.intuit.karate.junit5.Karate;

public class RunnerTest {

@Karate.Test
Karate run() {
return Karate.run("classpath:crud/demo_get.feature");
}
}
< /code>
Сгенерировать эту ошибку: < /p>
09:17:53.891 [Test Raber] Info com.intuit.karate - [print] com.intuit.karate .Results@7fc1fd31
09:17:53.894 [тест -работник] Info com.intuit.karate - [print] *************** null < /p>

Как я могу употреблять библиотеку и вернуть ее ответ HTTP, полученный от его выполнения, чтобы позже использовать эти данные в моих тестовых случаях других проектов? < /p>
Большое спасибо !!! @Питер-Томас и сообщество

Подробнее здесь: https://stackoverflow.com/questions/794 ... brary-as-a

Вернуться в «JAVA»