Testng 空手道/黄瓜新手:空手道配置中的baseUrl无法识别

Testng 空手道/黄瓜新手:空手道配置中的baseUrl无法识别,testng,karate,Testng,Karate,我正在用我现有的Testng+重启设置尝试空手道。 我对空手道和黄瓜都是新手 我正在尝试使用默认用户和密码登录到我的服务。 这里对我来说有很多挑战,因为我不了解当前的控制流程 我有以下karate-config.js文件: function() { karate.configure('connectTimeout', 5000); karate.configure('readTimeout', 5000); var protocol = 'https'; var config = {

我正在用我现有的Testng+重启设置尝试空手道。 我对空手道和黄瓜都是新手

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

我有以下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
这是功能的my Login.java文件:

import cucumber.api.CucumberOptions;

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

}
运行此功能时出现以下错误:

java.lang.RuntimeException:javascript计算失败:baseUrl

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

非常确定您的karate-config.js不在类路径上

由于您对所有这些都是新手,我请您开始一个新的项目,不要将TestNG和REST assured混为一谈

只要使用原型,您就可以开始运行了:

非常确定您的karate-config.js不在类路径上

由于您对所有这些都是新手,我请您开始一个新的项目,不要将TestNG和REST assured混为一谈


只需使用原型,您就可以启动并运行了:

在上述情况下,java版本的问题在于1.8.0_101版不支持空手道。因此,只需更新java版本,它就会开始工作

使用java-version检查java版本 该版本为上述版本,请使用以下命令再次安装java: brew cask安装java 在最后,java主路径应该通过更新java版本进行更改 echo$JAVA_主页

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

打开基本配置文件的步骤 只需执行vi~/.bash_配置文件并转到java home export,然后更改java版本
然后执行source ~/.bash_profile

在上述情况下,仅java版本存在问题,因为1.8.0_101版本不支持空手道。因此,只需更新java版本,它就会开始工作

使用java-version检查java版本 该版本为上述版本,请使用以下命令再次安装java: brew cask安装java 在最后,java主路径应该通过更新java版本进行更改 echo$JAVA_主页

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

打开基本配置文件的步骤 只需执行vi~/.bash_配置文件并转到java home export,然后更改java版本
然后执行source ~/.bash_profile

我希望您使用的是像eclipse这样的IDE。在这种情况下,首先在任何文件夹中创建一个karate-config.js文件..在Package explorer窗口中转到eclipse中的项目。 右键单击项目并转到构建路径。在项目中添加karate-config.js位于构建路径中的文件夹。 这会将karate-config.js文件添加到类路径中,java编译器可以从中识别并编译该js文件


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

我希望你使用的是像eclipse这样的IDE。在这种情况下,首先在任何文件夹中创建一个karate-config.js文件..转到Package explorer窗口中eclipse中的项目。 右键单击项目并转到构建路径。在项目中添加karate-config.js位于构建路径中的文件夹。 这会将karate-config.js文件添加到类路径中,java编译器可以从中识别并编译该js文件


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

我刚把功能文件改成了这个,效果很好。但是我想定义变量并使用它们。功能:登录背景:*url'https://staging.com 场景:以用户epoch time*def time=new Date.getTime登录;给定路径“/sso/authenticate”*请求={enc_login_id:demo@gmail.com,密码:gmail1213,时间戳:时间,类型:用户,客户端:gmail,加密:false,来源:web}当方法post然后状态为200,def sessionID=response.session_id并打印“sessionID:”,sessionID但为什么呢?我只是把功能文件改成了这个,它成功了。但是我想定义变量并使用它们。功能:登录背景:*url'https://staging.com 场景:以用户epoch time*def time=new Date.getTime登录;给定路径“/sso/authenticate”*请求={enc_login_id:demo@gmail.com,密码:gmail1213,时间戳:时间,类型:用户,客户端:gmail,加密:false,来源:web}方法发布时状态为200,def sessionID=response.session_id并打印“sessionID:”,sessionID但为什么?嗨,彼得!我也面临同样的问题。函数{var config={baseUrl:'http://localhost:8080/api/v1'}返回配置;}功能:创建团队背景:*url baseUrl*def contextPath='/admin/Teams/Create'场景:验证
在一个新的团队中,当请求{name:Test Team,description:Test,createdBy:system}和方法post和header Accept='application/json'然后状态为200并打印'Response is:',Response@AkhilSuseelan时,成功地创建了给定的路径contextPath,我根本没有读到这个。如果可以,请遵循以下流程:嗨,彼得!我也面临同样的问题。函数{var config={baseUrl:'http://localhost:8080/api/v1“}return config;}功能:创建团队背景:*url baseUrl*def contextPath='/admin/Teams/Create'场景:验证在请求时是否已成功创建给定路径contextPath的新团队{name:Test team,description:Test,createdBy:system}和method post和header Accept='application/json'然后状态为200并打印'Response is:',Response@AkhilSuseelan我根本没有读到这个。如果可以,请遵循以下过程: