我正在使用我现有的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 回答
很确定你的
karate-config.js
不在类路径上 .由于您对这一切都不熟悉,我请求您请开始一个新项目,而不是混合TestNG和REST保证 .
只需使用原型,您就可以全部启动并运行:https://github.com/intuit/karate#quickstart
在上面的例子中,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