我正在使用空手道0.6.1 版本,并遇到带有queryparam的get
请求的问题。
Scenario Outline: Verify the response Data with account details when there are filter values are provided with wildcard
Given params { <paramName>: <paramValue> }
When method get
Then status 200
Examples:
| paramName | paramValue |
| Name | 'Volvo%' |
| Name | 'test data'|
在带有queryparam的请求URL中,就像url?Name=Volvo%25
还有url?Name=test+data
这是不正确的,我应该如何解决。
答案 0 :(得分:1)
实际上没错,
需要使用网址编码来区分数据中的特殊字符和保留用于构造URL的特殊字符。
保留字符URL编码:
: Separate protocol (http) from address encoded as %3B
/ Separate domain and directories encoded as %2F
# Separate anchors encoded as %23
? Separate query string encoded as %3F
& Separate query elements encoded as %24
@ Separate username and password from domain encoded as %40
% Indicates an encoded character encoded as %25
+ Indicates a space encoded as %2B
<space> Not recommended in URLs encoded as %20 or +
因此,如果您打算通过URL传递任何特殊字符作为数据,则需要 % encode
以避免冲突。
在空手道中,如果要避免对URL进行编码,请不要使用路径,参数,参数定义来构造URL。
相反,将整个URL构造为字符串并将其传递给url
。喜欢,
* url 'http://httpbin.org/get?Name=Stark'
如果您尝试传递任何特殊内容,可能会遇到异常情况 字符。
因此,如果您要传递任何特殊字符,请考虑对URL进行编码。