如何使用Karate框架动态创建在URL之间具有路径的URL

时间:2019-02-24 18:41:34

标签: karate

我想使用空手道框架创建动态网址。假设我要创建的URL是:

https://www.mars.com/mars/profile/{profileID}/line

URL {profileID}中的路径是路径。

目前,我已经在下面编写了能够创建url的功能文件,但是由于使用path关键字,因此它对url进行了编码,并在配置文件ID后添加了%0A

https://www.mars.com/mars/profile/264%0A/line

功能文件:

@smoke
Scenario: Create  a line score in existing  profile
And def urlname = marsuri+ '/mars/profile/'

Given url urlname
Given path id + '/line'

请让我知道如何创建一个URL,并且该URL之间的路径不进行编码。

2 个答案:

答案 0 :(得分:1)

您没有正确使用path语法。请阅读文档:https://github.com/intuit/karate#path

进行此更改:

Given path id, 'line'

编辑:也请参见以下答案:https://stackoverflow.com/a/54477346/143475

答案 1 :(得分:0)

实际上,无论从何处获取到的id变量都在字符串的末尾添加了新行,就像这样的"264\n"一样,这就是为什么它被编码为264%0A的原因

如果您要传递的只是"264",则必须先删除不需要的值,然后再将其添加到path

Background:
* def removeNewLine = function(x){return x.replace("\n","")}

Scenario: Create  a line score in existing  profile
And def urlname = marsuri+ '/mars/profile/'
Given url urlname
* def id = removeNewLine(id)
Given path id + '/line'

如果您可以直接从获得id的源中修改数据,那将是非常棒的。