Невозможно указать круглые скобки для URL Одата в каратэ - PullRequest
2 голосов
/ 22 января 2020

Я пытаюсь создать путь для URL Одата в каратэ. Путь выглядит так: '/opu/odata/srt/ZQ_SRV/ZQ_BI_Q001(OPT_1='0013076036',OPT_To='0013076036')/Results'

Кажется, что каратэ не может читать специальные символы, такие как круглые скобки () и ''. И это сокращает URL после opu/odata/srt/ZQ_SRV/ZQ_BI_Q001 прямо перед началом круглых скобок. А остальные URL (OPT_1='0013076036',OPT_To='0013076036')/Result выглядят как текст.

Я пытался использовать% 28 для (и 29% для) и% 27 для ', но это не помогло.

PSПри запуске того же URL-адреса в Почтальоне вызов прошел успешно

Запуск тестового URL-адреса:

Background:
    * url "https://httpbin.org/anything/opu/odata/srt/ZQ_SRV/ZQ_BI_Q001(OPT_1='0013076036',OPT_To='0013076036')/Results"
  Scenario: test check
    * method get

enter image description here

Ответы [ 2 ]

1 голос
/ 22 января 2020

Попробуйте создать url полностью вручную и не используйте param или path:

* url "http://myhost/opu/odata/srt/ZQ_SRV/ZQ_BI_Q001(OPT_1='0013076036',OPT_To='0013076036')/Results"

Если это все еще не работает, вероятно, ваш сервер не обрабатывает правильно закодированные URL-адреса, которые могут быть ошибкой: { ссылка }

РЕДАКТИРОВАТЬ: просто попробуйте эти 2 строки, чтобы доказать, что с каратэ все в порядке:

* url "https://httpbin.org/anything/opu/odata/srt/ZQ_SRV/ZQ_BI_Q001(OPT_1='0013076036',OPT_To='0013076036')/Results"
* method get

Это результат:

Running com.intuit.karate.junit4.dev.TestRunner
23:11:06.404 [main] DEBUG com.intuit.karate - request:
1 > GET https://httpbin.org/anything/opu/odata/srt/ZQ_SRV/ZQ_BI_Q001(OPT_1='0013076036',OPT_To='0013076036')/Results
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Host: httpbin.org
1 > User-Agent: Apache-HttpClient/4.5.5 (Java/1.8.0_231)

23:11:08.154 [main] DEBUG com.intuit.karate - response time in milliseconds: 1745.46
1 < 200
1 < Access-Control-Allow-Credentials: true
1 < Access-Control-Allow-Origin: *
1 < Connection: keep-alive
1 < Content-Type: application/json
1 < Date: Wed, 22 Jan 2020 17:41:07 GMT
1 < Referrer-Policy: no-referrer-when-downgrade
1 < Server: nginx
1 < X-Content-Type-Options: nosniff
1 < X-Frame-Options: DENY
1 < X-XSS-Protection: 1; mode=block
{
  "args": {}, 
  "data": "", 
  "files": {}, 
  "form": {}, 
  "headers": {
    "Accept-Encoding": "gzip,deflate", 
    "Host": "httpbin.org", 
    "User-Agent": "Apache-HttpClient/4.5.5 (Java/1.8.0_231)"
  }, 
  "json": null, 
  "method": "GET", 
  "origin": "49.206.14.183, 49.206.14.183", 
  "url": "https://httpbin.org/anything/opu/odata/srt/ZQ_SRV/ZQ_BI_Q001(OPT_1='0013076036',OPT_To='0013076036')/Results"
}
0 голосов
/ 22 января 2020

Решена проблема, поставив * method get вместо When method GET Then status 200

...