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

空手道API:将变量传递到其他功能文件不起作用

淳于功
2023-03-14

我正在从另一个功能文件调用登录功能文件,我在其中传递url、用户名和密码,但它对我不起作用。我没有在这里使用背景键,我也不想要。

 @CallAnotherFeature
 Feature: Call Login Feature

 Scenario: Calling Login Test
 * def config = { endPointURL: 'https://qa1.testurl.com/login',username: 'user123', password: 'password123' }
* def result= call read('Login.feature') config
* print result.response
* print 'Sign In-'+signIn
* print 'Sign In Reponse-'+signIn.response


Feature:  Login Feature

Scenario: Test Login for different users

* print 'Starting Test','#(endPointURL)'
Given url '#(endPointURL)'
* print 'user name','#(username)'
* print 'Password ','#(password)'
#And form field username = '#(username)'
#And form field password = '#(password)'
And request { username: '#(username)', password: '#(password)'}
When method post
Then status 200
* print response
* match response.loginSuccess == true

在Login.feature我试图传递用户名和密码作为表单数据,即使这些都不起作用。有人能告诉我我在这里犯了什么错误吗?

我用的是最新空手道版本0.9.0

共有1个答案

商华藏
2023-03-14

我在你的剧本中看到了一些问题,

1.呼叫登录功能

1.1)我看不到此功能中的任何位置,也看不到您的登录功能中初始化的signIn变量,但您正在尝试打印它。

1.2)=应正确放置;)

* def result = call read('Login.feature') config

2.登录功能

2.1)我认为您误解了嵌入表达式的概念。只有将其模板化为JSON时,才可以使用它。但是要调用它,只需使用变量名即可。

如。

Given url endPointURL
And form field username = username
And request { username: '#(username)', password: '#(password)'}

Given url '#(endPointURL)'
And form field username = '#(username)'

如果你在这里阅读空手道文档,我会更清楚-

 类似资料:
  • 在空手道中,您可以通过发送json/list调用该功能 例如: 引发错误:路径:$,实际值:'',应为:'30e093da-c4e3-4ee0-b180-e5d0b4302d9f',原因:不是子字符串 步骤: 在日志检查功能中,我试图使用 日志检查功能步骤 我尝试了另一种方法,我把它分配给 我将发送json的另一种方法 步骤为logcheck.feature 例如: 错误抛出:com.intuit

  • 尝试调用空手道功能文件中的其他测试运行程序类(基本上是TestNG文件)。特色: 这是打电话的正确方式吗。还有需要使用的关键词吗? 谢啦

  • 我的API测试项目的工作,并已纳入空手道这样做。现在,我的要求是创建一个响应endpoint的服务器。所有这些都已完成,但我的要求是访问服务器功能中的空手道配置文件中定义的变量。我不能这样做。 例如:功能:示例服务器 场景:路径匹配('\variablevalue)**methodIs('get')) def响应=默认环境 注意:默认_env是空手道配置中的一个变量。js文件,并保存一些默认值。

  • 我试图执行一个功能文件,需要从另一个功能的查询参数。 以下是功能文件:1。此文件调用两个要素文件。第一个功能文件在数据库中添加一条记录并返回json响应。我必须使用响应中的属性,并且必须传递到另一个特性。请在下面查找功能文件。 特色:背景: 场景:给定调用读取('test_add.feature') 功能名称-测试获取。功能:添加新的Nat捆绑设备 背景: > url baseUrlWithCon

  • 问题内容: 我已经解决了这个问题好几个小时,并且取得了长足的进步(在很大程度上要感谢搜索本网站并应用在类似问题中发现的技巧),但是现在看来我陷入了僵局。请浏览一下我所做的事情,或者指出我做错了什么地方,并提供伪代码进行更正,或者为我提供可以弥补我的理解空白的资源。我真的感觉好像我只是缺少一个微小的细节,使这个话题对我来说很有意义。 该应用程序的目的是根据用户输入的2个分子和2个分母来添加,减去,乘

  • 我正在使用空手道v0.9.6,这是一个很棒的工具。我有一个 我空手道配置的一部分。js: 我正在使用。sh文件如下: 而且,它在v.0.9.6上长时间运行良好。但是,当我尝试升级到v 1.0或1.0.1时,a给出了一个错误: 我发现这个问题:https://github.com/intuit/karate/issues/1515 但这些例子并不适合我。我试着用“文件:”和空手道。属性['karat