我正在使用两种不同的环境进行测试-Dev env没有身份验证(因此我们不必传递头),QA env托管在API网关上。我试图设计测试,使测试能够在两种环境中运行。
以下是我所做的:
>
在karate-config.js中定义客户端机密和客户端Id。将dev的这两个变量设置为null。
Background:
* configure ssl = true
* url baseUrl
* def token = call read('classpath:endpoints/user-login.feature')
* def headerData = {Authorization: #(token.nextGen),Accept: 'application/json;v=1'}
* headers headerData
Scenario: Verify that status for retreiving endpoint
Given path 'abc'
When method get
Then status 200
功能:获取令牌
Scenario: Get authorization header
Given url 'https://api-it.cloud.xyz.com/oauth2/token?client_id=12121&client_secret=12121&grant_type=client_credentials'
When method get
Then status 200
And def tokenType = response.token_type
And def accessToken = response.access_token
* def nextGen = tokenType + ' '+ accessToken
* print nextGen
任何关于如何在同一个项目上运行带有和不带有身份验证的测试的指针都将受到赞赏。
请看文档的这一节:https://github.com/intuit/karate#condition-logic
请注意,eval
是从0.7.0开始的,但您可以轻松地使用JS函数,在in中设置if
条件,并执行您需要的操作--从JS函数中创建karate.call()
来设置头(或不设置头)。
我正在为我的QA项目做研究,我想知道空手道是否能够处理某些用例。基本上,我需要为不同的环境(本地、临时、生产)运行测试。我从文档中了解到,这不是一个问题,因为有了karate-config.js和karate-config-env.js。 问题从执行本身开始。每个环境对于3个不同的国家都有不同的URL,所以实际上总共有9个URL。此外,由于开发过程的原因,某些功能并不是在所有国家同时部署的。所以我
我无法在我的功能中运行空手道测试 不知道我错过了什么。对于api自动化世界来说是非常新的。非常感谢任何帮助。
我正在使用空手道缺省的arche类型,正如在空手道教程中提到的,并且使用Eclipse成功地运行了cucumber报告的测试,但是当我在Jenkins中使用相同的项目时,我会得到以下错误。我正在使用Java1.8和Cucumber-reporting工具,请帮助我解决这个问题,因为我怀疑这是项目结构的问题 POM文件 `http://maven.apache.org/xsd/maven-4.0.0
空手道是否支持这样一个特性:您可以在一个场景中定义一个变量,并在同一个特性文件中在其他场景中重用它。我试着做同样的事,但得到一个错误。在同一个特性文件中重用变量的最佳方法是什么? 错误:
尝试运行示例BDD测试 背景:*配置ssl=true 场景:获取所有用户 给定url'https://jsonplaceholder.typicode.com/users“当方法获得状态200时 当语句'当方法get'执行,我得到错误错误:org.apache.http.conn.HttpHostConnectExcture:连接到jsonplaceholder.typicode.com:443[
我无法使用CLI执行测试。跑者工作。我正在使用版本0.9.5.rc5和maven命令:“mvn test-f pom.xml exec:java-dexec.mainclass=com.intuit.karate.cli.main-dexec.args='-d'-dexec.classpathscope=test” 以下是错误:ERROR com.intuit.karate-driver conf