Karate/Cucumber novice:The 空手道配置中的 baseUrl 无法识别

Karate/Cucumber novice:The baseUrl in karate-config is not recognized

我正在使用现有的 Testng+Restassured 设置尝试空手道。 我是空手道和黄瓜的新手。

我正在尝试使用默认用户名和密码登录我的服务。 这里对我来说有很多挑战,因为我不了解当前的控制流程。

我有以下空手道-config.js 文件:

function() {
 karate.configure('connectTimeout', 5000);
 karate.configure('readTimeout', 5000);

 var protocol = 'https';
 var config = { baseUrl: protocol + '://staging.com'};
 return config;
}

这是我的 login.feature 文件:

Feature: login

Background:
  * url baseUrl
  # required payload = {"enc_login_id":"","password":"","timestamp":"","type":"","client":"","encrypted":false,"source":"web"}

    Scenario: Login as User
      # epoch time
      * def time = (new Date).getTime(); 
      Given path '/sso/authenticate'
      And form field enc_login_id = 'demo@gmail.com'
      And form field password = 'gmail1213'
      And form field timeStamp = time
      When method post
      Then status 200
      And def sessionID = response.session_id
      And print 'SessionID: ' , sessionID

这是我的 Login.java 功能文件:

import cucumber.api.CucumberOptions;

@CucumberOptions(
   features = "login.feature"
)
public class LoginKarateTest {

}

我在 运行 此功能时遇到以下错误:

java.lang.RuntimeException: javascript evaluation failed: baseUrl

我不知道这里是否正在读取配置。有没有我错过的设置? 我的请求负载也有 3 个变量和 3 个常量属性。我该如何定义它们?我已经评论了有效负载以供参考。

很确定你的 karate-config.js 不在类路径中。

由于您是这一切的新手,我请您开始一个新项目,不要混合使用 TestNG 和 REST-assured。

只要使用原型,你就会全力以赴 运行: https://github.com/intuit/karate#quickstart

在上述情况下,java 版本仅存在问题,因为 1.8 版不支持空手道。0_101.So 只需更新 java 版本即可开始工作。

使用 java -version 检查 java 版本 它的版本是上面一次使用命令再次安装 java : brew cask 安装 java 最后 java 主路径应该随着更新 java 版本而改变 回声$JAVA_HOME

更改 java 基本配置文件的主页导出路径,然后重新加载基本配置文件。

打开base_profile 只需执行 vi ~/.bash_profile 并转到 java home export 然后更改 java 版本 然后做 source ~/.bash_profile

我希望你使用的是像eclipse.In这样的IDE这种情况首先创建一个空手道-config.js文件..在任何文件夹中..转到包中eclipse中的项目探险家 window 。 右键单击该项目,然后转到构建 path.add 空手道-config.js 在构建路径中的项目中的文件夹。 (这会将 karate-config.js 文件添加到类路径中,java 编译器可以从中识别此 JS 文件并进行编译)

就像升级你的 java 后提到的@Ashok Kumar ..试试这个