t.me/atinfo_chat Telegram группа по автоматизации тестирования

использование библиотеки requests в Robot Framework

robot-framework
tdd
python
Теги: #<Tag:0x00007f9c5720d618> #<Tag:0x00007f9c5720cda8> #<Tag:0x00007f9c5720c9c0>

(Gennadiy) #1

Robot Framework действительно вирус.
Не могли бы вы мне помочь как использовать данный фреймворк для работы с post/get запросами, стандартная питоновская библиотека requests.
У меня есть написанный момент обращения к сервису и получение от него ответа, парсинг responce, но я постоянно получаю ошибку теста при его чтении и поиска нужного мне тега.
Я так же прекрасно понимаю, что респонс от requests это сложный составной объект, отдельные поля которого это, например, статус код и прочее.

Create Session    test.paybox.money    https://test.paybox.money
&{params}=    Create Dictionary    pg_amount=100    pg_description=Test    pg_merchant_id=9970    pg_order_id=616    pg_salt=1q2w3e4r
...    pg_sig=041a931958b2d6cf7f64b9cbb027315b
${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 

Запуская тест в режиме debug чтобы определить что за чем идет и что я получаю.

Ловлю такую обратную связь:
20190327 18:56:46.692 : INFO : Creating Session using : alias=test.paybox.money, url=https://test.paybox.money, headers={}, cookies=None, auth=None, timeout=None, proxies=None, verify=False, debug=0
20190327 18:56:46.692 : DEBUG : Creating session: test.paybox.money
20190327 18:56:46.693 : DEBUG :
Argument types are:
<type ‘bool’>
20190327 18:56:46.694 : INFO : &{params} = { pg_amount=100 | pg_description=Test | pg_merchant_id=9970 | pg_order_id=616 | pg_salt=1q2w3e4r | pg_sig=041a931958b2d6cf7f64b9cbb027315b }
20190327 18:56:46.700 : DEBUG : Starting new HTTPS connection (1): test.paybox.money:443
20190327 18:56:47.130 : DEBUG : https://test.paybox.money:443 “POST /init_payment.php?pg_amount=100&pg_salt=1q2w3e4r&pg_merchant_id=9970&pg_order_id=616&pg_sig=041a931958b2d6cf7f64b9cbb027315b&pg_description=Test HTTP/1.1” 200 None
20190327 18:56:47.131 : DEBUG :
post response: <?xml version=“1.0” encoding=“utf-8”?>
<pg_status>ok</pg_status><pg_payment_id>3016815</pg_payment_id><pg_redirect_url>https://test.paybox.money/payment.html?customer=aa66109d4215171f48dd71e07d76f2d4</pg_redirect_url><pg_redirect_url_type>need data</pg_redirect_url_type><pg_salt>uMpI0EtTam5511ga</pg_salt><pg_sig>be5879f3b13c576678a30bcabd28e998</pg_sig>

20190327 18:56:47.132 : INFO : Post Request using : alias=test.paybox.money, uri=/init_payment.php, data=, headers=None, files=None, allow_redirects=True
20190327 18:56:47.132 : 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 18:56:47.132 : INFO : ${resp} = <Response [200]>
20190327 18:56:47.134 : INFO : ${XML} = <Element ‘response’ at 0x036873F8>
20190327 18:56:47.135 : FAIL : ParseError: not well-formed (invalid token): line 1, column 9
20190327 18:56:47.135 : DEBUG :
Traceback (most recent call last):
File “”, line 62, in parse
File “”, line 38, in parse

и я не могу понять на что он ругается, как можно вывести в уведомлении, что всё таки было присвоено в переменную ${resp} и то ли я пытаюсь парсить передавая параметр ${resp.text}.


(Евгений) #2

прежде чем парсить, можно залогировать содержимое полученного ответа:

Log    ${resp.text}

(Vatslau) #3

не понятно зачем вам робот
реквесты + https://github.com/marshmallow-code/marshmallow
всё что нужно


(Gennadiy) #4

Robot хорошо справляется с тем спектром задач, что я в него загрузил и огромное желание изучить его полноценный функционал при разрешение нужных мне задач в будущем.