Как использовать URL, который пришел в ответ - PullRequest
1 голос
/ 25 марта 2019

Помогите понять и направить, что нужно сделать дальше.Я использую роботизированную среду версии 3.1.1 и язык программирования Python 2.7 для написания сценария автотеста, и теперь есть задача разработать тест, который будет работать с запросами POST / GET.Итак, я делаю POST-запрос к системе, чтобы инициировать платеж.Приходит ответ, что платеж создан, но для всех действий необходимо перейти по ссылке внутри ответа.

Запрос:

Create Session    allias    URL
&{params}=    Create Dictionary    params1=value1  params2=value2  
${resp}=    Post Request    allias    /init_payment.php    params=${params}
Should Be Equal As Strings    ${resp.status_code}    200

Ответ пост-ответа:

 <?xml version="1.0" encoding="utf-8"?>
<response><pg_status>ok</pg_status><pg_payment_id>3016695</pg_payment_id><pg_redirect_url>https://test.paybox.money/payment.html?customer=028c44bf25b6be251199221d04b570c2</pg_redirect_url><pg_redirect_url_type>need data</pg_redirect_url_type><pg_salt>8OYUsodtnaTWKbOD</pg_salt><pg_sig>a26e61d6eb710c430d67150498d1f555</pg_sig></response>

Как показать фреймворк, чтобы он мог пройти через URL перенаправления?Буду очень признателен за вашу помощь.

Ответы [ 2 ]

4 голосов
/ 26 марта 2019

В RequestsKeywors из Robot Framework используется Запросы HTTP-клиент. Читая быстрый запуск из этой библиотеки, вы обнаружите, что содержимое ответа доступно в поле text.

${body}=    ${resp.text}

Тогда вы, скорее всего, захотите проанализировать XML. Для этого вы можете использовать библиотеку XML .

Это будет что-то вроде

${root} =   Parse XML   ${body}
${link} =   Get Element Text    ${root} response/pg_redirect_url
0 голосов
/ 27 марта 2019

Вот что происходит, когда вы пытаетесь выполнить необходимые действия, чтобы найти предмет. Но я все еще не могу определить, на что ругается структура. На линии с URL или ...

*** Settings ***
Library           Collections
Library           String
Library           RequestsLibrary
Library           OperatingSystem
Library           XML

${resp}=    Post Request    test.paybox.money    /init_payment.php    params=${params}
${XML}=    Parse XML    ${resp.text}
${text}=    Get Element Text    ${XML} /response/pg_redirect_url

20190327 17:31:43.827 :  INFO : Post Request using : alias=test.paybox.money, uri=/init_payment.php, data=<empty>, headers=None, files=None, allow_redirects=True 
20190327 17:31:43.827 :  INFO : 
c:\python27\lib\site-packages\urllib3\connectionpool.py:847: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings
  InsecureRequestWarning)
20190327 17:31:43.828 :  INFO : ${resp} = <Response [200]>
20190327 17:31:43.829 :  INFO : ${XML} = <Element 'response' at 0x0426FCC8>
20190327 17:31:43.830 :  FAIL : ParseError: not well-formed (invalid token): line 1, column 9
20190327 17:31:43.830 : DEBUG : 
Traceback (most recent call last):
  File "<string>", line 62, in parse
  File "<string>", line 38, in parse
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...