首页 文章

空手道/黄瓜新手:无法识别karate-config中的baseUrl

提问于
浏览
1

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

我正在尝试使用默认用户和密码登录我的服务 . 这里有很多挑战,因为我不了解控制当前是如何流动的 .

我有以下karate-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评估失败:baseUrl

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

2 回答

  • 0

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

    由于您对这一切都不熟悉,我请求您请开始一个新项目,而不是混合TestNG和REST保证 .

    只需使用原型,您就可以全部启动并运行:https://github.com/intuit/karate#quickstart

  • 1

    在上面的例子中,java版本仅作为Karate的问题在版本1.8.0_101上不支持 . 所以只更新java版本它将开始工作 .

    使用java -version检查java版本它的版本是上面一次用命令再次安装java: brew cask install java 最后java主路径应该用update java version更改 echo $JAVA_HOME

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

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

相关问题