如何使用响应中的 url
How to use the url that came in response
帮助理解和指导需要进一步做的事情。我使用机器人框架版本 3.1.1 和 Python 2.7 编程语言来编写自动测试脚本,现在有一个任务是开发一个可以处理 POST / GET 请求的测试。因此,我向系统发出 POST 请求以发起付款。答案是付款已经创建,但是所有的操作都需要按照答案里面的link。
要求:
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
回复post回复:
<?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?非常感谢您的帮助。
Robot Framework 中的 RequestsKeywors 使用此库中的 Requests HTTP Client. Reading the quickstart 您可以发现响应的内容在 text
字段中可用。
${body}= ${resp.text}
那么您很可能想要解析 XML。您可以为此使用 XML library。
会是这样的
${root} = Parse XML ${body}
${link} = Get Element Text ${root} response/pg_redirect_url
当您尝试执行必要的操作来查找某项时会发生这种情况。
但我仍然无法确定框架在发誓。无论是在带有 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
帮助理解和指导需要进一步做的事情。我使用机器人框架版本 3.1.1 和 Python 2.7 编程语言来编写自动测试脚本,现在有一个任务是开发一个可以处理 POST / GET 请求的测试。因此,我向系统发出 POST 请求以发起付款。答案是付款已经创建,但是所有的操作都需要按照答案里面的link。
要求:
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
回复post回复:
<?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?非常感谢您的帮助。
Robot Framework 中的 RequestsKeywors 使用此库中的 Requests HTTP Client. Reading the quickstart 您可以发现响应的内容在 text
字段中可用。
${body}= ${resp.text}
那么您很可能想要解析 XML。您可以为此使用 XML library。
会是这样的
${root} = Parse XML ${body}
${link} = Get Element Text ${root} response/pg_redirect_url
当您尝试执行必要的操作来查找某项时会发生这种情况。 但我仍然无法确定框架在发誓。无论是在带有 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