Versuchen, eine Referenz der Antwort eines POST-Szenarios mit der PATCH-Methode an ein anderes Szenario zu übergeben und eine der Eigenschaften zu ändern und Fehler zu erhalten. Beim Debuggen des Quellcodes habe ich festgestellt, dass wenn Scripts.assign für ein Szenario aufgerufen wird, der Variablenbereich nicht an das andere Szenario übergeben wird.Das Übergeben einer definierten Variablen durch verschiedene Szenarien funktioniert nicht
- Karate Version: 0.5.0
- Java-Version: 1,8
Volle Funktion des Tests:
Feature: Products CRUD Test
Background:
* url demoBaseUrl
Scenario: fetch some products
Given path 'products'
When method get
Then status 200
And assert response.size() === 6
Scenario: add a product
Given path 'products'
And request {name: 'Iphone 7 Plus 128GB', description: 'Iphone 7 Plus Space Gray 128GB' }
When method post
Then status 200
And match response contains { id: '#number', name: 'Iphone 7 Plus 128GB', description: 'Iphone 7 Plus Space Gray 128GB'}
And def newProduct = response
Scenario: update a product
Given path 'products'
And def payload = {name: '#(newProduct.name)', description: '#(newProduct.description)'}
And set payload $.id = #(newProduct.id)
And match payload.id == (newProduct.id)
And request payload
When method patch
Then status 200
And match response contains {name: 'New Product Iphone 7'}
Ich versuche, die Def-Var in den Hintergrund zu verschieben, aber die Zuweisung erfolgt zweimal. Ich versuche, eine Bereichsvariable im Hintergrund zu definieren, aber bei jeder Szenariobewertung wird der Gültigkeitsbereich var reinialisiert. Bei einmaligem Aufruf von def scope var wird dieses Problem gelöst? –
Wie kann ich eine Variable mit Callonce im Hintergrund deklarieren? –
@ViniciusSouza können Sie sich die Karate-Demos ansehen - eines der Beispiele ist für Callonce: https://github.com/intuit/karate/tree/master/karate-demo –