Каратэ - Как записать в тот же файл CSV, который используется в качестве входных данных в файл объектов - PullRequest
1 голос
/ 14 января 2020

Каратэ - Как записать в тот же файл CSV, который используется в качестве входных данных для файла объектов

Я создал функцию java, которая принимает пару ключ и значение в качестве аргументов, а затем записывает те значения в файл CSV. Но я не могу понять, как вызвать этот метод в файле возможностей. Я пишу функцию javascript, как показано ниже, где "Utilities" - это пакет, а "getdataexcel" - это класс java.

Background:
  * def doWork = function(arg1,arg2) {
    var JavaDemo = Java.type(Utilities.getdataexcel);
    JavaDemo.writesingleData(arg1,arg2);
}

Ниже приведен файл функций, который используется: я не совсем уверен, как записать обратно статус / результат в тот же файл CSV.

Определенно, что-то не так с кодом, который я написал в разделе «Фон и файл возможностей».

Scenario: soapAdd 1.1 <Scenario with passing input Parameters in Request>
    Given request
    """
    <?xml version="1.0" encoding="utf-8"?>
    <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
      <soap:Body>
        <Add xmlns="http://tempuri.org/">
          <intA>4</intA>
          <intB>3</intB>
        </Add>
      </soap:Body>
    </soap:Envelope>
    """
    When soap action 'http://tempuri.org/Add'
    Then status 200
    And def resp = /Envelope/Body/AddResponse/AddResult
    And match /Envelope/Body/AddResponse/AddResult == 7
    * eval if (resp == 7) karate.call doWork("Result","Pass")
    * print 'the value of resp is' + resp

Мне нужно записать результаты обратно в тот же входной файл, и у меня есть интегрированное каратэ с QTEST (Инструмент управления тестированием) и контрольные примеры будут выполнены (пройдено / не выполнено) в QTEST на основе результатов тестирования API.

1 Ответ

0 голосов
/ 15 января 2020

Пожалуйста, прочитайте эту часть документации (на самом деле прочитайте все это, оно того стоит :) https://github.com/intuit/karate#js -function-arguments-rules-for-call

Итак, вы нельзя использовать call, если у вас есть 2 аргумента. Так что просто сделайте это:

* if (resp == 7) doWork("Result","Pass")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...