当前位置: 首页 > 知识库问答 >
问题:

定义空手道中的常数

井高峯
2023-03-14

如果我想做以下事情:

Feature: Register the account and obtain the jwt

Background:
* url baseUrl
* def email = 'qatest_api_' + String(new Date().getTime()) + '@redacted.com'

Scenario: Register

Given path '/identity/v1/register'
  * request {email: '#(email)', password: '#(password)'}
When method post
Then status 200

Scenario: Obtain jwt

Given url 'https://redacted/oauth/token'
  * request 
"""
  {
    realm: "Username-Password-Authentication",
    grant_type: "http://auth0.com/oauth/grant-type/password-realm",
    username: '#(email)',
    password: '#(password)',
    audience: "https://redacted/userinfo",
    scope: "openid",
    client_id: "redacted",
    client_secret: "redacted"
  }
"""
When method post
Then status 200

它将在两种情况下评估email变量,因此在其中一种情况下,我得到类似qatest_api的东西_1542209546879@redacted.com第1个场景和qatest\u api_1542209545312@redacted.com在第二个场景中。

如果可能的话,我会避免硬编码这个值,我读过关于callonce的文章,但没有使用它,有一个独立的文件来生成时间戳听起来很有趣。

我正在使用空手道网络,你对如何实现这一点有建议吗?:)

谢谢

共有1个答案

濮阳耀
2023-03-14

callonce的设计使得它可以是右侧的javascript。

背景中尝试以下操作:

* def fun = function(){ return 'qatest_api_' + new Date().getTime() + '@redacted.com' }
* def email = callonce fun

拥有第二个文件的好处是它可以在多个场景中重复使用,没有什么问题:)

 类似资料:
  • 我希望对从文件加载的JSON中的字段执行自定义断言。 我知道我们有模糊匹配,但我想执行一些更自定义的操作,例如,有一个函数将日期解析为LocalDateTime: } NB这是专门用于从文件加载的JSON,而不是在特性文件本身中指定的JSON上(例如,这里的isValidTime()是:https://github.com/intuit/karate/blob/master/karate-juni

  • 我试图在我的POST请求中传递一个应用程序特定的头,但是我得到了错误-步骤头XXX-XXX没有一个匹配的胶水代码。 如何在请求中指定特定于我的应用程序的头。以下是我正在提交的示例请求:

  • 我所需要的只是一个工作的例子(显然没有任何地方有这样的例子;我找了找,没有找到任何东西,所以我在这里询问)。 例如,我将如何在Java中实现这个helper步骤操作?在这种情况下,如何从Java上下文中访问WebDriver实例?那么,如何调用嵌入? 上面的方法可能行不通。我只是希望有人能给我指明正确的方向。我希望空手道演示中有这样的例子。

  • 我正在尝试使用空手道进行e2e测试,并已从最低设置开始。我想在用于测试,但karate报告该文件不是js函数,因此测试无法获取配置: 这是我的: 这是我的测试: 这是测试运行程序:

  • 我有一个Json响应,如下所示。这里的区别是我的Json主体有一个数字作为父节点。 路径$[“22388043”][0][“移动号码”]没有结果 请就此提出意见。

  • 功能文件-1 场景大纲:Lambda API注册 给定url ApiAdminURL 功能文件-2 给定url internalGateway 和路径 这不是将#(LocalVersion)替换为v1