空手道 - 如何写入用作特征文件输入的同一个 CSV 文件

Karate - How to write to the same CSV file that is being used as an input to the feature file

空手道 - 如何写入用作特征文件输入的同一个 CSV 文件

我创建了一个 java 函数,它接受键值对作为参数,然后将这些值写入 CSV 文件。但我无法理解如何在功能文件中调用该方法。 我正在编写 java 脚本函数,如下所示,其中 "Utilities" 是包,"getdataexcel" 是 java class.

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

下面是正在使用的功能文件: 我不太确定如何将 status/Result 写回同一个 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

我需要将结果写回同一个输入文件,我已经将 Karate 与 QTEST(测试管理工具)集成,测试用例将根据测试结果在 QTEST 中执行(Passed/Failed) API.

请阅读这部分文档(实际上全部阅读,值得:)https://github.com/intuit/karate#js-function-argument-rules-for-call

因此,如果您有 2 个参数,则不能使用 call。所以就这样做:

* if (resp == 7) doWork("Result","Pass")