Is it possible to have multiple JS functions inside one JS file of karate framework?

廉价感情. 提交于 2019-11-28 02:00:55

问题


I need to perform two operations on the result of JSON responses.so can we have those different operations inside single JS file? or do we need to have mapping like one JS file for one operation. Please help on this


回答1:


I don't recommend trying to create complicated JavaScript in Karate, it just leads to maintainability issues. If you really want an object with multiple utility methods on it, write a Java class with static methods, and it will be much easier to maintain / debug.

That said, if you really insist - look at this answer: https://stackoverflow.com/a/47002604/143475

But this is what I recommend for most projects. In one "common" feature file, define multiple methods like this:

* def now = function(){ return java.lang.System.currentTimeMillis() }
* def uuid = function(){ return java.util.UUID.randomUUID() + '' }

You can now call this feature like this:

* call read('common.feature')

And now all the functions in that feature are available for use:

* def time = now()
* def id = uuid()



回答2:


@kmancusi This is how I did a common.feature file with my common functions and then the following my.test.feature shows how I import that to use it in another feature.

common.feature

@ignore
Feature:

Scenario:
  * def now = 
      """
        function() { 
          return java.lang.System.currentTimeMillis() 
        }
      """ 

  * def uuid = 
     """
       function() { 
         return java.util.UUID.randomUUID() + '' 
       }
     """

my.test.feature

Feature: my tests

Background:
  * configure logPrettyRequest = true
  * configure logPrettyResponse = true
  * configure ssl = true

Scenario: basic test

  * def util = call read('common.feature')
  * def sessionId = util.uuid()

  * print sessionId


来源:https://stackoverflow.com/questions/49381959/is-it-possible-to-have-multiple-js-functions-inside-one-js-file-of-karate-framew

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!