You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2009 lines
176 KiB
2009 lines
176 KiB
<?xml version="1.0" encoding="UTF-8"?>
|
|
<robot generator="Robot 3.1.2 (Python 3.6.8 on linux)" generated="20220817 15:12:00.980" rpa="false">
|
|
<suite id="s1" name="000-Data" source="/root/ztb-factory-rf-api/000-Data">
|
|
<suite id="s1-s1" name="0-BaseUrl" source="/root/ztb-factory-rf-api/000-Data/0-BaseUrl.robot">
|
|
<test id="s1-s1-t1" name="baseUrl">
|
|
<kw name="Set Variable" library="BuiltIn">
|
|
<doc>Returns the given values which can then be assigned to a variables.</doc>
|
|
<arguments>
|
|
<arg>https://api-ops-ztb-test.qniao.cn</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${opsztb}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:01.112" level="INFO">${opsztb} = https://api-ops-ztb-test.qniao.cn</msg>
|
|
<status status="PASS" starttime="20220817 15:12:01.112" endtime="20220817 15:12:01.112"></status>
|
|
</kw>
|
|
<kw name="Set Variable" library="BuiltIn">
|
|
<doc>Returns the given values which can then be assigned to a variables.</doc>
|
|
<arguments>
|
|
<arg>https://api-ops-psc-test.qniao.cn</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${opspsc}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:01.113" level="INFO">${opspsc} = https://api-ops-psc-test.qniao.cn</msg>
|
|
<status status="PASS" starttime="20220817 15:12:01.113" endtime="20220817 15:12:01.113"></status>
|
|
</kw>
|
|
<kw name="Set Variable" library="BuiltIn">
|
|
<doc>Returns the given values which can then be assigned to a variables.</doc>
|
|
<arguments>
|
|
<arg>https://api-client-uec-test.qniao.cn</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${uecClient}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:01.113" level="INFO">${uecClient} = https://api-client-uec-test.qniao.cn</msg>
|
|
<status status="PASS" starttime="20220817 15:12:01.113" endtime="20220817 15:12:01.113"></status>
|
|
</kw>
|
|
<kw name="Set Variable" library="BuiltIn">
|
|
<doc>Returns the given values which can then be assigned to a variables.</doc>
|
|
<arguments>
|
|
<arg>https://api-client-ztb-test.qniao.cn</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${ztbClient}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:01.114" level="INFO">${ztbClient} = https://api-client-ztb-test.qniao.cn</msg>
|
|
<status status="PASS" starttime="20220817 15:12:01.113" endtime="20220817 15:12:01.114"></status>
|
|
</kw>
|
|
<kw name="Set Global Variable" library="BuiltIn">
|
|
<doc>Makes a variable available globally in all tests and suites.</doc>
|
|
<arguments>
|
|
<arg>${opsztb}</arg>
|
|
</arguments>
|
|
<msg timestamp="20220817 15:12:01.114" level="INFO">${opsztb} = https://api-ops-ztb-test.qniao.cn</msg>
|
|
<status status="PASS" starttime="20220817 15:12:01.114" endtime="20220817 15:12:01.114"></status>
|
|
</kw>
|
|
<kw name="Set Global Variable" library="BuiltIn">
|
|
<doc>Makes a variable available globally in all tests and suites.</doc>
|
|
<arguments>
|
|
<arg>${opspsc}</arg>
|
|
</arguments>
|
|
<msg timestamp="20220817 15:12:01.115" level="INFO">${opspsc} = https://api-ops-psc-test.qniao.cn</msg>
|
|
<status status="PASS" starttime="20220817 15:12:01.114" endtime="20220817 15:12:01.115"></status>
|
|
</kw>
|
|
<kw name="Set Global Variable" library="BuiltIn">
|
|
<doc>Makes a variable available globally in all tests and suites.</doc>
|
|
<arguments>
|
|
<arg>${uecClient}</arg>
|
|
</arguments>
|
|
<msg timestamp="20220817 15:12:01.115" level="INFO">${uecClient} = https://api-client-uec-test.qniao.cn</msg>
|
|
<status status="PASS" starttime="20220817 15:12:01.115" endtime="20220817 15:12:01.115"></status>
|
|
</kw>
|
|
<kw name="Set Global Variable" library="BuiltIn">
|
|
<doc>Makes a variable available globally in all tests and suites.</doc>
|
|
<arguments>
|
|
<arg>${ztbClient}</arg>
|
|
</arguments>
|
|
<msg timestamp="20220817 15:12:01.116" level="INFO">${ztbClient} = https://api-client-ztb-test.qniao.cn</msg>
|
|
<status status="PASS" starttime="20220817 15:12:01.115" endtime="20220817 15:12:01.116"></status>
|
|
</kw>
|
|
<kw name="Set Variable" library="BuiltIn">
|
|
<doc>Returns the given values which can then be assigned to a variables.</doc>
|
|
<arguments>
|
|
<arg>{'content-type':'application/json','X-APP-ID':'470236309865238555','Authorization':'Token 6b08add42d6bcf73abb935b2adf83525'}</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${ops_header}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:01.116" level="INFO">${ops_header} = {'content-type':'application/json','X-APP-ID':'470236309865238555','Authorization':'Token 6b08add42d6bcf73abb935b2adf83525'}</msg>
|
|
<status status="PASS" starttime="20220817 15:12:01.116" endtime="20220817 15:12:01.116"></status>
|
|
</kw>
|
|
<kw name="Set Variable" library="BuiltIn">
|
|
<doc>Returns the given values which can then be assigned to a variables.</doc>
|
|
<arguments>
|
|
<arg>{'content-type':'application/x-www-form-urlencoded','X-APP-ID':'470236309865238555'}</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${ops_login_header}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:01.116" level="INFO">${ops_login_header} = {'content-type':'application/x-www-form-urlencoded','X-APP-ID':'470236309865238555'}</msg>
|
|
<status status="PASS" starttime="20220817 15:12:01.116" endtime="20220817 15:12:01.117"></status>
|
|
</kw>
|
|
<kw name="Set Variable" library="BuiltIn">
|
|
<doc>Returns the given values which can then be assigned to a variables.</doc>
|
|
<arguments>
|
|
<arg>{'content-type':'application/json','X-APP-ID':'503258978847953926'}</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${client_login_header}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:01.117" level="INFO">${client_login_header} = {'content-type':'application/json','X-APP-ID':'503258978847953926'}</msg>
|
|
<status status="PASS" starttime="20220817 15:12:01.117" endtime="20220817 15:12:01.117"></status>
|
|
</kw>
|
|
<kw name="Set Global Variable" library="BuiltIn">
|
|
<doc>Makes a variable available globally in all tests and suites.</doc>
|
|
<arguments>
|
|
<arg>${ops_header}</arg>
|
|
</arguments>
|
|
<msg timestamp="20220817 15:12:01.117" level="INFO">${ops_header} = {'content-type':'application/json','X-APP-ID':'470236309865238555','Authorization':'Token 6b08add42d6bcf73abb935b2adf83525'}</msg>
|
|
<status status="PASS" starttime="20220817 15:12:01.117" endtime="20220817 15:12:01.117"></status>
|
|
</kw>
|
|
<kw name="Set Global Variable" library="BuiltIn">
|
|
<doc>Makes a variable available globally in all tests and suites.</doc>
|
|
<arguments>
|
|
<arg>${ops_login_header}</arg>
|
|
</arguments>
|
|
<msg timestamp="20220817 15:12:01.118" level="INFO">${ops_login_header} = {'content-type':'application/x-www-form-urlencoded','X-APP-ID':'470236309865238555'}</msg>
|
|
<status status="PASS" starttime="20220817 15:12:01.118" endtime="20220817 15:12:01.118"></status>
|
|
</kw>
|
|
<kw name="Set Global Variable" library="BuiltIn">
|
|
<doc>Makes a variable available globally in all tests and suites.</doc>
|
|
<arguments>
|
|
<arg>${client_login_header}</arg>
|
|
</arguments>
|
|
<msg timestamp="20220817 15:12:01.118" level="INFO">${client_login_header} = {'content-type':'application/json','X-APP-ID':'503258978847953926'}</msg>
|
|
<status status="PASS" starttime="20220817 15:12:01.118" endtime="20220817 15:12:01.118"></status>
|
|
</kw>
|
|
<kw name="Set Variable" library="BuiltIn">
|
|
<doc>Returns the given values which can then be assigned to a variables.</doc>
|
|
<arguments>
|
|
<arg>15014242835</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${account}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:01.119" level="INFO">${account} = 15014242835</msg>
|
|
<status status="PASS" starttime="20220817 15:12:01.119" endtime="20220817 15:12:01.119"></status>
|
|
</kw>
|
|
<kw name="Set Variable" library="BuiltIn">
|
|
<doc>Returns the given values which can then be assigned to a variables.</doc>
|
|
<arguments>
|
|
<arg>laiyonglan@qniao.cn</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${username}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:01.120" level="INFO">${username} = laiyonglan@qniao.cn</msg>
|
|
<status status="PASS" starttime="20220817 15:12:01.119" endtime="20220817 15:12:01.120"></status>
|
|
</kw>
|
|
<kw name="Set Global Variable" library="BuiltIn">
|
|
<doc>Makes a variable available globally in all tests and suites.</doc>
|
|
<arguments>
|
|
<arg>${account}</arg>
|
|
</arguments>
|
|
<msg timestamp="20220817 15:12:01.121" level="INFO">${account} = 15014242835</msg>
|
|
<status status="PASS" starttime="20220817 15:12:01.120" endtime="20220817 15:12:01.121"></status>
|
|
</kw>
|
|
<kw name="Set Global Variable" library="BuiltIn">
|
|
<doc>Makes a variable available globally in all tests and suites.</doc>
|
|
<arguments>
|
|
<arg>${username}</arg>
|
|
</arguments>
|
|
<msg timestamp="20220817 15:12:01.121" level="INFO">${username} = laiyonglan@qniao.cn</msg>
|
|
<status status="PASS" starttime="20220817 15:12:01.121" endtime="20220817 15:12:01.122"></status>
|
|
</kw>
|
|
<kw name="Set Variable" library="BuiltIn">
|
|
<doc>Returns the given values which can then be assigned to a variables.</doc>
|
|
<arguments>
|
|
<arg>888888</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${captcha}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:01.122" level="INFO">${captcha} = 888888</msg>
|
|
<status status="PASS" starttime="20220817 15:12:01.122" endtime="20220817 15:12:01.122"></status>
|
|
</kw>
|
|
<kw name="Set Variable" library="BuiltIn">
|
|
<doc>Returns the given values which can then be assigned to a variables.</doc>
|
|
<arguments>
|
|
<arg>qn123456</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${password}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:01.123" level="INFO">${password} = qn123456</msg>
|
|
<status status="PASS" starttime="20220817 15:12:01.122" endtime="20220817 15:12:01.123"></status>
|
|
</kw>
|
|
<kw name="Set Global Variable" library="BuiltIn">
|
|
<doc>Makes a variable available globally in all tests and suites.</doc>
|
|
<arguments>
|
|
<arg>${captcha}</arg>
|
|
</arguments>
|
|
<msg timestamp="20220817 15:12:01.123" level="INFO">${captcha} = 888888</msg>
|
|
<status status="PASS" starttime="20220817 15:12:01.123" endtime="20220817 15:12:01.123"></status>
|
|
</kw>
|
|
<kw name="Set Global Variable" library="BuiltIn">
|
|
<doc>Makes a variable available globally in all tests and suites.</doc>
|
|
<arguments>
|
|
<arg>${password}</arg>
|
|
</arguments>
|
|
<msg timestamp="20220817 15:12:01.123" level="INFO">${password} = qn123456</msg>
|
|
<status status="PASS" starttime="20220817 15:12:01.123" endtime="20220817 15:12:01.124"></status>
|
|
</kw>
|
|
<status status="PASS" starttime="20220817 15:12:01.111" endtime="20220817 15:12:01.124" critical="yes"></status>
|
|
</test>
|
|
<status status="PASS" starttime="20220817 15:12:01.009" endtime="20220817 15:12:01.124"></status>
|
|
</suite>
|
|
<suite id="s1-s2" name="1-ClientLogin" source="/root/ztb-factory-rf-api/000-Data/1-ClientLogin.robot">
|
|
<test id="s1-s2-t1" name="uecLogin">
|
|
<kw name="Disable Warnings" library="urllib3">
|
|
<doc>Helper for quickly disabling all urllib3 warnings.</doc>
|
|
<status status="PASS" starttime="20220817 15:12:01.132" endtime="20220817 15:12:01.132"></status>
|
|
</kw>
|
|
<kw name="Create Session" library="RequestsLibrary">
|
|
<doc>Create Session: create a HTTP session to a server</doc>
|
|
<arguments>
|
|
<arg>ZTBT</arg>
|
|
<arg>${uecClient}</arg>
|
|
<arg>${client_login_header}</arg>
|
|
</arguments>
|
|
<msg timestamp="20220817 15:12:01.133" level="INFO">Creating Session using : alias=ZTBT, url=https://api-client-uec-test.qniao.cn, headers={'content-type': 'application/json', 'X-APP-ID': '503258978847953926'}, cookies={}, auth=None, timeout=None, proxies=None, verify=False, debug=0 </msg>
|
|
<status status="PASS" starttime="20220817 15:12:01.132" endtime="20220817 15:12:01.133"></status>
|
|
</kw>
|
|
<kw name="Create Dictionary" library="BuiltIn">
|
|
<doc>Creates and returns a dictionary based on the given ``items``.</doc>
|
|
<arguments>
|
|
<arg>account=${account}</arg>
|
|
<arg>captcha=${captcha}</arg>
|
|
<arg>accountType=2</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${data}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:01.135" level="INFO">${data} = {'account': '15014242835', 'captcha': '888888', 'accountType': '2'}</msg>
|
|
<status status="PASS" starttime="20220817 15:12:01.133" endtime="20220817 15:12:01.135"></status>
|
|
</kw>
|
|
<kw name="Post On Session" library="RequestsLibrary">
|
|
<doc>Sends a POST request on a previously created HTTP Session.</doc>
|
|
<arguments>
|
|
<arg>ZTBT</arg>
|
|
<arg>uec/authorize/by-captcha</arg>
|
|
<arg>json=${data}</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${respones}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:01.226" level="INFO">POST Request : url=https://api-client-uec-test.qniao.cn/uec/authorize/by-captcha
|
|
path_url=/uec/authorize/by-captcha
|
|
headers={'User-Agent': 'python-requests/2.26.0', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'content-type': 'application/json', 'X-APP-ID': '503258978847953926', 'Content-Length': '67'}
|
|
body=b'{"account": "15014242835", "captcha": "888888", "accountType": "2"}'
|
|
</msg>
|
|
<msg timestamp="20220817 15:12:01.226" level="INFO">POST Response : url=https://api-client-uec-test.qniao.cn/uec/authorize/by-captcha
|
|
status=200, reason=
|
|
headers={'Server': 'nginx/1.16.1', 'Date': 'Wed, 17 Aug 2022 07:12:01 GMT', 'Content-Type': 'application/json', 'Transfer-Encoding': 'chunked', 'Connection': 'keep-alive', 'Vary': 'Origin, Access-Control-Request-Method, Access-Control-Request-Headers'}
|
|
body={"code":0,"message":"successful","data":{"token":"iHP4V/g6O5DXHixyNrf7tpO/qkx7j1gsqvbpL1KZGKCI5sLXsbsYUBhm9ec3GSn4S+LPw1rEn/lfuq9hvHeHHw==","userId":"701479226095833088"}}
|
|
</msg>
|
|
<msg timestamp="20220817 15:12:01.227" level="INFO">${respones} = <Response [200]></msg>
|
|
<status status="PASS" starttime="20220817 15:12:01.135" endtime="20220817 15:12:01.227"></status>
|
|
</kw>
|
|
<kw name="Get From Dictionary" library="Collections">
|
|
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
|
|
<arguments>
|
|
<arg>${respones.json()['data']}</arg>
|
|
<arg>token</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${token}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:01.228" level="INFO">${token} = iHP4V/g6O5DXHixyNrf7tpO/qkx7j1gsqvbpL1KZGKCI5sLXsbsYUBhm9ec3GSn4S+LPw1rEn/lfuq9hvHeHHw==</msg>
|
|
<status status="PASS" starttime="20220817 15:12:01.227" endtime="20220817 15:12:01.228"></status>
|
|
</kw>
|
|
<kw name="Set Global Variable" library="BuiltIn">
|
|
<doc>Makes a variable available globally in all tests and suites.</doc>
|
|
<arguments>
|
|
<arg>${token}</arg>
|
|
</arguments>
|
|
<msg timestamp="20220817 15:12:01.228" level="INFO">${token} = iHP4V/g6O5DXHixyNrf7tpO/qkx7j1gsqvbpL1KZGKCI5sLXsbsYUBhm9ec3GSn4S+LPw1rEn/lfuq9hvHeHHw==</msg>
|
|
<status status="PASS" starttime="20220817 15:12:01.228" endtime="20220817 15:12:01.228"></status>
|
|
</kw>
|
|
<status status="PASS" starttime="20220817 15:12:01.131" endtime="20220817 15:12:01.229" critical="yes"></status>
|
|
</test>
|
|
<test id="s1-s2-t2" name="login_token">
|
|
<kw name="Create Session" library="RequestsLibrary">
|
|
<doc>Create Session: create a HTTP session to a server</doc>
|
|
<arguments>
|
|
<arg>login</arg>
|
|
<arg>${ztbClient}</arg>
|
|
<arg>${client_login_header}</arg>
|
|
</arguments>
|
|
<msg timestamp="20220817 15:12:01.230" level="INFO">Creating Session using : alias=login, url=https://api-client-ztb-test.qniao.cn, headers={'content-type': 'application/json', 'X-APP-ID': '503258978847953926'}, cookies={}, auth=None, timeout=None, proxies=None, verify=False, debug=0 </msg>
|
|
<status status="PASS" starttime="20220817 15:12:01.229" endtime="20220817 15:12:01.230"></status>
|
|
</kw>
|
|
<kw name="Set Variable" library="BuiltIn">
|
|
<doc>Returns the given values which can then be assigned to a variables.</doc>
|
|
<arguments>
|
|
<arg>{"loginToken":"${token}"}</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${loginToken}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:01.231" level="INFO">${loginToken} = {"loginToken":"iHP4V/g6O5DXHixyNrf7tpO/qkx7j1gsqvbpL1KZGKCI5sLXsbsYUBhm9ec3GSn4S+LPw1rEn/lfuq9hvHeHHw=="}</msg>
|
|
<status status="PASS" starttime="20220817 15:12:01.230" endtime="20220817 15:12:01.231"></status>
|
|
</kw>
|
|
<kw name="Post On Session" library="RequestsLibrary">
|
|
<doc>Sends a POST request on a previously created HTTP Session.</doc>
|
|
<arguments>
|
|
<arg>login</arg>
|
|
<arg>recycle-user-center/authorize/get/product-line-token/by/login-token</arg>
|
|
<arg>${loginToken.encode('utf-8')}</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${reps}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:01.429" level="INFO">POST Request : url=https://api-client-ztb-test.qniao.cn/recycle-user-center/authorize/get/product-line-token/by/login-token
|
|
path_url=/recycle-user-center/authorize/get/product-line-token/by/login-token
|
|
headers={'User-Agent': 'python-requests/2.26.0', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'content-type': 'application/json', 'X-APP-ID': '503258978847953926', 'Content-Length': '105'}
|
|
body=b'{"loginToken":"iHP4V/g6O5DXHixyNrf7tpO/qkx7j1gsqvbpL1KZGKCI5sLXsbsYUBhm9ec3GSn4S+LPw1rEn/lfuq9hvHeHHw=="}'
|
|
</msg>
|
|
<msg timestamp="20220817 15:12:01.430" level="INFO">POST Response : url=https://api-client-ztb-test.qniao.cn/recycle-user-center/authorize/get/product-line-token/by/login-token
|
|
status=200, reason=
|
|
headers={'Server': 'nginx/1.16.1', 'Date': 'Wed, 17 Aug 2022 07:12:01 GMT', 'Content-Type': 'application/json;charset=UTF-8', 'Transfer-Encoding': 'chunked', 'Connection': 'keep-alive'}
|
|
body={"code":0,"message":"successful","data":"iHP4V/g6O5DXHixyNrf7tpO/qkx7j1gsqvbpL1KZGKCI5sLXsbsYUBhm9ec3GSn4S+LPw1rEn/lfuq9hvHeHHw=="}
|
|
</msg>
|
|
<msg timestamp="20220817 15:12:01.430" level="INFO">${reps} = <Response [200]></msg>
|
|
<status status="PASS" starttime="20220817 15:12:01.231" endtime="20220817 15:12:01.430"></status>
|
|
</kw>
|
|
<kw name="Get From Dictionary" library="Collections">
|
|
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
|
|
<arguments>
|
|
<arg>${reps.json()}</arg>
|
|
<arg>data</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${TokenData}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:01.431" level="INFO">${TokenData} = iHP4V/g6O5DXHixyNrf7tpO/qkx7j1gsqvbpL1KZGKCI5sLXsbsYUBhm9ec3GSn4S+LPw1rEn/lfuq9hvHeHHw==</msg>
|
|
<status status="PASS" starttime="20220817 15:12:01.430" endtime="20220817 15:12:01.431"></status>
|
|
</kw>
|
|
<kw name="Set Variable" library="BuiltIn">
|
|
<doc>Returns the given values which can then be assigned to a variables.</doc>
|
|
<arguments>
|
|
<arg>{'Content-Type':'application/json','Authorization':'QNT ${TokenData}','X-APP-ID':'503258978847953926'}</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${client_firstlogin_header}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:01.432" level="INFO">${client_firstlogin_header} = {'Content-Type':'application/json','Authorization':'QNT iHP4V/g6O5DXHixyNrf7tpO/qkx7j1gsqvbpL1KZGKCI5sLXsbsYUBhm9ec3GSn4S+LPw1rEn/lfuq9hvHeHHw==','X-APP-ID':'503258978847953926'}</msg>
|
|
<status status="PASS" starttime="20220817 15:12:01.431" endtime="20220817 15:12:01.432"></status>
|
|
</kw>
|
|
<kw name="Set Global Variable" library="BuiltIn">
|
|
<doc>Makes a variable available globally in all tests and suites.</doc>
|
|
<arguments>
|
|
<arg>${TokenData}</arg>
|
|
</arguments>
|
|
<msg timestamp="20220817 15:12:01.432" level="INFO">${TokenData} = iHP4V/g6O5DXHixyNrf7tpO/qkx7j1gsqvbpL1KZGKCI5sLXsbsYUBhm9ec3GSn4S+LPw1rEn/lfuq9hvHeHHw==</msg>
|
|
<status status="PASS" starttime="20220817 15:12:01.432" endtime="20220817 15:12:01.432"></status>
|
|
</kw>
|
|
<kw name="Set Global Variable" library="BuiltIn">
|
|
<doc>Makes a variable available globally in all tests and suites.</doc>
|
|
<arguments>
|
|
<arg>${client_firstlogin_header}</arg>
|
|
</arguments>
|
|
<msg timestamp="20220817 15:12:01.433" level="INFO">${client_firstlogin_header} = {'Content-Type':'application/json','Authorization':'QNT iHP4V/g6O5DXHixyNrf7tpO/qkx7j1gsqvbpL1KZGKCI5sLXsbsYUBhm9ec3GSn4S+LPw1rEn/lfuq9hvHeHHw==','X-APP-ID':'503258978847953926'}</msg>
|
|
<status status="PASS" starttime="20220817 15:12:01.432" endtime="20220817 15:12:01.433"></status>
|
|
</kw>
|
|
<status status="PASS" starttime="20220817 15:12:01.229" endtime="20220817 15:12:01.433" critical="yes"></status>
|
|
</test>
|
|
<test id="s1-s2-t3" name="user_info">
|
|
<kw name="Create Session" library="RequestsLibrary">
|
|
<doc>Create Session: create a HTTP session to a server</doc>
|
|
<arguments>
|
|
<arg>login</arg>
|
|
<arg>${ztbClient}</arg>
|
|
<arg>${client_firstlogin_header}</arg>
|
|
</arguments>
|
|
<msg timestamp="20220817 15:12:01.434" level="INFO">Creating Session using : alias=login, url=https://api-client-ztb-test.qniao.cn, headers={'Content-Type': 'application/json', 'Authorization': 'QNT iHP4V/g6O5DXHixyNrf7tpO/qkx7j1gsqvbpL1KZGKCI5sLXsbsYUBhm9ec3GSn4S+LPw1rEn/lfuq9hvHeHHw==', 'X-APP-ID': '503258978847953926'}, cookies={}, auth=None, timeout=None, proxies=None, verify=False, debug=0 </msg>
|
|
<status status="PASS" starttime="20220817 15:12:01.434" endtime="20220817 15:12:01.435"></status>
|
|
</kw>
|
|
<kw name="Get On Session" library="RequestsLibrary">
|
|
<doc>Sends a GET request on a previously created HTTP Session.</doc>
|
|
<arguments>
|
|
<arg>login</arg>
|
|
<arg>recycle-user-center/user/get/user-info</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${reps}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:01.785" level="INFO">GET Request : url=https://api-client-ztb-test.qniao.cn/recycle-user-center/user/get/user-info
|
|
path_url=/recycle-user-center/user/get/user-info
|
|
headers={'User-Agent': 'python-requests/2.26.0', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'QNT iHP4V/g6O5DXHixyNrf7tpO/qkx7j1gsqvbpL1KZGKCI5sLXsbsYUBhm9ec3GSn4S+LPw1rEn/lfuq9hvHeHHw==', 'X-APP-ID': '503258978847953926'}
|
|
body=None
|
|
</msg>
|
|
<msg timestamp="20220817 15:12:01.785" level="INFO">GET Response : url=https://api-client-ztb-test.qniao.cn/recycle-user-center/user/get/user-info
|
|
status=200, reason=
|
|
headers={'Server': 'nginx/1.16.1', 'Date': 'Wed, 17 Aug 2022 07:12:01 GMT', 'Content-Type': 'application/json;charset=UTF-8', 'Transfer-Encoding': 'chunked', 'Connection': 'keep-alive'}
|
|
body={"code":0,"message":"successful","data":{"userId":"701479226095833088","realName":"南瓜","mobile":"15014242835","avatarUrl":"https://thirdwx.qlogo.cn/mmopen/vi_32/xsqOwRfxs1IiaMc207zMrOf4AOZmC2d0LJ8cyvxLkjlVUicow0OjAnLQSzL8xhRicakTLfAd2icDuRFEahkHNQJ2zA/132","isAuth":1,"isSetPassword":1,"enterpriseId":null,"enterpriseName":null,"position":null,"employeeStatus":null,"applicationStatus":null,"contactsName":null,"contactsMobile":null,"locProvinceId":null,"locProvinceName":null,"locCityId":null,"locCityName":null,"locDistrictId":null,"locDistriceName":null,"locDetail":null,"isSupplierPerssion":false,"factoryId":null,"factoryName":null,"enterpriseRoleName":null,"enterpriseRoleId":null,"enterpriseDepartmentId":null,"enterpriseDepartmentName":null,"isSaasPerssion":true,"legalPersonName":null,"uniformSocialCreditCode":null,"legalPersonIdCardNo":null,"responsiblePersonName":null,"responsiblePersonMobile":null,"creditLine":null,"usedCreditLine":null,"availableCreditLine":null,"settlementPeriod":null,"type":null,"positionId":null,"menuList":[],"enterpriseInfos":[{"enterpriseId":"573952019207950336","organizationId":"573952019207950336","enterpriseName":"江苏康辉新材料科技有限公司","locProvinceId":440000,"locProvinceName":"广东省","locCityId":440100,"locCityName":"广州市","locDistrictId":440106,"locDistriceName":null,"locDetail":"车陂大岗路","contactsName":null,"contactsMobile":null,"legalPersonName":"刘建","uniformSocialCreditCode":"91320509MA213G5P8M","legalPersonIdCardNo":"20210402001","position":null,"employeeStatus":null,"isEnterprisePrimary":0,"factoryInfos":[{"factoryId":"573960116148244480","factoryName":"萬镓再生资源","type":"ADMIN","positionId":null,"enterpriseRoleName":"管理员厂长","enterpriseRoleId":null,"responsiblePersonName":"张山","responsiblePersonMobile":"13060994305","isSaasPerssion":true,"applicationStatus":null,"settlePriceType":2,"settleType":1,"isNeedWeightAudit":1,"deliverWeighingAudit":1,"openingCredit":1,"usingOffsiteReceipt":1,"isWeighedPricing":1,"enterpriseDepartmentId":"573960116311822336","enterpriseMemberId":"713725243071533056","deviceList":[{"id":"73e85cb8-badd-345d-9763-fed6584e147b","name":"万家再生打包站1号地磅","deviceUse":null},{"id":"8f1192ec-031b-3797-92ea-a155c3570762","name":"小工控机-2号","deviceUse":null},{"id":"88411749-cc05-3585-ac08-58f2c1dc0d5a","name":"3号地磅","deviceUse":null},{"id":"c8e8459d0e3af948","name":"地磅云盒","deviceUse":null},{"id":"9165a505-1ce7-3622-b62d-00468a03c368","name":"安卓盒子测试地磅","deviceUse":null},{"id":"5924e9f0-3d10-3537-92c8-eea8ba360bd9","name":"测试新逻辑","deviceUse":null},{"id":"102111052512","name":"测试叉车绑定地磅","deviceUse":null}],"usingStock":1,"paymentCompletionPeriod":15}],"enterpriseDepartmentInfos":[{"enterpriseDepartmentId":"573953977616568320","enterpriseDepartmentName":"千鸟IT打包站测试账号"},{"enterpriseDepartmentId":"573960116311822336","enterpriseDepartmentName":"IT中心打包站"},{"enterpriseDepartmentId":"594295045625090048","enterpriseDepartmentName":"测试打包站"},{"enterpriseDepartmentId":"713770043011371008","enterpriseDepartmentName":null},{"enterpriseDepartmentId":"729052286126526464","enterpriseDepartmentName":"江苏康辉新材料科技有限公司"}],"hasBankCard":true,"hasInviter":true,"salesTaxPoint":2053},{"enterpriseId":"738812239011778560","organizationId":"738812119994208256","enterpriseName":"武汉市青山区恒志纸业环保打包厂","locProvinceId":null,"locProvinceName":null,"locCityId":null,"locCityName":null,"locDistrictId":null,"locDistriceName":null,"locDetail":null,"contactsName":null,"contactsMobile":null,"legalPersonName":"张秋生","uniformSocialCreditCode":"92420107MA4HWPTW91","legalPersonIdCardNo":null,"position":null,"employeeStatus":null,"isEnterprisePrimary":0,"factoryInfos":[{"factoryId":"738816441691803648","factoryName":"工厂版打包站","type":"ADMIN","positionId":null,"enterpriseRoleName":"管理员","enterpriseRoleId":null,"responsiblePersonName":"待补充","responsiblePersonMobile":"待补充","isSaasPerssion":false,"applicationStatus":null,"settlePriceType":1,"settleType":1,"isNeedWeightAudit":1,"deliverWeighingAudit":1,"openingCredit":1,"usingOffsiteReceipt":1,"isWeighedPricing":0,"enterpriseDepartmentId":"738816442153177088","enterpriseMemberId":"738823017987182592","deviceList":[{"id":"7a86e40d-127f-3710-a3cd-b17368676516","name":"测试设备-NP005","deviceUse":null}],"usingStock":1,"paymentCompletionPeriod":15}],"enterpriseDepartmentInfos":[{"enterpriseDepartmentId":"738812239145996288","enterpriseDepartmentName":"武汉市青山区恒志纸业环保打包厂"},{"enterpriseDepartmentId":"738812538132762624","enterpriseDepartmentName":"千鸟工厂版测试打包站"},{"enterpriseDepartmentId":"738816442153177088","enterpriseDepartmentName":"工厂版打包站"},{"enterpriseDepartmentId":"740573306150850560","enterpriseDepartmentName":null},{"enterpriseDepartmentId":"743823055490519040","enterpriseDepartmentName":null},{"enterpriseDepartmentId":"743826065499230208","enterpriseDepartmentName":null},{"enterpriseDepartmentId":"743834212246884352","enterpriseDepartmentName":null}],"hasBankCard":true,"hasInviter":true,"salesTaxPoint":2051}]}}
|
|
</msg>
|
|
<msg timestamp="20220817 15:12:01.786" level="INFO">${reps} = <Response [200]></msg>
|
|
<status status="PASS" starttime="20220817 15:12:01.435" endtime="20220817 15:12:01.786"></status>
|
|
</kw>
|
|
<kw name="Get From Dictionary" library="Collections">
|
|
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
|
|
<arguments>
|
|
<arg>${reps.json()['data']}</arg>
|
|
<arg>userId</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${userId}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:01.787" level="INFO">${userId} = 701479226095833088</msg>
|
|
<status status="PASS" starttime="20220817 15:12:01.786" endtime="20220817 15:12:01.787"></status>
|
|
</kw>
|
|
<kw name="Get From Dictionary" library="Collections">
|
|
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
|
|
<arguments>
|
|
<arg>${reps.json()['data']}</arg>
|
|
<arg>mobile</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${mobile}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:01.788" level="INFO">${mobile} = 15014242835</msg>
|
|
<status status="PASS" starttime="20220817 15:12:01.787" endtime="20220817 15:12:01.788"></status>
|
|
</kw>
|
|
<kw name="Get From Dictionary" library="Collections">
|
|
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
|
|
<arguments>
|
|
<arg>${reps.json()['data']}</arg>
|
|
<arg>realName</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${realName}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:01.789" level="INFO">${realName} = 南瓜</msg>
|
|
<status status="PASS" starttime="20220817 15:12:01.788" endtime="20220817 15:12:01.789"></status>
|
|
</kw>
|
|
<kw name="Get From Dictionary" library="Collections">
|
|
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
|
|
<arguments>
|
|
<arg>${reps.json()['data']}</arg>
|
|
<arg>enterpriseInfos</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${enterpriseInfos}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:01.789" level="INFO">${enterpriseInfos} = [{'enterpriseId': '573952019207950336', 'organizationId': '573952019207950336', 'enterpriseName': '江苏康辉新材料科技有限公司', 'locProvinceId': 440000, 'locProvinceName': '广东省', 'locCityId': 440100, 'locCityName'...</msg>
|
|
<status status="PASS" starttime="20220817 15:12:01.789" endtime="20220817 15:12:01.789"></status>
|
|
</kw>
|
|
<kw name="${items} IN [ @{enterpriseInfos} ]" type="for">
|
|
<kw name="${items} = {'enterpriseId': '573952019207950336', 'organizationId': '573952019207950336', 'enterpriseName': '江苏康辉新材料科技有限公司', 'locProvinceId': 440000, 'locProvinceName': '广东省', 'locCityId': 440100, 'locCityName':..." type="foritem">
|
|
<kw name="Get From Dictionary" library="Collections">
|
|
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
|
|
<arguments>
|
|
<arg>${items}</arg>
|
|
<arg>factoryInfos</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${factoryInfos}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:01.790" level="INFO">${factoryInfos} = [{'factoryId': '573960116148244480', 'factoryName': '萬镓再生资源', 'type': 'ADMIN', 'positionId': None, 'enterpriseRoleName': '管理员厂长', 'enterpriseRoleId': None, 'responsiblePersonName': '张山', 'responsibleP...</msg>
|
|
<status status="PASS" starttime="20220817 15:12:01.790" endtime="20220817 15:12:01.790"></status>
|
|
</kw>
|
|
<kw name="Get From Dictionary" library="Collections">
|
|
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
|
|
<arguments>
|
|
<arg>${items}</arg>
|
|
<arg>enterpriseId</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${enterpriseId}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:01.791" level="INFO">${enterpriseId} = 573952019207950336</msg>
|
|
<status status="PASS" starttime="20220817 15:12:01.791" endtime="20220817 15:12:01.791"></status>
|
|
</kw>
|
|
<kw name="Get From Dictionary" library="Collections">
|
|
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
|
|
<arguments>
|
|
<arg>${items}</arg>
|
|
<arg>organizationId</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${organizationId}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:01.791" level="INFO">${organizationId} = 573952019207950336</msg>
|
|
<status status="PASS" starttime="20220817 15:12:01.791" endtime="20220817 15:12:01.791"></status>
|
|
</kw>
|
|
<kw name="Get From Dictionary" library="Collections">
|
|
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
|
|
<arguments>
|
|
<arg>${items}</arg>
|
|
<arg>enterpriseName</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${enterpriseName}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:01.792" level="INFO">${enterpriseName} = 江苏康辉新材料科技有限公司</msg>
|
|
<status status="PASS" starttime="20220817 15:12:01.791" endtime="20220817 15:12:01.792"></status>
|
|
</kw>
|
|
<kw name="Exit For Loop If" library="BuiltIn">
|
|
<doc>Stops executing the enclosing for loop if the ``condition`` is true.</doc>
|
|
<arguments>
|
|
<arg>'${enterpriseId}'=='738812239011778560'</arg>
|
|
</arguments>
|
|
<status status="PASS" starttime="20220817 15:12:01.792" endtime="20220817 15:12:01.793"></status>
|
|
</kw>
|
|
<status status="PASS" starttime="20220817 15:12:01.790" endtime="20220817 15:12:01.793"></status>
|
|
</kw>
|
|
<kw name="${items} = {'enterpriseId': '738812239011778560', 'organizationId': '738812119994208256', 'enterpriseName': '武汉市青山区恒志纸业环保打包厂', 'locProvinceId': None, 'locProvinceName': None, 'locCityId': None, 'locCityName': No..." type="foritem">
|
|
<kw name="Get From Dictionary" library="Collections">
|
|
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
|
|
<arguments>
|
|
<arg>${items}</arg>
|
|
<arg>factoryInfos</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${factoryInfos}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:01.794" level="INFO">${factoryInfos} = [{'factoryId': '738816441691803648', 'factoryName': '工厂版打包站', 'type': 'ADMIN', 'positionId': None, 'enterpriseRoleName': '管理员', 'enterpriseRoleId': None, 'responsiblePersonName': '待补充', 'responsiblePe...</msg>
|
|
<status status="PASS" starttime="20220817 15:12:01.793" endtime="20220817 15:12:01.794"></status>
|
|
</kw>
|
|
<kw name="Get From Dictionary" library="Collections">
|
|
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
|
|
<arguments>
|
|
<arg>${items}</arg>
|
|
<arg>enterpriseId</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${enterpriseId}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:01.794" level="INFO">${enterpriseId} = 738812239011778560</msg>
|
|
<status status="PASS" starttime="20220817 15:12:01.794" endtime="20220817 15:12:01.794"></status>
|
|
</kw>
|
|
<kw name="Get From Dictionary" library="Collections">
|
|
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
|
|
<arguments>
|
|
<arg>${items}</arg>
|
|
<arg>organizationId</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${organizationId}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:01.795" level="INFO">${organizationId} = 738812119994208256</msg>
|
|
<status status="PASS" starttime="20220817 15:12:01.794" endtime="20220817 15:12:01.795"></status>
|
|
</kw>
|
|
<kw name="Get From Dictionary" library="Collections">
|
|
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
|
|
<arguments>
|
|
<arg>${items}</arg>
|
|
<arg>enterpriseName</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${enterpriseName}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:01.795" level="INFO">${enterpriseName} = 武汉市青山区恒志纸业环保打包厂</msg>
|
|
<status status="PASS" starttime="20220817 15:12:01.795" endtime="20220817 15:12:01.795"></status>
|
|
</kw>
|
|
<kw name="Exit For Loop If" library="BuiltIn">
|
|
<doc>Stops executing the enclosing for loop if the ``condition`` is true.</doc>
|
|
<arguments>
|
|
<arg>'${enterpriseId}'=='738812239011778560'</arg>
|
|
</arguments>
|
|
<msg timestamp="20220817 15:12:01.796" level="INFO">Exiting for loop altogether.</msg>
|
|
<status status="PASS" starttime="20220817 15:12:01.795" endtime="20220817 15:12:01.796"></status>
|
|
</kw>
|
|
<status status="PASS" starttime="20220817 15:12:01.793" endtime="20220817 15:12:01.796"></status>
|
|
</kw>
|
|
<status status="PASS" starttime="20220817 15:12:01.790" endtime="20220817 15:12:01.796"></status>
|
|
</kw>
|
|
<kw name="${factoryInfo} IN [ @{factoryInfos} ]" type="for">
|
|
<kw name="${factoryInfo} = {'factoryId': '738816441691803648', 'factoryName': '工厂版打包站', 'type': 'ADMIN', 'positionId': None, 'enterpriseRoleName': '管理员', 'enterpriseRoleId': None, 'responsiblePersonName': '待补充', 'responsiblePer..." type="foritem">
|
|
<kw name="Get From Dictionary" library="Collections">
|
|
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
|
|
<arguments>
|
|
<arg>${factoryInfo}</arg>
|
|
<arg>factoryId</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${factoryId}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:01.797" level="INFO">${factoryId} = 738816441691803648</msg>
|
|
<status status="PASS" starttime="20220817 15:12:01.797" endtime="20220817 15:12:01.797"></status>
|
|
</kw>
|
|
<kw name="Get From Dictionary" library="Collections">
|
|
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
|
|
<arguments>
|
|
<arg>${factoryInfo}</arg>
|
|
<arg>factoryName</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${factoryName}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:01.798" level="INFO">${factoryName} = 工厂版打包站</msg>
|
|
<status status="PASS" starttime="20220817 15:12:01.797" endtime="20220817 15:12:01.798"></status>
|
|
</kw>
|
|
<kw name="Exit For Loop If" library="BuiltIn">
|
|
<doc>Stops executing the enclosing for loop if the ``condition`` is true.</doc>
|
|
<arguments>
|
|
<arg>'${factoryId}'=='738816441691803648'</arg>
|
|
</arguments>
|
|
<msg timestamp="20220817 15:12:01.798" level="INFO">Exiting for loop altogether.</msg>
|
|
<status status="PASS" starttime="20220817 15:12:01.798" endtime="20220817 15:12:01.798"></status>
|
|
</kw>
|
|
<status status="PASS" starttime="20220817 15:12:01.797" endtime="20220817 15:12:01.798"></status>
|
|
</kw>
|
|
<status status="PASS" starttime="20220817 15:12:01.796" endtime="20220817 15:12:01.798"></status>
|
|
</kw>
|
|
<kw name="Set Variable" library="BuiltIn">
|
|
<doc>Returns the given values which can then be assigned to a variables.</doc>
|
|
<arguments>
|
|
<arg>{'Content-Type':'application/json','Authorization':'QNT ${TokenData}','X-APP-ID':'503258978847953926','X-FACTORY-ID':'${factoryId}'}</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${client_header}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:01.799" level="INFO">${client_header} = {'Content-Type':'application/json','Authorization':'QNT iHP4V/g6O5DXHixyNrf7tpO/qkx7j1gsqvbpL1KZGKCI5sLXsbsYUBhm9ec3GSn4S+LPw1rEn/lfuq9hvHeHHw==','X-APP-ID':'503258978847953926','X-FACTORY-ID':'738816...</msg>
|
|
<status status="PASS" starttime="20220817 15:12:01.799" endtime="20220817 15:12:01.799"></status>
|
|
</kw>
|
|
<kw name="Set Variable" library="BuiltIn">
|
|
<doc>Returns the given values which can then be assigned to a variables.</doc>
|
|
<arguments>
|
|
<arg>{'Authorization':'QNT ${TokenData}','X-APP-ID':'503258978847953926','X-FACTORY-ID':'${factoryId}'}</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${Header}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:01.799" level="INFO">${Header} = {'Authorization':'QNT iHP4V/g6O5DXHixyNrf7tpO/qkx7j1gsqvbpL1KZGKCI5sLXsbsYUBhm9ec3GSn4S+LPw1rEn/lfuq9hvHeHHw==','X-APP-ID':'503258978847953926','X-FACTORY-ID':'738816441691803648'}</msg>
|
|
<status status="PASS" starttime="20220817 15:12:01.799" endtime="20220817 15:12:01.800"></status>
|
|
</kw>
|
|
<kw name="Set Global Variable" library="BuiltIn">
|
|
<doc>Makes a variable available globally in all tests and suites.</doc>
|
|
<arguments>
|
|
<arg>${factoryId}</arg>
|
|
</arguments>
|
|
<msg timestamp="20220817 15:12:01.800" level="INFO">${factoryId} = 738816441691803648</msg>
|
|
<status status="PASS" starttime="20220817 15:12:01.800" endtime="20220817 15:12:01.800"></status>
|
|
</kw>
|
|
<kw name="Set Global Variable" library="BuiltIn">
|
|
<doc>Makes a variable available globally in all tests and suites.</doc>
|
|
<arguments>
|
|
<arg>${factoryName}</arg>
|
|
</arguments>
|
|
<msg timestamp="20220817 15:12:01.801" level="INFO">${factoryName} = 工厂版打包站</msg>
|
|
<status status="PASS" starttime="20220817 15:12:01.800" endtime="20220817 15:12:01.801"></status>
|
|
</kw>
|
|
<kw name="Set Global Variable" library="BuiltIn">
|
|
<doc>Makes a variable available globally in all tests and suites.</doc>
|
|
<arguments>
|
|
<arg>${client_header}</arg>
|
|
</arguments>
|
|
<msg timestamp="20220817 15:12:01.802" level="INFO">${client_header} = {'Content-Type':'application/json','Authorization':'QNT iHP4V/g6O5DXHixyNrf7tpO/qkx7j1gsqvbpL1KZGKCI5sLXsbsYUBhm9ec3GSn4S+LPw1rEn/lfuq9hvHeHHw==','X-APP-ID':'503258978847953926','X-FACTORY-ID':'738816...</msg>
|
|
<status status="PASS" starttime="20220817 15:12:01.801" endtime="20220817 15:12:01.802"></status>
|
|
</kw>
|
|
<kw name="Set Global Variable" library="BuiltIn">
|
|
<doc>Makes a variable available globally in all tests and suites.</doc>
|
|
<arguments>
|
|
<arg>${organizationId}</arg>
|
|
</arguments>
|
|
<msg timestamp="20220817 15:12:01.802" level="INFO">${organizationId} = 738812119994208256</msg>
|
|
<status status="PASS" starttime="20220817 15:12:01.802" endtime="20220817 15:12:01.802"></status>
|
|
</kw>
|
|
<kw name="Set Global Variable" library="BuiltIn">
|
|
<doc>Makes a variable available globally in all tests and suites.</doc>
|
|
<arguments>
|
|
<arg>${enterpriseName}</arg>
|
|
</arguments>
|
|
<msg timestamp="20220817 15:12:01.803" level="INFO">${enterpriseName} = 武汉市青山区恒志纸业环保打包厂</msg>
|
|
<status status="PASS" starttime="20220817 15:12:01.803" endtime="20220817 15:12:01.803"></status>
|
|
</kw>
|
|
<kw name="Set Global Variable" library="BuiltIn">
|
|
<doc>Makes a variable available globally in all tests and suites.</doc>
|
|
<arguments>
|
|
<arg>${Header}</arg>
|
|
</arguments>
|
|
<msg timestamp="20220817 15:12:01.804" level="INFO">${Header} = {'Authorization':'QNT iHP4V/g6O5DXHixyNrf7tpO/qkx7j1gsqvbpL1KZGKCI5sLXsbsYUBhm9ec3GSn4S+LPw1rEn/lfuq9hvHeHHw==','X-APP-ID':'503258978847953926','X-FACTORY-ID':'738816441691803648'}</msg>
|
|
<status status="PASS" starttime="20220817 15:12:01.803" endtime="20220817 15:12:01.804"></status>
|
|
</kw>
|
|
<status status="PASS" starttime="20220817 15:12:01.433" endtime="20220817 15:12:01.804" critical="yes"></status>
|
|
</test>
|
|
<status status="PASS" starttime="20220817 15:12:01.125" endtime="20220817 15:12:01.804"></status>
|
|
</suite>
|
|
<suite id="s1-s3" name="2-OpsLogin" source="/root/ztb-factory-rf-api/000-Data/2-OpsLogin.robot">
|
|
<test id="s1-s3-t1" name="login">
|
|
<kw name="Disable Warnings" library="urllib3">
|
|
<doc>Helper for quickly disabling all urllib3 warnings.</doc>
|
|
<status status="PASS" starttime="20220817 15:12:01.809" endtime="20220817 15:12:01.810"></status>
|
|
</kw>
|
|
<kw name="Create Session" library="RequestsLibrary">
|
|
<doc>Create Session: create a HTTP session to a server</doc>
|
|
<arguments>
|
|
<arg>ztbf</arg>
|
|
<arg>${opsztb}</arg>
|
|
<arg>${ops_login_header}</arg>
|
|
</arguments>
|
|
<msg timestamp="20220817 15:12:01.810" level="INFO">Creating Session using : alias=ztbf, url=https://api-ops-ztb-test.qniao.cn, headers={'content-type': 'application/x-www-form-urlencoded', 'X-APP-ID': '470236309865238555'}, cookies={}, auth=None, timeout=None, proxies=None, verify=False, debug=0 </msg>
|
|
<status status="PASS" starttime="20220817 15:12:01.810" endtime="20220817 15:12:01.811"></status>
|
|
</kw>
|
|
<kw name="Create Dictionary" library="BuiltIn">
|
|
<doc>Creates and returns a dictionary based on the given ``items``.</doc>
|
|
<arguments>
|
|
<arg>username=${username}</arg>
|
|
<arg>password=${password}</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${LoginData}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:01.812" level="INFO">${LoginData} = {'username': 'laiyonglan@qniao.cn', 'password': 'qn123456'}</msg>
|
|
<status status="PASS" starttime="20220817 15:12:01.811" endtime="20220817 15:12:01.812"></status>
|
|
</kw>
|
|
<kw name="Post On Session" library="RequestsLibrary">
|
|
<doc>Sends a POST request on a previously created HTTP Session.</doc>
|
|
<arguments>
|
|
<arg>ztbf</arg>
|
|
<arg>recycle-service/admin/login</arg>
|
|
<arg>params=${LoginData}</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${reps}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:01.998" level="INFO">POST Request : url=https://api-ops-ztb-test.qniao.cn/recycle-service/admin/login?username=laiyonglan%40qniao.cn&password=qn123456
|
|
path_url=/recycle-service/admin/login?username=laiyonglan%40qniao.cn&password=qn123456
|
|
headers={'User-Agent': 'python-requests/2.26.0', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'content-type': 'application/x-www-form-urlencoded', 'X-APP-ID': '470236309865238555', 'Content-Length': '0'}
|
|
body=None
|
|
</msg>
|
|
<msg timestamp="20220817 15:12:01.998" level="INFO">POST Response : url=https://api-ops-ztb-test.qniao.cn/recycle-service/admin/login?username=laiyonglan%40qniao.cn&password=qn123456
|
|
status=200, reason=
|
|
headers={'Server': 'nginx/1.16.1', 'Date': 'Wed, 17 Aug 2022 07:12:01 GMT', 'Content-Type': 'application/json;charset=UTF-8', 'Transfer-Encoding': 'chunked', 'Connection': 'keep-alive', 'Vary': 'Origin, Access-Control-Request-Method, Access-Control-Request-Headers', 'X-Frame-Options': 'DENY', 'Access-Control-Request-Method': '*', 'Authorization': 'Token 6b08add42d6bcf73abb935b2adf83525', 'X-Content-Type-Options': 'nosniff', 'X-XSS-Protection': '1; mode=block', 'Cache-Control': 'no-cache'}
|
|
body={"code":200,"message":"登陆成功"}
|
|
</msg>
|
|
<msg timestamp="20220817 15:12:01.999" level="INFO">${reps} = <Response [200]></msg>
|
|
<status status="PASS" starttime="20220817 15:12:01.812" endtime="20220817 15:12:01.999"></status>
|
|
</kw>
|
|
<status status="PASS" starttime="20220817 15:12:01.809" endtime="20220817 15:12:01.999" critical="yes"></status>
|
|
</test>
|
|
<status status="PASS" starttime="20220817 15:12:01.805" endtime="20220817 15:12:01.999"></status>
|
|
</suite>
|
|
<suite id="s1-s4" name="3-Infomation" source="/root/ztb-factory-rf-api/000-Data/3-Infomation.robot">
|
|
<test id="s1-s4-t1" name="getInformation">
|
|
<kw name="Create Session" library="RequestsLibrary">
|
|
<doc>Create Session: create a HTTP session to a server</doc>
|
|
<arguments>
|
|
<arg>ztbf</arg>
|
|
<arg>${ztbClient}</arg>
|
|
<arg>${client_header}</arg>
|
|
</arguments>
|
|
<msg timestamp="20220817 15:12:02.005" level="INFO">Creating Session using : alias=ztbf, url=https://api-client-ztb-test.qniao.cn, headers={'Content-Type': 'application/json', 'Authorization': 'QNT iHP4V/g6O5DXHixyNrf7tpO/qkx7j1gsqvbpL1KZGKCI5sLXsbsYUBhm9ec3GSn4S+LPw1rEn/lfuq9hvHeHHw==', 'X-APP-ID': '503258978847953926', 'X-FACTORY-ID': '738816441691803648'}, cookies={}, auth=None, timeout=None, proxies=None, verify=False, debug=0 </msg>
|
|
<status status="PASS" starttime="20220817 15:12:02.004" endtime="20220817 15:12:02.005"></status>
|
|
</kw>
|
|
<kw name="Get On Session" library="RequestsLibrary">
|
|
<doc>Sends a GET request on a previously created HTTP Session.</doc>
|
|
<arguments>
|
|
<arg>ztbf</arg>
|
|
<arg>ztb-factory/factory/get/all-product</arg>
|
|
<arg>params=pageNum=1&pageSize=100</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${reps}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:02.086" level="INFO">GET Request : url=https://api-client-ztb-test.qniao.cn/ztb-factory/factory/get/all-product?pageNum=1&pageSize=100
|
|
path_url=/ztb-factory/factory/get/all-product?pageNum=1&pageSize=100
|
|
headers={'User-Agent': 'python-requests/2.26.0', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'QNT iHP4V/g6O5DXHixyNrf7tpO/qkx7j1gsqvbpL1KZGKCI5sLXsbsYUBhm9ec3GSn4S+LPw1rEn/lfuq9hvHeHHw==', 'X-APP-ID': '503258978847953926', 'X-FACTORY-ID': '738816441691803648'}
|
|
body=None
|
|
</msg>
|
|
<msg timestamp="20220817 15:12:02.086" level="INFO">GET Response : url=https://api-client-ztb-test.qniao.cn/ztb-factory/factory/get/all-product?pageNum=1&pageSize=100
|
|
status=200, reason=
|
|
headers={'Server': 'nginx/1.16.1', 'Date': 'Wed, 17 Aug 2022 07:12:02 GMT', 'Content-Type': 'application/json', 'Transfer-Encoding': 'chunked', 'Connection': 'keep-alive', 'Vary': 'Origin, Access-Control-Request-Method, Access-Control-Request-Headers'}
|
|
body={"code":0,"message":"successful","data":{"records":[{"id":"101010101","name":"废纸","smallProductCategoryInfoList":[{"id":"741711213142085632","factoryId":null,"categoryId":1,"categoryName":"白卡","name":"白卡","defaultUnitPrice":2.10000,"highestUnitPrice":2.50000,"lowestUnitPrice":0.00000,"highestAdjustmentSurcharge":null,"lowestAdjustmentSurcharge":null,"creatorId":null,"editorId":null},{"id":"741711135404855296","factoryId":null,"categoryId":483388222118957056,"categoryName":"口杯纸","name":"口杯纸","defaultUnitPrice":1.50000,"highestUnitPrice":2.00000,"lowestUnitPrice":0.00000,"highestAdjustmentSurcharge":null,"lowestAdjustmentSurcharge":null,"creatorId":null,"editorId":null},{"id":"741711066156896256","factoryId":null,"categoryId":480878211421573182,"categoryName":"不干胶","name":"不干胶","defaultUnitPrice":2.00000,"highestUnitPrice":3.00000,"lowestUnitPrice":0.00000,"highestAdjustmentSurcharge":null,"lowestAdjustmentSurcharge":null,"creatorId":null,"editorId":null},{"id":"741366869373620224","factoryId":null,"categoryId":480878211421573177,"categoryName":"纸杯纸","name":"纸杯纸","defaultUnitPrice":2.00000,"highestUnitPrice":3.00000,"lowestUnitPrice":0.00000,"highestAdjustmentSurcharge":null,"lowestAdjustmentSurcharge":null,"creatorId":null,"editorId":null},{"id":"741347466523316224","factoryId":null,"categoryId":716753824810930176,"categoryName":"hinzai测试废废","name":"hinzai测试废废","defaultUnitPrice":6.00000,"highestUnitPrice":10.00000,"lowestUnitPrice":0.00000,"highestAdjustmentSurcharge":null,"lowestAdjustmentSurcharge":null,"creatorId":null,"editorId":null},{"id":"741345072695611392","factoryId":null,"categoryId":480878211421573206,"categoryName":"纯工厂纸边","name":"纯工厂纸边","defaultUnitPrice":5.00000,"highestUnitPrice":6.50000,"lowestUnitPrice":0.00000,"highestAdjustmentSurcharge":null,"lowestAdjustmentSurcharge":null,"creatorId":null,"editorId":null},{"id":"740621805735251968","factoryId":null,"categoryId":480878211421573175,"categoryName":"纸筒","name":"纸筒","defaultUnitPrice":2.00000,"highestUnitPrice":5.00000,"lowestUnitPrice":0.00000,"highestAdjustmentSurcharge":null,"lowestAdjustmentSurcharge":null,"creatorId":null,"editorId":null},{"id":"738827538708697088","factoryId":null,"categoryId":480878211421573178,"categoryName":"统货CD","name":"统货","defaultUnitPrice":5.60000,"highestUnitPrice":10.00000,"lowestUnitPrice":0.00000,"highestAdjustmentSurcharge":null,"lowestAdjustmentSurcharge":null,"creatorId":null,"editorId":null},{"id":"738825854896967680","factoryId":null,"categoryId":480878211421573148,"categoryName":"纸筒A","name":"纸筒A","defaultUnitPrice":10.00000,"highestUnitPrice":20.00000,"lowestUnitPrice":0.00000,"highestAdjustmentSurcharge":null,"lowestAdjustmentSurcharge":null,"creatorId":null,"editorId":null}]},{"id":"202020202","name":"废钢","smallProductCategoryInfoList":[]},{"id":"303030303","name":"废铁","smallProductCategoryInfoList":[]},{"id":"404040404","name":"废塑料","smallProductCategoryInfoList":[]}],"total":0,"size":100,"current":1,"pages":0}}
|
|
</msg>
|
|
<msg timestamp="20220817 15:12:02.086" level="INFO">${reps} = <Response [200]></msg>
|
|
<status status="PASS" starttime="20220817 15:12:02.006" endtime="20220817 15:12:02.086"></status>
|
|
</kw>
|
|
<kw name="Get From Dictionary" library="Collections">
|
|
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
|
|
<arguments>
|
|
<arg>${reps.json()['data']}</arg>
|
|
<arg>records</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${records}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:02.087" level="INFO">${records} = [{'id': '101010101', 'name': '废纸', 'smallProductCategoryInfoList': [{'id': '741711213142085632', 'factoryId': None, 'categoryId': 1, 'categoryName': '白卡', 'name': '白卡', 'defaultUnitPrice': 2.1, 'highe...</msg>
|
|
<status status="PASS" starttime="20220817 15:12:02.086" endtime="20220817 15:12:02.087"></status>
|
|
</kw>
|
|
<kw name="${items} IN [ @{records} ]" type="for">
|
|
<kw name="${items} = {'id': '101010101', 'name': '废纸', 'smallProductCategoryInfoList': [{'id': '741711213142085632', 'factoryId': None, 'categoryId': 1, 'categoryName': '白卡', 'name': '白卡', 'defaultUnitPrice': 2.1, 'highes..." type="foritem">
|
|
<kw name="Get From Dictionary" library="Collections">
|
|
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
|
|
<arguments>
|
|
<arg>${items}</arg>
|
|
<arg>id</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${id}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:02.088" level="INFO">${id} = 101010101</msg>
|
|
<status status="PASS" starttime="20220817 15:12:02.088" endtime="20220817 15:12:02.088"></status>
|
|
</kw>
|
|
<kw name="Get From Dictionary" library="Collections">
|
|
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
|
|
<arguments>
|
|
<arg>${items}</arg>
|
|
<arg>name</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${name}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:02.088" level="INFO">${name} = 废纸</msg>
|
|
<status status="PASS" starttime="20220817 15:12:02.088" endtime="20220817 15:12:02.089"></status>
|
|
</kw>
|
|
<kw name="Get From Dictionary" library="Collections">
|
|
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
|
|
<arguments>
|
|
<arg>${items}</arg>
|
|
<arg>smallProductCategoryInfoList</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${smallProductCategoryInfoList}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:02.089" level="INFO">${smallProductCategoryInfoList} = [{'id': '741711213142085632', 'factoryId': None, 'categoryId': 1, 'categoryName': '白卡', 'name': '白卡', 'defaultUnitPrice': 2.1, 'highestUnitPrice': 2.5, 'lowestUnitPrice': 0.0, 'highestAdjustmentSurcha...</msg>
|
|
<status status="PASS" starttime="20220817 15:12:02.089" endtime="20220817 15:12:02.089"></status>
|
|
</kw>
|
|
<kw name="Exit For Loop If" library="BuiltIn">
|
|
<doc>Stops executing the enclosing for loop if the ``condition`` is true.</doc>
|
|
<arguments>
|
|
<arg>'${id}'=='101010101'</arg>
|
|
</arguments>
|
|
<msg timestamp="20220817 15:12:02.090" level="INFO">Exiting for loop altogether.</msg>
|
|
<status status="PASS" starttime="20220817 15:12:02.089" endtime="20220817 15:12:02.090"></status>
|
|
</kw>
|
|
<status status="PASS" starttime="20220817 15:12:02.088" endtime="20220817 15:12:02.090"></status>
|
|
</kw>
|
|
<status status="PASS" starttime="20220817 15:12:02.087" endtime="20220817 15:12:02.090"></status>
|
|
</kw>
|
|
<kw name="Evaluate" library="BuiltIn">
|
|
<doc>Evaluates the given expression in Python and returns the results.</doc>
|
|
<arguments>
|
|
<arg>random.choice(${smallProductCategoryInfoList})</arg>
|
|
<arg>random</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${CategoryInfo}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:02.092" level="INFO">${CategoryInfo} = {'id': '741347466523316224', 'factoryId': None, 'categoryId': 716753824810930176, 'categoryName': 'hinzai测试废废', 'name': 'hinzai测试废废', 'defaultUnitPrice': 6.0, 'highestUnitPrice': 10.0, 'lowestUnitPric...</msg>
|
|
<status status="PASS" starttime="20220817 15:12:02.090" endtime="20220817 15:12:02.092"></status>
|
|
</kw>
|
|
<kw name="Get From Dictionary" library="Collections">
|
|
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
|
|
<arguments>
|
|
<arg>${CategoryInfo}</arg>
|
|
<arg>id</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${categoryId}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:02.092" level="INFO">${categoryId} = 741347466523316224</msg>
|
|
<status status="PASS" starttime="20220817 15:12:02.092" endtime="20220817 15:12:02.092"></status>
|
|
</kw>
|
|
<kw name="Get From Dictionary" library="Collections">
|
|
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
|
|
<arguments>
|
|
<arg>${CategoryInfo}</arg>
|
|
<arg>categoryName</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${categoryName}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:02.093" level="INFO">${categoryName} = hinzai测试废废</msg>
|
|
<status status="PASS" starttime="20220817 15:12:02.092" endtime="20220817 15:12:02.093"></status>
|
|
</kw>
|
|
<kw name="Get From Dictionary" library="Collections">
|
|
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
|
|
<arguments>
|
|
<arg>${CategoryInfo}</arg>
|
|
<arg>defaultUnitPrice</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${defaultUnitPrice}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:02.093" level="INFO">${defaultUnitPrice} = 6.0</msg>
|
|
<status status="PASS" starttime="20220817 15:12:02.093" endtime="20220817 15:12:02.093"></status>
|
|
</kw>
|
|
<kw name="Get From Dictionary" library="Collections">
|
|
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
|
|
<arguments>
|
|
<arg>${CategoryInfo}</arg>
|
|
<arg>highestUnitPrice</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${highestUnitPrice}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:02.093" level="INFO">${highestUnitPrice} = 10.0</msg>
|
|
<status status="PASS" starttime="20220817 15:12:02.093" endtime="20220817 15:12:02.093"></status>
|
|
</kw>
|
|
<kw name="Get From Dictionary" library="Collections">
|
|
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
|
|
<arguments>
|
|
<arg>${CategoryInfo}</arg>
|
|
<arg>categoryId</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${productcategoryId}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:02.094" level="INFO">${productcategoryId} = 716753824810930176</msg>
|
|
<status status="PASS" starttime="20220817 15:12:02.094" endtime="20220817 15:12:02.094"></status>
|
|
</kw>
|
|
<kw name="Set Global Variable" library="BuiltIn">
|
|
<doc>Makes a variable available globally in all tests and suites.</doc>
|
|
<arguments>
|
|
<arg>${categoryId}</arg>
|
|
</arguments>
|
|
<msg timestamp="20220817 15:12:02.094" level="INFO">${categoryId} = 741347466523316224</msg>
|
|
<status status="PASS" starttime="20220817 15:12:02.094" endtime="20220817 15:12:02.095"></status>
|
|
</kw>
|
|
<kw name="Set Global Variable" library="BuiltIn">
|
|
<doc>Makes a variable available globally in all tests and suites.</doc>
|
|
<arguments>
|
|
<arg>${categoryName}</arg>
|
|
</arguments>
|
|
<msg timestamp="20220817 15:12:02.095" level="INFO">${categoryName} = hinzai测试废废</msg>
|
|
<status status="PASS" starttime="20220817 15:12:02.095" endtime="20220817 15:12:02.095"></status>
|
|
</kw>
|
|
<kw name="Set Global Variable" library="BuiltIn">
|
|
<doc>Makes a variable available globally in all tests and suites.</doc>
|
|
<arguments>
|
|
<arg>${defaultUnitPrice}</arg>
|
|
</arguments>
|
|
<msg timestamp="20220817 15:12:02.095" level="INFO">${defaultUnitPrice} = 6.0</msg>
|
|
<status status="PASS" starttime="20220817 15:12:02.095" endtime="20220817 15:12:02.096"></status>
|
|
</kw>
|
|
<kw name="Set Global Variable" library="BuiltIn">
|
|
<doc>Makes a variable available globally in all tests and suites.</doc>
|
|
<arguments>
|
|
<arg>${highestUnitPrice}</arg>
|
|
</arguments>
|
|
<msg timestamp="20220817 15:12:02.096" level="INFO">${highestUnitPrice} = 10.0</msg>
|
|
<status status="PASS" starttime="20220817 15:12:02.096" endtime="20220817 15:12:02.096"></status>
|
|
</kw>
|
|
<kw name="Set Global Variable" library="BuiltIn">
|
|
<doc>Makes a variable available globally in all tests and suites.</doc>
|
|
<arguments>
|
|
<arg>${productcategoryId}</arg>
|
|
</arguments>
|
|
<msg timestamp="20220817 15:12:02.096" level="INFO">${productcategoryId} = 716753824810930176</msg>
|
|
<status status="PASS" starttime="20220817 15:12:02.096" endtime="20220817 15:12:02.097"></status>
|
|
</kw>
|
|
<kw name="Get On Session" library="RequestsLibrary">
|
|
<doc>Sends a GET request on a previously created HTTP Session.</doc>
|
|
<arguments>
|
|
<arg>ztbf</arg>
|
|
<arg>ztb-factory/factory/get/customer-list</arg>
|
|
<arg>params=name=&pageNum=1&pageSize=1500</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${reps}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:02.128" level="INFO">GET Request : url=https://api-client-ztb-test.qniao.cn/ztb-factory/factory/get/customer-list?name=&pageNum=1&pageSize=1500
|
|
path_url=/ztb-factory/factory/get/customer-list?name=&pageNum=1&pageSize=1500
|
|
headers={'User-Agent': 'python-requests/2.26.0', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'QNT iHP4V/g6O5DXHixyNrf7tpO/qkx7j1gsqvbpL1KZGKCI5sLXsbsYUBhm9ec3GSn4S+LPw1rEn/lfuq9hvHeHHw==', 'X-APP-ID': '503258978847953926', 'X-FACTORY-ID': '738816441691803648'}
|
|
body=None
|
|
</msg>
|
|
<msg timestamp="20220817 15:12:02.128" level="INFO">GET Response : url=https://api-client-ztb-test.qniao.cn/ztb-factory/factory/get/customer-list?name=&pageNum=1&pageSize=1500
|
|
status=200, reason=
|
|
headers={'Server': 'nginx/1.16.1', 'Date': 'Wed, 17 Aug 2022 07:12:02 GMT', 'Content-Type': 'application/json', 'Transfer-Encoding': 'chunked', 'Connection': 'keep-alive', 'Vary': 'Origin, Access-Control-Request-Method, Access-Control-Request-Headers'}
|
|
body={"code":0,"message":"successful","data":{"records":[{"id":"136","cardNo":"2836579628","name":"小可爱","mobile":null,"defaultPaymentMethod":2,"bankName":null,"bankBranchName":null,"bankCardNo":null,"userId":"659450159519895552","customerSettleType":1,"bankOwnerName":null},{"id":"135","cardNo":null,"name":"小盆友","mobile":null,"defaultPaymentMethod":1,"bankName":null,"bankBranchName":null,"bankCardNo":null,"userId":"704315180259086336","customerSettleType":1,"bankOwnerName":null},{"id":"133","cardNo":"3391895980","name":"芦雪庵","mobile":null,"defaultPaymentMethod":1,"bankName":null,"bankBranchName":null,"bankCardNo":null,"userId":"659450159519895552","customerSettleType":1,"bankOwnerName":null},{"id":"132","cardNo":null,"name":"破落户","mobile":"16666666666","defaultPaymentMethod":2,"bankName":null,"bankBranchName":null,"bankCardNo":null,"userId":null,"customerSettleType":1,"bankOwnerName":null},{"id":"131","cardNo":null,"name":"宝姐姐","mobile":null,"defaultPaymentMethod":2,"bankName":null,"bankBranchName":null,"bankCardNo":null,"userId":null,"customerSettleType":1,"bankOwnerName":null},{"id":"130","cardNo":null,"name":"妙玉","mobile":null,"defaultPaymentMethod":1,"bankName":null,"bankBranchName":null,"bankCardNo":null,"userId":"636564967314821120","customerSettleType":1,"bankOwnerName":null},{"id":"129","cardNo":null,"name":"省亲","mobile":null,"defaultPaymentMethod":1,"bankName":null,"bankBranchName":null,"bankCardNo":null,"userId":null,"customerSettleType":1,"bankOwnerName":null},{"id":"128","cardNo":null,"name":"杏花在望","mobile":null,"defaultPaymentMethod":1,"bankName":null,"bankBranchName":null,"bankCardNo":null,"userId":null,"customerSettleType":1,"bankOwnerName":null},{"id":"127","cardNo":null,"name":"泻玉","mobile":null,"defaultPaymentMethod":2,"bankName":null,"bankBranchName":null,"bankCardNo":null,"userId":null,"customerSettleType":1,"bankOwnerName":null},{"id":"126","cardNo":null,"name":"哈哈","mobile":"18888888888/020-88888888","defaultPaymentMethod":1,"bankName":null,"bankBranchName":null,"bankCardNo":null,"userId":null,"customerSettleType":1,"bankOwnerName":null},{"id":"125","cardNo":null,"name":"小小","mobile":"18888888888","defaultPaymentMethod":1,"bankName":null,"bankBranchName":null,"bankCardNo":null,"userId":"659450159519895552","customerSettleType":1,"bankOwnerName":null}],"total":11,"size":1500,"current":1,"pages":1}}
|
|
</msg>
|
|
<msg timestamp="20220817 15:12:02.128" level="INFO">${reps} = <Response [200]></msg>
|
|
<status status="PASS" starttime="20220817 15:12:02.097" endtime="20220817 15:12:02.129"></status>
|
|
</kw>
|
|
<kw name="Get From Dictionary" library="Collections">
|
|
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
|
|
<arguments>
|
|
<arg>${reps.json()['data']}</arg>
|
|
<arg>records</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${customerList}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:02.130" level="INFO">${customerList} = [{'id': '136', 'cardNo': '2836579628', 'name': '小可爱', 'mobile': None, 'defaultPaymentMethod': 2, 'bankName': None, 'bankBranchName': None, 'bankCardNo': None, 'userId': '659450159519895552', 'customer...</msg>
|
|
<status status="PASS" starttime="20220817 15:12:02.129" endtime="20220817 15:12:02.130"></status>
|
|
</kw>
|
|
<kw name="Evaluate" library="BuiltIn">
|
|
<doc>Evaluates the given expression in Python and returns the results.</doc>
|
|
<arguments>
|
|
<arg>random.choice(${customerList})</arg>
|
|
<arg>random</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${CustomerInfo}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:02.131" level="INFO">${CustomerInfo} = {'id': '135', 'cardNo': None, 'name': '小盆友', 'mobile': None, 'defaultPaymentMethod': 1, 'bankName': None, 'bankBranchName': None, 'bankCardNo': None, 'userId': '704315180259086336', 'customerSettleTyp...</msg>
|
|
<status status="PASS" starttime="20220817 15:12:02.130" endtime="20220817 15:12:02.131"></status>
|
|
</kw>
|
|
<kw name="Get From Dictionary" library="Collections">
|
|
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
|
|
<arguments>
|
|
<arg>${CustomerInfo}</arg>
|
|
<arg>name</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${name}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:02.132" level="INFO">${name} = 小盆友</msg>
|
|
<status status="PASS" starttime="20220817 15:12:02.131" endtime="20220817 15:12:02.132"></status>
|
|
</kw>
|
|
<kw name="Get From Dictionary" library="Collections">
|
|
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
|
|
<arguments>
|
|
<arg>${CustomerInfo}</arg>
|
|
<arg>id</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${CustomerId}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:02.132" level="INFO">${CustomerId} = 135</msg>
|
|
<status status="PASS" starttime="20220817 15:12:02.132" endtime="20220817 15:12:02.132"></status>
|
|
</kw>
|
|
<kw name="Get From Dictionary" library="Collections">
|
|
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
|
|
<arguments>
|
|
<arg>${CustomerInfo}</arg>
|
|
<arg>customerSettleType</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${customerSettleType}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:02.133" level="INFO">${customerSettleType} = 1</msg>
|
|
<status status="PASS" starttime="20220817 15:12:02.132" endtime="20220817 15:12:02.133"></status>
|
|
</kw>
|
|
<kw name="Set Global Variable" library="BuiltIn">
|
|
<doc>Makes a variable available globally in all tests and suites.</doc>
|
|
<arguments>
|
|
<arg>${name}</arg>
|
|
</arguments>
|
|
<msg timestamp="20220817 15:12:02.133" level="INFO">${name} = 小盆友</msg>
|
|
<status status="PASS" starttime="20220817 15:12:02.133" endtime="20220817 15:12:02.133"></status>
|
|
</kw>
|
|
<kw name="Set Global Variable" library="BuiltIn">
|
|
<doc>Makes a variable available globally in all tests and suites.</doc>
|
|
<arguments>
|
|
<arg>${CustomerId}</arg>
|
|
</arguments>
|
|
<msg timestamp="20220817 15:12:02.134" level="INFO">${CustomerId} = 135</msg>
|
|
<status status="PASS" starttime="20220817 15:12:02.134" endtime="20220817 15:12:02.134"></status>
|
|
</kw>
|
|
<kw name="Set Global Variable" library="BuiltIn">
|
|
<doc>Makes a variable available globally in all tests and suites.</doc>
|
|
<arguments>
|
|
<arg>${customerSettleType}</arg>
|
|
</arguments>
|
|
<msg timestamp="20220817 15:12:02.134" level="INFO">${customerSettleType} = 1</msg>
|
|
<status status="PASS" starttime="20220817 15:12:02.134" endtime="20220817 15:12:02.135"></status>
|
|
</kw>
|
|
<kw name="Create Session" library="RequestsLibrary">
|
|
<doc>Create Session: create a HTTP session to a server</doc>
|
|
<arguments>
|
|
<arg>ztbf</arg>
|
|
<arg>${ztbClient}</arg>
|
|
<arg>${client_header}</arg>
|
|
</arguments>
|
|
<msg timestamp="20220817 15:12:02.135" level="INFO">Creating Session using : alias=ztbf, url=https://api-client-ztb-test.qniao.cn, headers={'Content-Type': 'application/json', 'Authorization': 'QNT iHP4V/g6O5DXHixyNrf7tpO/qkx7j1gsqvbpL1KZGKCI5sLXsbsYUBhm9ec3GSn4S+LPw1rEn/lfuq9hvHeHHw==', 'X-APP-ID': '503258978847953926', 'X-FACTORY-ID': '738816441691803648'}, cookies={}, auth=None, timeout=None, proxies=None, verify=False, debug=0 </msg>
|
|
<status status="PASS" starttime="20220817 15:12:02.135" endtime="20220817 15:12:02.135"></status>
|
|
</kw>
|
|
<kw name="Get On Session" library="RequestsLibrary">
|
|
<doc>Sends a GET request on a previously created HTTP Session.</doc>
|
|
<arguments>
|
|
<arg>ztbf</arg>
|
|
<arg>ztb-factory/factory/get/customer-list</arg>
|
|
<arg>params=name=&pageNum=1&pageSize=1500</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${reps}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:02.192" level="INFO">GET Request : url=https://api-client-ztb-test.qniao.cn/ztb-factory/factory/get/customer-list?name=&pageNum=1&pageSize=1500
|
|
path_url=/ztb-factory/factory/get/customer-list?name=&pageNum=1&pageSize=1500
|
|
headers={'User-Agent': 'python-requests/2.26.0', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'QNT iHP4V/g6O5DXHixyNrf7tpO/qkx7j1gsqvbpL1KZGKCI5sLXsbsYUBhm9ec3GSn4S+LPw1rEn/lfuq9hvHeHHw==', 'X-APP-ID': '503258978847953926', 'X-FACTORY-ID': '738816441691803648'}
|
|
body=None
|
|
</msg>
|
|
<msg timestamp="20220817 15:12:02.192" level="INFO">GET Response : url=https://api-client-ztb-test.qniao.cn/ztb-factory/factory/get/customer-list?name=&pageNum=1&pageSize=1500
|
|
status=200, reason=
|
|
headers={'Server': 'nginx/1.16.1', 'Date': 'Wed, 17 Aug 2022 07:12:02 GMT', 'Content-Type': 'application/json', 'Transfer-Encoding': 'chunked', 'Connection': 'keep-alive', 'Vary': 'Origin, Access-Control-Request-Method, Access-Control-Request-Headers'}
|
|
body={"code":0,"message":"successful","data":{"records":[{"id":"136","cardNo":"2836579628","name":"小可爱","mobile":null,"defaultPaymentMethod":2,"bankName":null,"bankBranchName":null,"bankCardNo":null,"userId":"659450159519895552","customerSettleType":1,"bankOwnerName":null},{"id":"135","cardNo":null,"name":"小盆友","mobile":null,"defaultPaymentMethod":1,"bankName":null,"bankBranchName":null,"bankCardNo":null,"userId":"704315180259086336","customerSettleType":1,"bankOwnerName":null},{"id":"133","cardNo":"3391895980","name":"芦雪庵","mobile":null,"defaultPaymentMethod":1,"bankName":null,"bankBranchName":null,"bankCardNo":null,"userId":"659450159519895552","customerSettleType":1,"bankOwnerName":null},{"id":"132","cardNo":null,"name":"破落户","mobile":"16666666666","defaultPaymentMethod":2,"bankName":null,"bankBranchName":null,"bankCardNo":null,"userId":null,"customerSettleType":1,"bankOwnerName":null},{"id":"131","cardNo":null,"name":"宝姐姐","mobile":null,"defaultPaymentMethod":2,"bankName":null,"bankBranchName":null,"bankCardNo":null,"userId":null,"customerSettleType":1,"bankOwnerName":null},{"id":"130","cardNo":null,"name":"妙玉","mobile":null,"defaultPaymentMethod":1,"bankName":null,"bankBranchName":null,"bankCardNo":null,"userId":"636564967314821120","customerSettleType":1,"bankOwnerName":null},{"id":"129","cardNo":null,"name":"省亲","mobile":null,"defaultPaymentMethod":1,"bankName":null,"bankBranchName":null,"bankCardNo":null,"userId":null,"customerSettleType":1,"bankOwnerName":null},{"id":"128","cardNo":null,"name":"杏花在望","mobile":null,"defaultPaymentMethod":1,"bankName":null,"bankBranchName":null,"bankCardNo":null,"userId":null,"customerSettleType":1,"bankOwnerName":null},{"id":"127","cardNo":null,"name":"泻玉","mobile":null,"defaultPaymentMethod":2,"bankName":null,"bankBranchName":null,"bankCardNo":null,"userId":null,"customerSettleType":1,"bankOwnerName":null},{"id":"126","cardNo":null,"name":"哈哈","mobile":"18888888888/020-88888888","defaultPaymentMethod":1,"bankName":null,"bankBranchName":null,"bankCardNo":null,"userId":null,"customerSettleType":1,"bankOwnerName":null},{"id":"125","cardNo":null,"name":"小小","mobile":"18888888888","defaultPaymentMethod":1,"bankName":null,"bankBranchName":null,"bankCardNo":null,"userId":"659450159519895552","customerSettleType":1,"bankOwnerName":null}],"total":11,"size":1500,"current":1,"pages":1}}
|
|
</msg>
|
|
<msg timestamp="20220817 15:12:02.193" level="INFO">${reps} = <Response [200]></msg>
|
|
<status status="PASS" starttime="20220817 15:12:02.136" endtime="20220817 15:12:02.193"></status>
|
|
</kw>
|
|
<kw name="Get From Dictionary" library="Collections">
|
|
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
|
|
<arguments>
|
|
<arg>${reps.json()['data']}</arg>
|
|
<arg>records</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${ReceiptCustomerList}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:02.194" level="INFO">${ReceiptCustomerList} = [{'id': '136', 'cardNo': '2836579628', 'name': '小可爱', 'mobile': None, 'defaultPaymentMethod': 2, 'bankName': None, 'bankBranchName': None, 'bankCardNo': None, 'userId': '659450159519895552', 'customer...</msg>
|
|
<status status="PASS" starttime="20220817 15:12:02.193" endtime="20220817 15:12:02.194"></status>
|
|
</kw>
|
|
<kw name="${ReceiptCustomerInfo} IN [ @{ReceiptCustomerList} ]" type="for">
|
|
<kw name="${ReceiptCustomerInfo} = {'id': '136', 'cardNo': '2836579628', 'name': '小可爱', 'mobile': None, 'defaultPaymentMethod': 2, 'bankName': None, 'bankBranchName': None, 'bankCardNo': None, 'userId': '659450159519895552', 'customerS..." type="foritem">
|
|
<kw name="Get From Dictionary" library="Collections">
|
|
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
|
|
<arguments>
|
|
<arg>${ReceiptCustomerInfo}</arg>
|
|
<arg>name</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${ReceiptName}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:02.195" level="INFO">${ReceiptName} = 小可爱</msg>
|
|
<status status="PASS" starttime="20220817 15:12:02.195" endtime="20220817 15:12:02.195"></status>
|
|
</kw>
|
|
<kw name="Get From Dictionary" library="Collections">
|
|
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
|
|
<arguments>
|
|
<arg>${ReceiptCustomerInfo}</arg>
|
|
<arg>cardNo</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${ReceiptcardNo}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:02.196" level="INFO">${ReceiptcardNo} = 2836579628</msg>
|
|
<status status="PASS" starttime="20220817 15:12:02.195" endtime="20220817 15:12:02.196"></status>
|
|
</kw>
|
|
<kw name="Get From Dictionary" library="Collections">
|
|
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
|
|
<arguments>
|
|
<arg>${ReceiptCustomerInfo}</arg>
|
|
<arg>id</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${ReceiptCustomerId}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:02.196" level="INFO">${ReceiptCustomerId} = 136</msg>
|
|
<status status="PASS" starttime="20220817 15:12:02.196" endtime="20220817 15:12:02.196"></status>
|
|
</kw>
|
|
<kw name="Exit For Loop If" library="BuiltIn">
|
|
<doc>Stops executing the enclosing for loop if the ``condition`` is true.</doc>
|
|
<arguments>
|
|
<arg>'${ReceiptCustomerId}'=='136'</arg>
|
|
</arguments>
|
|
<msg timestamp="20220817 15:12:02.197" level="INFO">Exiting for loop altogether.</msg>
|
|
<status status="PASS" starttime="20220817 15:12:02.196" endtime="20220817 15:12:02.197"></status>
|
|
</kw>
|
|
<status status="PASS" starttime="20220817 15:12:02.195" endtime="20220817 15:12:02.197"></status>
|
|
</kw>
|
|
<status status="PASS" starttime="20220817 15:12:02.194" endtime="20220817 15:12:02.197"></status>
|
|
</kw>
|
|
<kw name="Set Global Variable" library="BuiltIn">
|
|
<doc>Makes a variable available globally in all tests and suites.</doc>
|
|
<arguments>
|
|
<arg>${ReceiptName}</arg>
|
|
</arguments>
|
|
<msg timestamp="20220817 15:12:02.198" level="INFO">${ReceiptName} = 小可爱</msg>
|
|
<status status="PASS" starttime="20220817 15:12:02.197" endtime="20220817 15:12:02.198"></status>
|
|
</kw>
|
|
<kw name="Set Global Variable" library="BuiltIn">
|
|
<doc>Makes a variable available globally in all tests and suites.</doc>
|
|
<arguments>
|
|
<arg>${ReceiptcardNo}</arg>
|
|
</arguments>
|
|
<msg timestamp="20220817 15:12:02.198" level="INFO">${ReceiptcardNo} = 2836579628</msg>
|
|
<status status="PASS" starttime="20220817 15:12:02.198" endtime="20220817 15:12:02.199"></status>
|
|
</kw>
|
|
<kw name="Set Global Variable" library="BuiltIn">
|
|
<doc>Makes a variable available globally in all tests and suites.</doc>
|
|
<arguments>
|
|
<arg>${ReceiptCustomerId}</arg>
|
|
</arguments>
|
|
<msg timestamp="20220817 15:12:02.199" level="INFO">${ReceiptCustomerId} = 136</msg>
|
|
<status status="PASS" starttime="20220817 15:12:02.199" endtime="20220817 15:12:02.199"></status>
|
|
</kw>
|
|
<kw name="Create Session" library="RequestsLibrary">
|
|
<doc>Create Session: create a HTTP session to a server</doc>
|
|
<arguments>
|
|
<arg>ztbf</arg>
|
|
<arg>${ztbClient}</arg>
|
|
<arg>${client_header}</arg>
|
|
</arguments>
|
|
<msg timestamp="20220817 15:12:02.202" level="INFO">Creating Session using : alias=ztbf, url=https://api-client-ztb-test.qniao.cn, headers={'Content-Type': 'application/json', 'Authorization': 'QNT iHP4V/g6O5DXHixyNrf7tpO/qkx7j1gsqvbpL1KZGKCI5sLXsbsYUBhm9ec3GSn4S+LPw1rEn/lfuq9hvHeHHw==', 'X-APP-ID': '503258978847953926', 'X-FACTORY-ID': '738816441691803648'}, cookies={}, auth=None, timeout=None, proxies=None, verify=False, debug=0 </msg>
|
|
<status status="PASS" starttime="20220817 15:12:02.200" endtime="20220817 15:12:02.202"></status>
|
|
</kw>
|
|
<kw name="Get On Session" library="RequestsLibrary">
|
|
<doc>Sends a GET request on a previously created HTTP Session.</doc>
|
|
<arguments>
|
|
<arg>ztbf</arg>
|
|
<arg>ztb-factory/factory/get/customer-list</arg>
|
|
<arg>params=name=&pageNum=1&pageSize=1500</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${reps}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:02.249" level="INFO">GET Request : url=https://api-client-ztb-test.qniao.cn/ztb-factory/factory/get/customer-list?name=&pageNum=1&pageSize=1500
|
|
path_url=/ztb-factory/factory/get/customer-list?name=&pageNum=1&pageSize=1500
|
|
headers={'User-Agent': 'python-requests/2.26.0', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'QNT iHP4V/g6O5DXHixyNrf7tpO/qkx7j1gsqvbpL1KZGKCI5sLXsbsYUBhm9ec3GSn4S+LPw1rEn/lfuq9hvHeHHw==', 'X-APP-ID': '503258978847953926', 'X-FACTORY-ID': '738816441691803648'}
|
|
body=None
|
|
</msg>
|
|
<msg timestamp="20220817 15:12:02.249" level="INFO">GET Response : url=https://api-client-ztb-test.qniao.cn/ztb-factory/factory/get/customer-list?name=&pageNum=1&pageSize=1500
|
|
status=200, reason=
|
|
headers={'Server': 'nginx/1.16.1', 'Date': 'Wed, 17 Aug 2022 07:12:02 GMT', 'Content-Type': 'application/json', 'Transfer-Encoding': 'chunked', 'Connection': 'keep-alive', 'Vary': 'Origin, Access-Control-Request-Method, Access-Control-Request-Headers'}
|
|
body={"code":0,"message":"successful","data":{"records":[{"id":"136","cardNo":"2836579628","name":"小可爱","mobile":null,"defaultPaymentMethod":2,"bankName":null,"bankBranchName":null,"bankCardNo":null,"userId":"659450159519895552","customerSettleType":1,"bankOwnerName":null},{"id":"135","cardNo":null,"name":"小盆友","mobile":null,"defaultPaymentMethod":1,"bankName":null,"bankBranchName":null,"bankCardNo":null,"userId":"704315180259086336","customerSettleType":1,"bankOwnerName":null},{"id":"133","cardNo":"3391895980","name":"芦雪庵","mobile":null,"defaultPaymentMethod":1,"bankName":null,"bankBranchName":null,"bankCardNo":null,"userId":"659450159519895552","customerSettleType":1,"bankOwnerName":null},{"id":"132","cardNo":null,"name":"破落户","mobile":"16666666666","defaultPaymentMethod":2,"bankName":null,"bankBranchName":null,"bankCardNo":null,"userId":null,"customerSettleType":1,"bankOwnerName":null},{"id":"131","cardNo":null,"name":"宝姐姐","mobile":null,"defaultPaymentMethod":2,"bankName":null,"bankBranchName":null,"bankCardNo":null,"userId":null,"customerSettleType":1,"bankOwnerName":null},{"id":"130","cardNo":null,"name":"妙玉","mobile":null,"defaultPaymentMethod":1,"bankName":null,"bankBranchName":null,"bankCardNo":null,"userId":"636564967314821120","customerSettleType":1,"bankOwnerName":null},{"id":"129","cardNo":null,"name":"省亲","mobile":null,"defaultPaymentMethod":1,"bankName":null,"bankBranchName":null,"bankCardNo":null,"userId":null,"customerSettleType":1,"bankOwnerName":null},{"id":"128","cardNo":null,"name":"杏花在望","mobile":null,"defaultPaymentMethod":1,"bankName":null,"bankBranchName":null,"bankCardNo":null,"userId":null,"customerSettleType":1,"bankOwnerName":null},{"id":"127","cardNo":null,"name":"泻玉","mobile":null,"defaultPaymentMethod":2,"bankName":null,"bankBranchName":null,"bankCardNo":null,"userId":null,"customerSettleType":1,"bankOwnerName":null},{"id":"126","cardNo":null,"name":"哈哈","mobile":"18888888888/020-88888888","defaultPaymentMethod":1,"bankName":null,"bankBranchName":null,"bankCardNo":null,"userId":null,"customerSettleType":1,"bankOwnerName":null},{"id":"125","cardNo":null,"name":"小小","mobile":"18888888888","defaultPaymentMethod":1,"bankName":null,"bankBranchName":null,"bankCardNo":null,"userId":"659450159519895552","customerSettleType":1,"bankOwnerName":null}],"total":11,"size":1500,"current":1,"pages":1}}
|
|
</msg>
|
|
<msg timestamp="20220817 15:12:02.249" level="INFO">${reps} = <Response [200]></msg>
|
|
<status status="PASS" starttime="20220817 15:12:02.202" endtime="20220817 15:12:02.249"></status>
|
|
</kw>
|
|
<kw name="Get From Dictionary" library="Collections">
|
|
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
|
|
<arguments>
|
|
<arg>${reps.json()['data']}</arg>
|
|
<arg>records</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${customerList}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:02.250" level="INFO">${customerList} = [{'id': '136', 'cardNo': '2836579628', 'name': '小可爱', 'mobile': None, 'defaultPaymentMethod': 2, 'bankName': None, 'bankBranchName': None, 'bankCardNo': None, 'userId': '659450159519895552', 'customer...</msg>
|
|
<status status="PASS" starttime="20220817 15:12:02.250" endtime="20220817 15:12:02.250"></status>
|
|
</kw>
|
|
<kw name="${CustomerInfo} IN [ @{customerList} ]" type="for">
|
|
<kw name="${CustomerInfo} = {'id': '136', 'cardNo': '2836579628', 'name': '小可爱', 'mobile': None, 'defaultPaymentMethod': 2, 'bankName': None, 'bankBranchName': None, 'bankCardNo': None, 'userId': '659450159519895552', 'customerS..." type="foritem">
|
|
<kw name="Get From Dictionary" library="Collections">
|
|
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
|
|
<arguments>
|
|
<arg>${CustomerInfo}</arg>
|
|
<arg>name</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${Offsitename}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:02.251" level="INFO">${Offsitename} = 小可爱</msg>
|
|
<status status="PASS" starttime="20220817 15:12:02.251" endtime="20220817 15:12:02.251"></status>
|
|
</kw>
|
|
<kw name="Get From Dictionary" library="Collections">
|
|
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
|
|
<arguments>
|
|
<arg>${CustomerInfo}</arg>
|
|
<arg>cardNo</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${OffsitecardNo}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:02.251" level="INFO">${OffsitecardNo} = 2836579628</msg>
|
|
<status status="PASS" starttime="20220817 15:12:02.251" endtime="20220817 15:12:02.251"></status>
|
|
</kw>
|
|
<kw name="Get From Dictionary" library="Collections">
|
|
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
|
|
<arguments>
|
|
<arg>${CustomerInfo}</arg>
|
|
<arg>id</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${OffsiteCustomerId}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:02.252" level="INFO">${OffsiteCustomerId} = 136</msg>
|
|
<status status="PASS" starttime="20220817 15:12:02.252" endtime="20220817 15:12:02.252"></status>
|
|
</kw>
|
|
<kw name="Exit For Loop If" library="BuiltIn">
|
|
<doc>Stops executing the enclosing for loop if the ``condition`` is true.</doc>
|
|
<arguments>
|
|
<arg>'${OffsiteCustomerId}'=='133'</arg>
|
|
</arguments>
|
|
<status status="PASS" starttime="20220817 15:12:02.252" endtime="20220817 15:12:02.252"></status>
|
|
</kw>
|
|
<status status="PASS" starttime="20220817 15:12:02.251" endtime="20220817 15:12:02.252"></status>
|
|
</kw>
|
|
<kw name="${CustomerInfo} = {'id': '135', 'cardNo': None, 'name': '小盆友', 'mobile': None, 'defaultPaymentMethod': 1, 'bankName': None, 'bankBranchName': None, 'bankCardNo': None, 'userId': '704315180259086336', 'customerSettleTyp..." type="foritem">
|
|
<kw name="Get From Dictionary" library="Collections">
|
|
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
|
|
<arguments>
|
|
<arg>${CustomerInfo}</arg>
|
|
<arg>name</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${Offsitename}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:02.253" level="INFO">${Offsitename} = 小盆友</msg>
|
|
<status status="PASS" starttime="20220817 15:12:02.253" endtime="20220817 15:12:02.253"></status>
|
|
</kw>
|
|
<kw name="Get From Dictionary" library="Collections">
|
|
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
|
|
<arguments>
|
|
<arg>${CustomerInfo}</arg>
|
|
<arg>cardNo</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${OffsitecardNo}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:02.254" level="INFO">${OffsitecardNo} = None</msg>
|
|
<status status="PASS" starttime="20220817 15:12:02.253" endtime="20220817 15:12:02.254"></status>
|
|
</kw>
|
|
<kw name="Get From Dictionary" library="Collections">
|
|
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
|
|
<arguments>
|
|
<arg>${CustomerInfo}</arg>
|
|
<arg>id</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${OffsiteCustomerId}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:02.254" level="INFO">${OffsiteCustomerId} = 135</msg>
|
|
<status status="PASS" starttime="20220817 15:12:02.254" endtime="20220817 15:12:02.254"></status>
|
|
</kw>
|
|
<kw name="Exit For Loop If" library="BuiltIn">
|
|
<doc>Stops executing the enclosing for loop if the ``condition`` is true.</doc>
|
|
<arguments>
|
|
<arg>'${OffsiteCustomerId}'=='133'</arg>
|
|
</arguments>
|
|
<status status="PASS" starttime="20220817 15:12:02.254" endtime="20220817 15:12:02.255"></status>
|
|
</kw>
|
|
<status status="PASS" starttime="20220817 15:12:02.253" endtime="20220817 15:12:02.255"></status>
|
|
</kw>
|
|
<kw name="${CustomerInfo} = {'id': '133', 'cardNo': '3391895980', 'name': '芦雪庵', 'mobile': None, 'defaultPaymentMethod': 1, 'bankName': None, 'bankBranchName': None, 'bankCardNo': None, 'userId': '659450159519895552', 'customerS..." type="foritem">
|
|
<kw name="Get From Dictionary" library="Collections">
|
|
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
|
|
<arguments>
|
|
<arg>${CustomerInfo}</arg>
|
|
<arg>name</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${Offsitename}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:02.255" level="INFO">${Offsitename} = 芦雪庵</msg>
|
|
<status status="PASS" starttime="20220817 15:12:02.255" endtime="20220817 15:12:02.255"></status>
|
|
</kw>
|
|
<kw name="Get From Dictionary" library="Collections">
|
|
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
|
|
<arguments>
|
|
<arg>${CustomerInfo}</arg>
|
|
<arg>cardNo</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${OffsitecardNo}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:02.256" level="INFO">${OffsitecardNo} = 3391895980</msg>
|
|
<status status="PASS" starttime="20220817 15:12:02.256" endtime="20220817 15:12:02.256"></status>
|
|
</kw>
|
|
<kw name="Get From Dictionary" library="Collections">
|
|
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
|
|
<arguments>
|
|
<arg>${CustomerInfo}</arg>
|
|
<arg>id</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${OffsiteCustomerId}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:02.256" level="INFO">${OffsiteCustomerId} = 133</msg>
|
|
<status status="PASS" starttime="20220817 15:12:02.256" endtime="20220817 15:12:02.256"></status>
|
|
</kw>
|
|
<kw name="Exit For Loop If" library="BuiltIn">
|
|
<doc>Stops executing the enclosing for loop if the ``condition`` is true.</doc>
|
|
<arguments>
|
|
<arg>'${OffsiteCustomerId}'=='133'</arg>
|
|
</arguments>
|
|
<msg timestamp="20220817 15:12:02.257" level="INFO">Exiting for loop altogether.</msg>
|
|
<status status="PASS" starttime="20220817 15:12:02.256" endtime="20220817 15:12:02.257"></status>
|
|
</kw>
|
|
<status status="PASS" starttime="20220817 15:12:02.255" endtime="20220817 15:12:02.257"></status>
|
|
</kw>
|
|
<status status="PASS" starttime="20220817 15:12:02.250" endtime="20220817 15:12:02.257"></status>
|
|
</kw>
|
|
<kw name="Set Global Variable" library="BuiltIn">
|
|
<doc>Makes a variable available globally in all tests and suites.</doc>
|
|
<arguments>
|
|
<arg>${Offsitename}</arg>
|
|
</arguments>
|
|
<msg timestamp="20220817 15:12:02.257" level="INFO">${Offsitename} = 芦雪庵</msg>
|
|
<status status="PASS" starttime="20220817 15:12:02.257" endtime="20220817 15:12:02.257"></status>
|
|
</kw>
|
|
<kw name="Set Global Variable" library="BuiltIn">
|
|
<doc>Makes a variable available globally in all tests and suites.</doc>
|
|
<arguments>
|
|
<arg>${OffsitecardNo}</arg>
|
|
</arguments>
|
|
<msg timestamp="20220817 15:12:02.258" level="INFO">${OffsitecardNo} = 3391895980</msg>
|
|
<status status="PASS" starttime="20220817 15:12:02.258" endtime="20220817 15:12:02.258"></status>
|
|
</kw>
|
|
<kw name="Set Global Variable" library="BuiltIn">
|
|
<doc>Makes a variable available globally in all tests and suites.</doc>
|
|
<arguments>
|
|
<arg>${OffsiteCustomerId}</arg>
|
|
</arguments>
|
|
<msg timestamp="20220817 15:12:02.258" level="INFO">${OffsiteCustomerId} = 133</msg>
|
|
<status status="PASS" starttime="20220817 15:12:02.258" endtime="20220817 15:12:02.259"></status>
|
|
</kw>
|
|
<kw name="Get On Session" library="RequestsLibrary">
|
|
<doc>Sends a GET request on a previously created HTTP Session.</doc>
|
|
<arguments>
|
|
<arg>ztbf</arg>
|
|
<arg>ztb-factory/factorydeliverychannel/get/self-factory-delivery-channel-list</arg>
|
|
<arg>params=pageNum=1&pageSize=20</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${reps}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:02.290" level="INFO">GET Request : url=https://api-client-ztb-test.qniao.cn/ztb-factory/factorydeliverychannel/get/self-factory-delivery-channel-list?pageNum=1&pageSize=20
|
|
path_url=/ztb-factory/factorydeliverychannel/get/self-factory-delivery-channel-list?pageNum=1&pageSize=20
|
|
headers={'User-Agent': 'python-requests/2.26.0', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'QNT iHP4V/g6O5DXHixyNrf7tpO/qkx7j1gsqvbpL1KZGKCI5sLXsbsYUBhm9ec3GSn4S+LPw1rEn/lfuq9hvHeHHw==', 'X-APP-ID': '503258978847953926', 'X-FACTORY-ID': '738816441691803648'}
|
|
body=None
|
|
</msg>
|
|
<msg timestamp="20220817 15:12:02.291" level="INFO">GET Response : url=https://api-client-ztb-test.qniao.cn/ztb-factory/factorydeliverychannel/get/self-factory-delivery-channel-list?pageNum=1&pageSize=20
|
|
status=200, reason=
|
|
headers={'Server': 'nginx/1.16.1', 'Date': 'Wed, 17 Aug 2022 07:12:02 GMT', 'Content-Type': 'application/json', 'Transfer-Encoding': 'chunked', 'Connection': 'keep-alive', 'Vary': 'Origin, Access-Control-Request-Method, Access-Control-Request-Headers'}
|
|
body={"code":0,"message":"successful","data":{"records":[{"id":"741366441508474880","factoryId":"738816441691803648","type":1,"name":"有望","contacts":null,"mobile":null,"address":null,"roleId":null,"roleName":null},{"id":"741366333685501952","factoryId":"738816441691803648","type":1,"name":"宝珠","contacts":null,"mobile":null,"address":null,"roleId":null,"roleName":null},{"id":"741366279692226560","factoryId":"738816441691803648","type":1,"name":"胧月大魔王","contacts":null,"mobile":null,"address":null,"roleId":null,"roleName":null},{"id":"741366230186856448","factoryId":"738816441691803648","type":1,"name":"卫临","contacts":null,"mobile":null,"address":null,"roleId":null,"roleName":null},{"id":"741366180912173056","factoryId":"738816441691803648","type":1,"name":"实初哥哥","contacts":null,"mobile":null,"address":null,"roleId":null,"roleName":null},{"id":"741366148305653760","factoryId":"738816441691803648","type":1,"name":"紫禁城","contacts":null,"mobile":null,"address":null,"roleId":null,"roleName":null},{"id":"741366102373830656","factoryId":"738816441691803648","type":1,"name":"嬛嬛一袅楚宫腰","contacts":null,"mobile":null,"address":null,"roleId":null,"roleName":null},{"id":"741366047751409664","factoryId":"738816441691803648","type":1,"name":"流珠姑娘","contacts":null,"mobile":null,"address":null,"roleId":null,"roleName":null},{"id":"741365978201460736","factoryId":"738816441691803648","type":1,"name":"颦儿","contacts":null,"mobile":null,"address":null,"roleId":null,"roleName":null},{"id":"738827790039781376","factoryId":"738816441691803648","type":1,"name":"测试1号","contacts":null,"mobile":null,"address":null,"roleId":null,"roleName":null}],"total":10,"size":20,"current":1,"pages":1}}
|
|
</msg>
|
|
<msg timestamp="20220817 15:12:02.291" level="INFO">${reps} = <Response [200]></msg>
|
|
<status status="PASS" starttime="20220817 15:12:02.259" endtime="20220817 15:12:02.291"></status>
|
|
</kw>
|
|
<kw name="Get From Dictionary" library="Collections">
|
|
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
|
|
<arguments>
|
|
<arg>${reps.json()['data']}</arg>
|
|
<arg>records</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${ChannelList}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:02.292" level="INFO">${ChannelList} = [{'id': '741366441508474880', 'factoryId': '738816441691803648', 'type': 1, 'name': '有望', 'contacts': None, 'mobile': None, 'address': None, 'roleId': None, 'roleName': None}, {'id': '7413663336855019...</msg>
|
|
<status status="PASS" starttime="20220817 15:12:02.291" endtime="20220817 15:12:02.292"></status>
|
|
</kw>
|
|
<kw name="Evaluate" library="BuiltIn">
|
|
<doc>Evaluates the given expression in Python and returns the results.</doc>
|
|
<arguments>
|
|
<arg>random.choice(${ChannelList})</arg>
|
|
<arg>random</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${ChannelInfo}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:02.293" level="INFO">${ChannelInfo} = {'id': '741365978201460736', 'factoryId': '738816441691803648', 'type': 1, 'name': '颦儿', 'contacts': None, 'mobile': None, 'address': None, 'roleId': None, 'roleName': None}</msg>
|
|
<status status="PASS" starttime="20220817 15:12:02.292" endtime="20220817 15:12:02.293"></status>
|
|
</kw>
|
|
<kw name="Get From Dictionary" library="Collections">
|
|
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
|
|
<arguments>
|
|
<arg>${ChannelInfo}</arg>
|
|
<arg>id</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${ChannelId}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:02.293" level="INFO">${ChannelId} = 741365978201460736</msg>
|
|
<status status="PASS" starttime="20220817 15:12:02.293" endtime="20220817 15:12:02.293"></status>
|
|
</kw>
|
|
<kw name="Get From Dictionary" library="Collections">
|
|
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
|
|
<arguments>
|
|
<arg>${ChannelInfo}</arg>
|
|
<arg>factoryId</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${factoryId}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:02.294" level="INFO">${factoryId} = 738816441691803648</msg>
|
|
<status status="PASS" starttime="20220817 15:12:02.294" endtime="20220817 15:12:02.294"></status>
|
|
</kw>
|
|
<kw name="Get From Dictionary" library="Collections">
|
|
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
|
|
<arguments>
|
|
<arg>${ChannelInfo}</arg>
|
|
<arg>name</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${ChannelName}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:02.294" level="INFO">${ChannelName} = 颦儿</msg>
|
|
<status status="PASS" starttime="20220817 15:12:02.294" endtime="20220817 15:12:02.294"></status>
|
|
</kw>
|
|
<kw name="Set Global Variable" library="BuiltIn">
|
|
<doc>Makes a variable available globally in all tests and suites.</doc>
|
|
<arguments>
|
|
<arg>${factoryId}</arg>
|
|
</arguments>
|
|
<msg timestamp="20220817 15:12:02.295" level="INFO">${factoryId} = 738816441691803648</msg>
|
|
<status status="PASS" starttime="20220817 15:12:02.295" endtime="20220817 15:12:02.295"></status>
|
|
</kw>
|
|
<kw name="Set Global Variable" library="BuiltIn">
|
|
<doc>Makes a variable available globally in all tests and suites.</doc>
|
|
<arguments>
|
|
<arg>${ChannelId}</arg>
|
|
</arguments>
|
|
<msg timestamp="20220817 15:12:02.295" level="INFO">${ChannelId} = 741365978201460736</msg>
|
|
<status status="PASS" starttime="20220817 15:12:02.295" endtime="20220817 15:12:02.295"></status>
|
|
</kw>
|
|
<kw name="Set Global Variable" library="BuiltIn">
|
|
<doc>Makes a variable available globally in all tests and suites.</doc>
|
|
<arguments>
|
|
<arg>${ChannelName}</arg>
|
|
</arguments>
|
|
<msg timestamp="20220817 15:12:02.296" level="INFO">${ChannelName} = 颦儿</msg>
|
|
<status status="PASS" starttime="20220817 15:12:02.296" endtime="20220817 15:12:02.296"></status>
|
|
</kw>
|
|
<kw name="Get On Session" library="RequestsLibrary">
|
|
<doc>Sends a GET request on a previously created HTTP Session.</doc>
|
|
<arguments>
|
|
<arg>ztbf</arg>
|
|
<arg>recycle-user-center/get/self-department-member-list</arg>
|
|
<arg>params=enterpriseId=null&isPassFromBackstage=1</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${reps}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:02.336" level="INFO">GET Request : url=https://api-client-ztb-test.qniao.cn/recycle-user-center/get/self-department-member-list?enterpriseId=null&isPassFromBackstage=1
|
|
path_url=/recycle-user-center/get/self-department-member-list?enterpriseId=null&isPassFromBackstage=1
|
|
headers={'User-Agent': 'python-requests/2.26.0', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'QNT iHP4V/g6O5DXHixyNrf7tpO/qkx7j1gsqvbpL1KZGKCI5sLXsbsYUBhm9ec3GSn4S+LPw1rEn/lfuq9hvHeHHw==', 'X-APP-ID': '503258978847953926', 'X-FACTORY-ID': '738816441691803648'}
|
|
body=None
|
|
</msg>
|
|
<msg timestamp="20220817 15:12:02.336" level="INFO">GET Response : url=https://api-client-ztb-test.qniao.cn/recycle-user-center/get/self-department-member-list?enterpriseId=null&isPassFromBackstage=1
|
|
status=200, reason=
|
|
headers={'Server': 'nginx/1.16.1', 'Date': 'Wed, 17 Aug 2022 07:12:02 GMT', 'Content-Type': 'application/json;charset=UTF-8', 'Transfer-Encoding': 'chunked', 'Connection': 'keep-alive'}
|
|
body={"code":0,"message":"successful","data":{"records":[{"enterpriseMemberId":"744286805565771776","enterpriseMemberName":"郑子荣","mobile":"13609002084","enterpriseDepartmentId":"738816442153177088","enterpriseDepartmentName":"工厂版打包站","createTime":"2022-07-12 17:31:08","joinAt":"2022-07-12 17:31:08","updateTime":"2022-07-12 17:31:08","status":0,"enterpriseRoleNames":"管理员","enterpriseRoleIds":"738816442975260672","cardId":null,"cardNo":null},{"enterpriseMemberId":"740613817616175104","enterpriseMemberName":"hinzai ","mobile":"13168550964","enterpriseDepartmentId":"738816442153177088","enterpriseDepartmentName":"工厂版打包站","createTime":"2022-07-02 14:16:00","joinAt":"2022-07-11 00:00:00","updateTime":"2022-07-11 11:56:48","status":0,"enterpriseRoleNames":"分拣工,厂长,财务,管理员","enterpriseRoleIds":"738816442564218880,738816442270617600,738816442924929024,738816442975260672","cardId":"528","cardNo":"3391285068"},{"enterpriseMemberId":"738823017987182592","enterpriseMemberName":"南瓜","mobile":"15014242835","enterpriseDepartmentId":"738816442153177088","enterpriseDepartmentName":"工厂版打包站","createTime":"2022-06-27 15:40:00","joinAt":"2022-06-27 00:00:00","updateTime":"2022-06-27 16:32:26","status":0,"enterpriseRoleNames":"管理员","enterpriseRoleIds":"738816442975260672","cardId":"515","cardNo":"2836625596"}],"total":3,"size":50,"current":1}}
|
|
</msg>
|
|
<msg timestamp="20220817 15:12:02.336" level="INFO">${reps} = <Response [200]></msg>
|
|
<status status="PASS" starttime="20220817 15:12:02.296" endtime="20220817 15:12:02.336"></status>
|
|
</kw>
|
|
<kw name="Get From Dictionary" library="Collections">
|
|
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
|
|
<arguments>
|
|
<arg>${reps.json()['data']}</arg>
|
|
<arg>records</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${MemberList}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:02.337" level="INFO">${MemberList} = [{'enterpriseMemberId': '744286805565771776', 'enterpriseMemberName': '郑子荣', 'mobile': '13609002084', 'enterpriseDepartmentId': '738816442153177088', 'enterpriseDepartmentName': '工厂版打包站', 'createTime'...</msg>
|
|
<status status="PASS" starttime="20220817 15:12:02.337" endtime="20220817 15:12:02.337"></status>
|
|
</kw>
|
|
<kw name="Evaluate" library="BuiltIn">
|
|
<doc>Evaluates the given expression in Python and returns the results.</doc>
|
|
<arguments>
|
|
<arg>random.choice(${MemberList})</arg>
|
|
<arg>random</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${MemberInfo}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:02.338" level="INFO">${MemberInfo} = {'enterpriseMemberId': '738823017987182592', 'enterpriseMemberName': '南瓜', 'mobile': '15014242835', 'enterpriseDepartmentId': '738816442153177088', 'enterpriseDepartmentName': '工厂版打包站', 'createTime': ...</msg>
|
|
<status status="PASS" starttime="20220817 15:12:02.338" endtime="20220817 15:12:02.338"></status>
|
|
</kw>
|
|
<kw name="Get From Dictionary" library="Collections">
|
|
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
|
|
<arguments>
|
|
<arg>${MemberInfo}</arg>
|
|
<arg>enterpriseMemberId</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${enterpriseMemberId}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:02.339" level="INFO">${enterpriseMemberId} = 738823017987182592</msg>
|
|
<status status="PASS" starttime="20220817 15:12:02.338" endtime="20220817 15:12:02.339"></status>
|
|
</kw>
|
|
<kw name="Get From Dictionary" library="Collections">
|
|
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
|
|
<arguments>
|
|
<arg>${MemberInfo}</arg>
|
|
<arg>enterpriseMemberName</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${enterpriseMemberName}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:02.339" level="INFO">${enterpriseMemberName} = 南瓜</msg>
|
|
<status status="PASS" starttime="20220817 15:12:02.339" endtime="20220817 15:12:02.339"></status>
|
|
</kw>
|
|
<kw name="Set Global Variable" library="BuiltIn">
|
|
<doc>Makes a variable available globally in all tests and suites.</doc>
|
|
<arguments>
|
|
<arg>${enterpriseMemberId}</arg>
|
|
</arguments>
|
|
<msg timestamp="20220817 15:12:02.339" level="INFO">${enterpriseMemberId} = 738823017987182592</msg>
|
|
<status status="PASS" starttime="20220817 15:12:02.339" endtime="20220817 15:12:02.340"></status>
|
|
</kw>
|
|
<kw name="Set Global Variable" library="BuiltIn">
|
|
<doc>Makes a variable available globally in all tests and suites.</doc>
|
|
<arguments>
|
|
<arg>${enterpriseMemberName}</arg>
|
|
</arguments>
|
|
<msg timestamp="20220817 15:12:02.340" level="INFO">${enterpriseMemberName} = 南瓜</msg>
|
|
<status status="PASS" starttime="20220817 15:12:02.340" endtime="20220817 15:12:02.340"></status>
|
|
</kw>
|
|
<kw name="Get On Session" library="RequestsLibrary">
|
|
<doc>Sends a GET request on a previously created HTTP Session.</doc>
|
|
<arguments>
|
|
<arg>ztbf</arg>
|
|
<arg>recycle-user-center/get/self-department-member-list</arg>
|
|
<arg>params=enterpriseId=null&isPassFromBackstage=1</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${reps}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:02.378" level="INFO">GET Request : url=https://api-client-ztb-test.qniao.cn/recycle-user-center/get/self-department-member-list?enterpriseId=null&isPassFromBackstage=1
|
|
path_url=/recycle-user-center/get/self-department-member-list?enterpriseId=null&isPassFromBackstage=1
|
|
headers={'User-Agent': 'python-requests/2.26.0', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'QNT iHP4V/g6O5DXHixyNrf7tpO/qkx7j1gsqvbpL1KZGKCI5sLXsbsYUBhm9ec3GSn4S+LPw1rEn/lfuq9hvHeHHw==', 'X-APP-ID': '503258978847953926', 'X-FACTORY-ID': '738816441691803648'}
|
|
body=None
|
|
</msg>
|
|
<msg timestamp="20220817 15:12:02.378" level="INFO">GET Response : url=https://api-client-ztb-test.qniao.cn/recycle-user-center/get/self-department-member-list?enterpriseId=null&isPassFromBackstage=1
|
|
status=200, reason=
|
|
headers={'Server': 'nginx/1.16.1', 'Date': 'Wed, 17 Aug 2022 07:12:02 GMT', 'Content-Type': 'application/json;charset=UTF-8', 'Transfer-Encoding': 'chunked', 'Connection': 'keep-alive'}
|
|
body={"code":0,"message":"successful","data":{"records":[{"enterpriseMemberId":"744286805565771776","enterpriseMemberName":"郑子荣","mobile":"13609002084","enterpriseDepartmentId":"738816442153177088","enterpriseDepartmentName":"工厂版打包站","createTime":"2022-07-12 17:31:08","joinAt":"2022-07-12 17:31:08","updateTime":"2022-07-12 17:31:08","status":0,"enterpriseRoleNames":"管理员","enterpriseRoleIds":"738816442975260672","cardId":null,"cardNo":null},{"enterpriseMemberId":"740613817616175104","enterpriseMemberName":"hinzai ","mobile":"13168550964","enterpriseDepartmentId":"738816442153177088","enterpriseDepartmentName":"工厂版打包站","createTime":"2022-07-02 14:16:00","joinAt":"2022-07-11 00:00:00","updateTime":"2022-07-11 11:56:48","status":0,"enterpriseRoleNames":"分拣工,厂长,财务,管理员","enterpriseRoleIds":"738816442564218880,738816442270617600,738816442924929024,738816442975260672","cardId":"528","cardNo":"3391285068"},{"enterpriseMemberId":"738823017987182592","enterpriseMemberName":"南瓜","mobile":"15014242835","enterpriseDepartmentId":"738816442153177088","enterpriseDepartmentName":"工厂版打包站","createTime":"2022-06-27 15:40:00","joinAt":"2022-06-27 00:00:00","updateTime":"2022-06-27 16:32:26","status":0,"enterpriseRoleNames":"管理员","enterpriseRoleIds":"738816442975260672","cardId":"515","cardNo":"2836625596"}],"total":3,"size":50,"current":1}}
|
|
</msg>
|
|
<msg timestamp="20220817 15:12:02.379" level="INFO">${reps} = <Response [200]></msg>
|
|
<status status="PASS" starttime="20220817 15:12:02.340" endtime="20220817 15:12:02.379"></status>
|
|
</kw>
|
|
<kw name="Get From Dictionary" library="Collections">
|
|
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
|
|
<arguments>
|
|
<arg>${reps.json()['data']}</arg>
|
|
<arg>records</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${OutMemberList}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:02.380" level="INFO">${OutMemberList} = [{'enterpriseMemberId': '744286805565771776', 'enterpriseMemberName': '郑子荣', 'mobile': '13609002084', 'enterpriseDepartmentId': '738816442153177088', 'enterpriseDepartmentName': '工厂版打包站', 'createTime'...</msg>
|
|
<status status="PASS" starttime="20220817 15:12:02.379" endtime="20220817 15:12:02.380"></status>
|
|
</kw>
|
|
<kw name="${OutMemberInfo} IN [ @{OutMemberList} ]" type="for">
|
|
<kw name="${OutMemberInfo} = {'enterpriseMemberId': '744286805565771776', 'enterpriseMemberName': '郑子荣', 'mobile': '13609002084', 'enterpriseDepartmentId': '738816442153177088', 'enterpriseDepartmentName': '工厂版打包站', 'createTime':..." type="foritem">
|
|
<kw name="Get From Dictionary" library="Collections">
|
|
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
|
|
<arguments>
|
|
<arg>${OutMemberInfo}</arg>
|
|
<arg>cardNo</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${OutCarNo}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:02.381" level="INFO">${OutCarNo} = None</msg>
|
|
<status status="PASS" starttime="20220817 15:12:02.380" endtime="20220817 15:12:02.381"></status>
|
|
</kw>
|
|
<kw name="Get From Dictionary" library="Collections">
|
|
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
|
|
<arguments>
|
|
<arg>${OutMemberInfo}</arg>
|
|
<arg>enterpriseMemberId</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${OutMemberId}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:02.381" level="INFO">${OutMemberId} = 744286805565771776</msg>
|
|
<status status="PASS" starttime="20220817 15:12:02.381" endtime="20220817 15:12:02.381"></status>
|
|
</kw>
|
|
<kw name="Get From Dictionary" library="Collections">
|
|
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
|
|
<arguments>
|
|
<arg>${OutMemberInfo}</arg>
|
|
<arg>enterpriseMemberName</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${OutMemberName}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:02.381" level="INFO">${OutMemberName} = 郑子荣</msg>
|
|
<status status="PASS" starttime="20220817 15:12:02.381" endtime="20220817 15:12:02.382"></status>
|
|
</kw>
|
|
<kw name="Exit For Loop If" library="BuiltIn">
|
|
<doc>Stops executing the enclosing for loop if the ``condition`` is true.</doc>
|
|
<arguments>
|
|
<arg>'${OutMemberId}'=='738823017987182592'</arg>
|
|
</arguments>
|
|
<status status="PASS" starttime="20220817 15:12:02.382" endtime="20220817 15:12:02.382"></status>
|
|
</kw>
|
|
<status status="PASS" starttime="20220817 15:12:02.380" endtime="20220817 15:12:02.382"></status>
|
|
</kw>
|
|
<kw name="${OutMemberInfo} = {'enterpriseMemberId': '740613817616175104', 'enterpriseMemberName': 'hinzai ', 'mobile': '13168550964', 'enterpriseDepartmentId': '738816442153177088', 'enterpriseDepartmentName': '工厂版打包站', 'createTi..." type="foritem">
|
|
<kw name="Get From Dictionary" library="Collections">
|
|
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
|
|
<arguments>
|
|
<arg>${OutMemberInfo}</arg>
|
|
<arg>cardNo</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${OutCarNo}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:02.382" level="INFO">${OutCarNo} = 3391285068</msg>
|
|
<status status="PASS" starttime="20220817 15:12:02.382" endtime="20220817 15:12:02.382"></status>
|
|
</kw>
|
|
<kw name="Get From Dictionary" library="Collections">
|
|
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
|
|
<arguments>
|
|
<arg>${OutMemberInfo}</arg>
|
|
<arg>enterpriseMemberId</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${OutMemberId}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:02.383" level="INFO">${OutMemberId} = 740613817616175104</msg>
|
|
<status status="PASS" starttime="20220817 15:12:02.383" endtime="20220817 15:12:02.383"></status>
|
|
</kw>
|
|
<kw name="Get From Dictionary" library="Collections">
|
|
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
|
|
<arguments>
|
|
<arg>${OutMemberInfo}</arg>
|
|
<arg>enterpriseMemberName</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${OutMemberName}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:02.383" level="INFO">${OutMemberName} = hinzai </msg>
|
|
<status status="PASS" starttime="20220817 15:12:02.383" endtime="20220817 15:12:02.383"></status>
|
|
</kw>
|
|
<kw name="Exit For Loop If" library="BuiltIn">
|
|
<doc>Stops executing the enclosing for loop if the ``condition`` is true.</doc>
|
|
<arguments>
|
|
<arg>'${OutMemberId}'=='738823017987182592'</arg>
|
|
</arguments>
|
|
<status status="PASS" starttime="20220817 15:12:02.383" endtime="20220817 15:12:02.384"></status>
|
|
</kw>
|
|
<status status="PASS" starttime="20220817 15:12:02.382" endtime="20220817 15:12:02.384"></status>
|
|
</kw>
|
|
<kw name="${OutMemberInfo} = {'enterpriseMemberId': '738823017987182592', 'enterpriseMemberName': '南瓜', 'mobile': '15014242835', 'enterpriseDepartmentId': '738816442153177088', 'enterpriseDepartmentName': '工厂版打包站', 'createTime': ..." type="foritem">
|
|
<kw name="Get From Dictionary" library="Collections">
|
|
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
|
|
<arguments>
|
|
<arg>${OutMemberInfo}</arg>
|
|
<arg>cardNo</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${OutCarNo}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:02.384" level="INFO">${OutCarNo} = 2836625596</msg>
|
|
<status status="PASS" starttime="20220817 15:12:02.384" endtime="20220817 15:12:02.384"></status>
|
|
</kw>
|
|
<kw name="Get From Dictionary" library="Collections">
|
|
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
|
|
<arguments>
|
|
<arg>${OutMemberInfo}</arg>
|
|
<arg>enterpriseMemberId</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${OutMemberId}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:02.385" level="INFO">${OutMemberId} = 738823017987182592</msg>
|
|
<status status="PASS" starttime="20220817 15:12:02.384" endtime="20220817 15:12:02.385"></status>
|
|
</kw>
|
|
<kw name="Get From Dictionary" library="Collections">
|
|
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
|
|
<arguments>
|
|
<arg>${OutMemberInfo}</arg>
|
|
<arg>enterpriseMemberName</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${OutMemberName}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:02.385" level="INFO">${OutMemberName} = 南瓜</msg>
|
|
<status status="PASS" starttime="20220817 15:12:02.385" endtime="20220817 15:12:02.385"></status>
|
|
</kw>
|
|
<kw name="Exit For Loop If" library="BuiltIn">
|
|
<doc>Stops executing the enclosing for loop if the ``condition`` is true.</doc>
|
|
<arguments>
|
|
<arg>'${OutMemberId}'=='738823017987182592'</arg>
|
|
</arguments>
|
|
<msg timestamp="20220817 15:12:02.386" level="INFO">Exiting for loop altogether.</msg>
|
|
<status status="PASS" starttime="20220817 15:12:02.386" endtime="20220817 15:12:02.386"></status>
|
|
</kw>
|
|
<status status="PASS" starttime="20220817 15:12:02.384" endtime="20220817 15:12:02.386"></status>
|
|
</kw>
|
|
<status status="PASS" starttime="20220817 15:12:02.380" endtime="20220817 15:12:02.387"></status>
|
|
</kw>
|
|
<kw name="Set Global Variable" library="BuiltIn">
|
|
<doc>Makes a variable available globally in all tests and suites.</doc>
|
|
<arguments>
|
|
<arg>${OutCarNo}</arg>
|
|
</arguments>
|
|
<msg timestamp="20220817 15:12:02.387" level="INFO">${OutCarNo} = 2836625596</msg>
|
|
<status status="PASS" starttime="20220817 15:12:02.387" endtime="20220817 15:12:02.388"></status>
|
|
</kw>
|
|
<kw name="Set Global Variable" library="BuiltIn">
|
|
<doc>Makes a variable available globally in all tests and suites.</doc>
|
|
<arguments>
|
|
<arg>${OutMemberId}</arg>
|
|
</arguments>
|
|
<msg timestamp="20220817 15:12:02.388" level="INFO">${OutMemberId} = 738823017987182592</msg>
|
|
<status status="PASS" starttime="20220817 15:12:02.388" endtime="20220817 15:12:02.388"></status>
|
|
</kw>
|
|
<kw name="Set Global Variable" library="BuiltIn">
|
|
<doc>Makes a variable available globally in all tests and suites.</doc>
|
|
<arguments>
|
|
<arg>${OutMemberName}</arg>
|
|
</arguments>
|
|
<msg timestamp="20220817 15:12:02.389" level="INFO">${OutMemberName} = 南瓜</msg>
|
|
<status status="PASS" starttime="20220817 15:12:02.389" endtime="20220817 15:12:02.389"></status>
|
|
</kw>
|
|
<kw name="Evaluate" library="BuiltIn">
|
|
<doc>Evaluates the given expression in Python and returns the results.</doc>
|
|
<arguments>
|
|
<arg>open('./21042217001449712.png','rb')</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${filepath}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:02.390" level="INFO">${filepath} = <_io.BufferedReader name='./21042217001449712.png'></msg>
|
|
<status status="PASS" starttime="20220817 15:12:02.389" endtime="20220817 15:12:02.390"></status>
|
|
</kw>
|
|
<kw name="Evaluate" library="BuiltIn">
|
|
<doc>Evaluates the given expression in Python and returns the results.</doc>
|
|
<arguments>
|
|
<arg>open('./21042217001449712.png','rb')</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${image}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:02.391" level="INFO">${image} = <_io.BufferedReader name='./21042217001449712.png'></msg>
|
|
<status status="PASS" starttime="20220817 15:12:02.390" endtime="20220817 15:12:02.391"></status>
|
|
</kw>
|
|
<kw name="Create Dictionary" library="BuiltIn">
|
|
<doc>Creates and returns a dictionary based on the given ``items``.</doc>
|
|
<arguments>
|
|
<arg>file=${filepath}</arg>
|
|
<arg>image=${image}</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${file_data}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:02.392" level="INFO">${file_data} = {'file': <_io.BufferedReader name='./21042217001449712.png'>, 'image': <_io.BufferedReader name='./21042217001449712.png'>}</msg>
|
|
<status status="PASS" starttime="20220817 15:12:02.391" endtime="20220817 15:12:02.392"></status>
|
|
</kw>
|
|
<kw name="Create Dictionary" library="BuiltIn">
|
|
<doc>Creates and returns a dictionary based on the given ``items``.</doc>
|
|
<arguments>
|
|
<arg>type=image</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${type}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:02.393" level="INFO">${type} = {'type': 'image'}</msg>
|
|
<status status="PASS" starttime="20220817 15:12:02.393" endtime="20220817 15:12:02.393"></status>
|
|
</kw>
|
|
<kw name="Create Session" library="RequestsLibrary">
|
|
<doc>Create Session: create a HTTP session to a server</doc>
|
|
<arguments>
|
|
<arg>order</arg>
|
|
<arg>${ztbClient}</arg>
|
|
<arg>${Header}</arg>
|
|
</arguments>
|
|
<msg timestamp="20220817 15:12:02.394" level="INFO">Creating Session using : alias=order, url=https://api-client-ztb-test.qniao.cn, headers={'Authorization': 'QNT iHP4V/g6O5DXHixyNrf7tpO/qkx7j1gsqvbpL1KZGKCI5sLXsbsYUBhm9ec3GSn4S+LPw1rEn/lfuq9hvHeHHw==', 'X-APP-ID': '503258978847953926', 'X-FACTORY-ID': '738816441691803648'}, cookies={}, auth=None, timeout=None, proxies=None, verify=False, debug=0 </msg>
|
|
<status status="PASS" starttime="20220817 15:12:02.393" endtime="20220817 15:12:02.394"></status>
|
|
</kw>
|
|
<kw name="Post On Session" library="RequestsLibrary">
|
|
<doc>Sends a POST request on a previously created HTTP Session.</doc>
|
|
<arguments>
|
|
<arg>order</arg>
|
|
<arg>recycle-user-center/file-uploading/upload/image</arg>
|
|
<arg>data=${type}</arg>
|
|
<arg>files=${file_data}</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${reps}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:02.504" level="INFO">POST Request : url=https://api-client-ztb-test.qniao.cn/recycle-user-center/file-uploading/upload/image
|
|
path_url=/recycle-user-center/file-uploading/upload/image
|
|
headers={'User-Agent': 'python-requests/2.26.0', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'QNT iHP4V/g6O5DXHixyNrf7tpO/qkx7j1gsqvbpL1KZGKCI5sLXsbsYUBhm9ec3GSn4S+LPw1rEn/lfuq9hvHeHHw==', 'X-APP-ID': '503258978847953926', 'X-FACTORY-ID': '738816441691803648', 'Content-Length': '143845', 'Content-Type': 'multipart/form-data; boundary=a934b436f61bbf6cfab38c4e4cfe54c7'}
|
|
body=b'--a934b436f61bbf6cfab38c4e4cfe54c7\r\nContent-Disposition: form-data; name="type"\r\n\r\nimage\r\n--a934b436f61bbf6cfab38c4e4cfe54c7\r\nContent-Disposition: form-data; name="file"; filename="21042217001449712.png"\r\n\r\n\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x02\xb8\x00\x00\x03\xca\x08\x03\x00\x00\x00H\x83\xd9c\x00\x00\x03\x00PLTE\x00\x00\x00\x9b\x14\r\x98\x0f\x0c\x94\x0c\x0c\x95\x10\x0c\x96\x11\x0c\x94\t\r\x94\t\r\xecE=\xfc\x87\x00\xefE:\xe8f3\xe7\xf3\xe4\xff\xfd\xd5\xf8\x99\x13\xe9;-\xdfM1\xe5g&\x99\x17\x0b\xf9\xa53\xdcJ+\xf1\x88\x1a\xfa\xb2_\xe1`\'\xfe\xf9\xe4\xf1u#\xbf.\x0f\xfe\xf9\xe1\xec|\x1c\xfe\xf8\xdc\xd3L\x17\xf8\x8d\x0c\xf4\x87\x16\xfe\xf7\xd4\xd6F#\xfe\xf6\xd0\xf3\x83\x16\xfb\xcbW\xf4\x89 \xfd\xf4\xd3\xe0L$\xfc\xf5\xda\xfe\xf8\xdb\xf4\x85\x1e\xf9\xc1U\xfb\x88\r\xfe\xed\xab\xfc\xc8B\xea\xc1\x9f\xff\xcd\x15\xb6*\x19\xfe\xed\xaa\xf6\xa8S\xff\xd6K\xfb\xe1\x98\xf0\x84D\xf8\xa9K\xdfc\x18\xee?0\xfa\xa9H\xdaP\'\xfa\xd7\x88\xff\xcd\x16\xe4\xa9\x86\xf98\x08\xca\x80w\xf7\xd6\x8c\xdf\xb3\xad\xea\xcf\xca\x00\xaf\xff\x00\xaf\xff\x00\xb0\xff\x00\xaf\xff\x00\xb1\xff\x00\xb1\xff\xff\xe1\xc1\xf9\xec\xea\xff\xff\xff\xf7D<\xfaNG\xf5G>\xf7KC\xf6\xd1\xce\xdeA2\xff\xdb\x17\xea81\xe42,\xee<6\xf3>7\xed\xbdx\xda6\x1e\xf1B;\xfe\xe2=\xff\xe6\xc6\xee\xc1~\xe74.\xff\xfb\xe7\xff\xfa\xd7\xfe\xfa\xdf\xfb\xef\xbc\xfbH@\xfd\xf7\xc7\xdb?0\xee92\xd91\x19\xf0\xc6\x84\xf1\xca\x8a\xf8\xe5\xe4\xfc\xbc\xa1\xf2\xcf\x91\xfd\xd8\xb9\xf8\xe7\xb1\xfe\xe9n\xd5<.\xfc\xc3\xa6\xca4(\xf4\xd5\x99\xd08+\xf8\xe0\xac\xf9\xb4+\xf7\xde\xa6\xf5\xae)\xf1\xab(\xf1\xcb\xc8\xea\xa5%\xee\xa7&\xe6\xa0%\xc30$\xf6\xc4\xc1\xfc\xcd\xaf\xe6\x964\xfe\xf2\xd2\xff\xd9W\xff\xe6\x80\xfe\xeb\xcc\xfe\xd3=\xff\xddf\xe6A7\xf7\xca\xc8\xff\xc7\x16\xf6\xd8\xa1\xff\xfd\xf0\xff\xd6K\xe4+&\xeb3-\xfe\xf8\xf7\xff\xee\xa4\xff\xe0t\xff\xec\x97\xf8\xe0\xde\xe70*\xf2\x92t\xff\xcf2\xff\xe9\x8c\xef\xc5\xc2\xbc+ \xff\xde\'\xf4\x9e\x81\xff\x82z\xff\xcb%\xf5\xc2\x8b\xfbVO\xfe\xfd\xa8\xf9\xb4\x99\xeaj&\xf7\xbd\xba\xb3\'\x1e\xfb`X\xfd\xd3\x13\xf6WO\xfe\xe7e\xf1\xd4\xd1\xe6\x98!\xfd\xf2\xf0\xf5\xdb\xd9\xf9\xd6\xd4\xdd82\xf6\xa9\x90\xecp,\xba*\x00\xdb@&\xef\x7fj\xfa9\n\xf2\xb6\xb2c\x05\x02\xdbH.\xa8"\x19\xff\xdf5\xf7\xcf\x9b\xdf\x895\xfdpi\xee\xbe\xbb\xf1\xb7\x89\xf0\xae{\xf6\xc8\x94\xf0\x9d(\xf0\xaa\xa6\xf8\xca\x16\xf8\xadG\xe8\xa2\x9e\xe2\xad\xa9\xdf\x9c\x98\xe0U9\xedWN\xe6\xb6\xb2\xfe\xe6R|\x10\x0c\xdc\x8a\x85\xf7\xb1\xad\xe4w\x03\xdbO*\xfa\x98A\xef\x81\x00\xe8\x8b[\xe2`C\xfew1\xfc\x86:\xe0\x8e\x1f\xc3:\x00\xe2%\x1f\xe4kN\xea\x97e\xf4\xc0\x16\xf0j[\xe6\x93\x8f\xe7NF\xd2R\x00\xee\xa4p\xd7\\\x02\xec\x9fZ\xdfi\x01\xcaF\x00\xf5\xc9:\xeb\xa69\xe8v\\\xf8\xd2f\xee\xb86\xef\xb5\x16\xf4\xc7Y\x97\x1b\x15\xe6\xc0\xbc\xd8}x\xd9\x83\x1d\xd6/*\x00\xae\xff\xe9\xa9\x15\xf5\xbcL\xe7\x80L\xe6\xb7R\xf9\xc0-\xfa\xd2%\xd0ib\xc0B7\xc7UM\xcfs \x00\xb2\xff{\xa96\xc3\x00\x00\x00KtRNS\x00\n\x146\x1f)CL\xfd\xfe\x811\re\xfe\xb4\xf9\xd4h\x14\\\xfe\xfe\xfe\xd0\x1f\x8c\xe6\xfe\x8ep\xbf`ME4\x9e1B\x1f\x9e\xbe\xa8\x7fO\xdd\xe1n\xfe\xd3\xca\xbf\xcc\xbfu\xbe\x9e\xbc\xcc\xe0\xd7\xc8\x8c\xfe\xdcz\xa5\x99\xb7>v\xd3\xac\xf7\xeb\xbe1\x8e\xc6\x00\x01\x14\x9fIDATx\xda\xec\x9cAn\xd3@\x14\x86\x9de\xd4\xca\x12\x8a\xba\xa8\x04$\x08\xd2.\xe2&\xb2\x02\x11\x08\xc5\x8b\x9e\x81\x1bp\x00\xd6=\x80%\xd6\xb57\xbd\x81\xef\x11\xb5\xfbH\xb9\x04\x8a\xd4e\xd6<\xfbM\xfc\xd7\xf3lg\x92\xa68\r\xf3\xcdd2\xf8\xbd\x19\x17\xfc\xf51P\x8ac\xb1X,\x16\xcb\x8b\xf2n\xac1q$\x93\xb1\xe4T\xcb\xf98\x96|p,\x96\x97a|\xabq]&\xee\xad\xe4\xa3Q\x8e\xc5\x02\xf6.\xee/z\xfdT\x93w\x8e\xe4\x03\x87~\xd2\xc83b"7RI\xfc\xfaE\xdd\x11\\\x0eKHW\x0f\xf7\xc3\xf8\xda~\xb2\xfc\x1f\xa0\xe2\x92jU\x15\xf72\xcfA\xe6X\xcb\x19\xde\xea \x05|D\x14\xe0\xc3\xd8\x07\xe3K\xc7r\xfc\xd4\x1c\x15\xea\xad\x1cn6r\xd2\x80\xb8\xc4\xd0\x16\xdd\xff\x00a\xcc\xb2K\x0cD\x96\xa4K\xb4j\x8f\xb8\xdf\xbb)\xbd\x17\x16\xd7\x9e\xad\xffK\xa4\xb8m\xb7\xed~2\xf8\x93\xd7\x03%^\xd4\xa9\x1d\xbb\xedt\xaf\x8b\x7f/\xee\xd0\xb1\x1c;\xc2\x98\xc7v\x1b\xe2\xd6\xf9\xb6\xa4\xc4A\xdda""mi\xaf\x8d\x1b\xc5WWW\xe1\xed^\xb9v,GN*n\x9cuz\xb1\xb8\x84\x12\x17\xe4a\x95M\x84\x94\xd7\xcd\x85\xe4\x00\xe2\xc4*\xd5\x16)\x9c\x878\xb2)/*Y\x8fy\x8c\xb9X\xcf\x1d\xab\xb9u;\x8e\xe5\xa8\x19\xf3\xb3\xc6@\xe2\xbaR\xdc\xb1\n\xab4\x9a\xf0I\x00g\t\x0eP\xcbg7Y\xc5\x1d\x14\xc5\x85[\xdc\xa9)q\xe3\xc2\xfe\x98\xab\x86}\xb1\\\xbfJ]\x89\xee^\x9d8\x96cf\x0c]\xb8\x95W\xdcI\x9eC\xd0\x90\xceo(q\xad\xc7u\xbe\x1eCvP\xe0\x0c\x88\x1b\xaf\x13p_\x88\x0b\xf98\x82\x8f\x0bs\xa2(*\xd6`\xcf\xf4\x93\xe6\xc2\xb1\xbc>Z\x1dSq\xd5\xa3\xa7\x81_\x10W\nG\xc0\x97xE\x89=\x15\x1f\xe6\xe1<~\x97j\xdb>\xd3\xf6\x91y\x99\xb8\xcbxg\xb0\x15\xe6\xf1C\xbb}\xe5lA\xa7\xe5X\x0e\x81 0\x167.\xaa\xab\x89{z\xc9\xb0#\x85q\xe9\xba\xee\'\x8e\x92\x8f0[Aa\xa2{Y\x14W\xe4e\x15\x97\xa0`\xb7\xbd5\xeeMX\xd8j=\x7f\xc0!\xc5\xf4\xd7\xcbr\x00\x8c\x12\xbfe*\xae\x86&\xeed\xf7B\xa8\xf8\xa8\x89+i\xbb\xb9\xb8.:f\xe8Z #\x8a\x05,\xee\x99c\xcc\xf9}2r,\x8d\xe3%I\xe25#.0\x15\xb7\xaa\xe2.*\xab\xec\x93\xd9\xc2m\xbb1!\xc5%\xce\xb7\xf8DO\xee\xed\x99\xb8q\xfa\xf7$n\xb0\xb3\xb8\x8b\x7f,\xee\x1d\xddq\xc1\xe2\xd2\xbb\xbb\xee\xfc\xf6\xf4\x8a\x1a\x08\xcch\x8c\xe2\nq{\xc6\'\\?I\x12\xbf\xefX\x1a\xe5\xdcO\x88\xfb\xdazs\xfaA1\x8c5\x967\xc4g\x8a\xf4sq\xef\xe22\xee\xa8!T\x16\xe7.\xc5E\\\x89\x9b\x9a\x9b\x8a\xbb\xc8\xa1+\xd4\xf1\xae]#0_\x96\x8aKAcq\xbd$\xc5\xb7\x7f\xf7\xdb\x14(\x1f\xc4\xa8\xb6(\xb3x4\xa2e\x1d&N\x94\xb8\x1c\xd4\xbb\xd2V\xae\xc7F\xaa{\x1d\x02\xf7\xcd3\xb0<\x93\xd2\xd9\x99q\xc9\xed\x1fhKsq\x83$#\xb0\xe66\xc9(a\xfcZq3\xf5\xb81\xba\x7fwJ\\\x15P\x96\x110\x97;\xd6\xcb\x96\x0e\xb3\x05q\x81\xfbj\xcbi\xc8J\xaaSK\x7f"\xf9\xa0bSy{\x12\x97\xe8\x99\x1f\xad\x18{\xccm\x94\x91z\x0e\xfdZqsI\x0b3x\x95\x8b\x0b;c\xa4\x16\x8bt!\x07\x9d\x07]\\\x04\xb3FP|\x93\xb8\x93;\xc94\x17W\xed\x83\xfbC\xdc-\n\xaeo\xbdm\x98>\x1f\x16\x82zq\x15\xb1\x9ci\x15\x17\xb1z\xa0\x0f\xd6Hq\xe5*\x1c\x15v\x15\x17\xc62\x10\xd7\xfcl\xe5\x8f\xec\xd7 \x9a\'\x10\x7f\xd8\x10\xe2n\xe4\xbaG\x9c\xc0\x98\xed1\x11w/\x15Wr\x03q\xcd\xceV\xc1\xb9c9\x00.\xd2*\xe2\xed*.\x8a\xd6\xc0\x9b\xa6,\x9f\x81\xdb\x80\xb8[U\\\xdf\x9e\x12\x0e\x88N\x90\xfc\x08\xf6 n\x96\xdd[<\x8fzq\xc3]\xc5\x1d\x10\xbdgW\xdc\xbe=%\x1c\x16\x9e\x9f\xf4k\xc5\rU\xcb;\xde\xc3\x97\x13\x17w\xe1f(.\xd6\xe5\xcb\x96\x0b\xa2K\xe2\xe6W\xf1\xf6\xc7\\\xdc\xc0\x9e\x12\x0e\x8cs?\xa8\x15\x17\xf6@$\xe8\xfbB\xe2j7\xa1f(.\xbc]\x0f\x10\x17WU\xca6\xe2\xda/\x98\x1d\x1e5\xcf\xe4\x948\xa1\x87\xbb\x0c3w`\xed\n\xb6A\xdcY(\xc8\xd4\x00g2\xe3\xacL\\u\x1b\xee<eqOk\x99d\xb9\xbcRT\xdc|\'\xec\xac\xc4\xb5\x1c%,n\xaaN60e\xe2^|W>\xa0\x87\xdf\xbbE\xe8\x92\x96\xf14z\x92\x8bK!$\xf2l\xb1x\x0c7\x82t\xea J\xc5U!\xe4Yq\x8f\x9aL\\<q~\xe6$\xee|\xddX\\\xc2{j\x0f3q\nt\xb2h\x01Q\xefY\\\x91\x07qM\xec\xc5\x87\x01q\x11\xe6\xcbV\xdc\xe3\x86\xc5\x05\xa2\xe2\nq\x81\x14\x970\x14\x17@\xdc]\x80\xb8\x00\xe2\xce\xad\xb8\xaf\x8c\xd1\xa8c.\xee\xa3\x14\x97J\xed1\x88\xbbm\xc5\xed\x8c<\xc7\xd2$A\xe2\x1b\xaa\xdbj\xb5\xa6\xa5\xe2~j)\x9cJq\xff\xcc\x89^\x9d\xb8gs\xe2d\xb3\xb8\xd1\xb3\xc4\xe5\x9f\x82\xfc\xe8\xb6\xac\xb8\x9d\xc0\xb7\xdf\x04\xd10A\x92\x98\xaa\x9b\x95\xab\xa8\xd0Vs\xe2\x93\x96\xe5\x15\xb3\xa8\xb3\xb8\x83\'\xe2"\xc6\xad\\\\\xa4a6\x9f\x93\xb8\xb8\x8a&\xae\x89\x86\xc5\xc553|Z\x99U[?I\xac\xb8M\x01q\xcd\xd5\x9d\xa6\x8f\x99_\xdc+\xc5-\xf4H\x8a\xcb!\xb8[..\x87\xa5{RU-\xb3\xa2\xb3\xb8"\x0f\xbf\x1f\x98jk\xc5m\x1c\x12\xd7\\\xddiD\x0f\x7f\xfd\xc8\xab+.\xcc\xe0.\xc5U1\xe4E\xa5\xe2\xaa,\xe4\xb1{Q(\xd7\xe3\xc7pZ\xbb\xce\xd6\xeby\xd4!\xae\x99\xb6V\xdc\x03\x80\xc45Ww\x1a\xe5:\xf2P!\xae\nC]]\xdc\x08\xbbp\xaf\x10\x17{d\x9d\xc5]E:\x1c\xcaA:\x86\xac\xb3\xb8,1:\x8e\n&g\xdb\xc4\x8a{\x10@\xdc\x1f\x9b\xff\xfd\xc8\x14n\xf0P%nXL\x14\xe2\n\xd9*\xc4\xd5`\xf7\xcef3\xcf\xfb<\xabf\xa5\xaf!\x96Y$\x13\x17\xea2\xa8\xb8\x1b\xab\xed\x8f\xc4\x8a{ \x04\xc9\xbdO\x04A0\xf2\xbc\xbec$.x\xa8\xaa\xb8P\xa6R\\\x10V\x8b\x1b\x8a\xad\xe6)\x8e\xf3m^\xcd,\xdf\x17<\xaa\x18\x89+\xb46\xac\xb8\xad\xbe\xe7\x8d\x82 \xf0\t\xfb_+4M\xa7\xdf\xef\xa0\xcen)ne\xc5\x05\xf5\xe2\x1aW\xdc]\xc4\x05R\\\x00q\xcdi\xd1\xaf\x9a\xfd^\xc9W\x84i\xc5\x15\xcc\x8eK\\\xcb+c\x17qQq\xdf\xef_\xdc\xa5`e\xc5\xb5\x94\x89\xfb;"\xf8\xedw\x8d\xb8\xbf\x8b}\xa6\x89K\xd7\xb4\xa4\xb7\xa5\xe2"\xce/\xeaJ\xdc\x8b\x1e1\x88\x04_\xe8\xf2W\xb5\x06]\x89\xfb\xa6\xd7\xfb\xa2\xb6\xc2\x86V\xdc\xbf\xec\x9cAk\x13A\x1c\xc5\xd5\xab\xbd\xd9K%x(\x08=\x14\x16\xc1\x15\x03\xb6\x07\xbf\x94 z\x91@{\xca9\x1f"\xdf"\xd0{\x8e\xb9\x86e\xd3\xd0\xd0C\x0e\x05o\xfeg\xde\xcc\xbe\xce\xfcgcDE\x99\xcc\x9bq6\x99\xf7\xfe3+\xfbs\\A\xcd_\x17\xe6Y\xdb\xe6\x86\x9by;o5\xb8\x0c\xb8>\x93X\x00.lv{\xe2\xb6\x1a\\\xef\xf3\xdaZp\xa1w2\x13\xb5s7\x1d\xf7\x07\xa9k\x87\xf8\xb5\x87*.:k\x0b\xb8y\xeb\xc2?\xf0\xebk\x8c7\xadH\x81+.\x02\x1e<AC\xf4\x08\\\xd8\xc8\xe0\xd3\xc0$R\'n\x97t\xd7\xd6\xc8\x05>\xfay\xde\xd7\x0b\x99\xae\xe4;:\xeb\xef\xa5\xaa\x03\xf7\x1a.\x9a\xbb\xbb\x02n\xc6\xba\xc0\x03gK\x83\x8b\x08\xe8@>\x05.B>\x95\x04\x97{\x89p\r\xc0\xbd\xbb&\x84\xf0\xef\xcct\xd5\x81\xc9\xeb\x83\x07\x97kZKT\xc0\xcd^5\x88\xa0\xd2\xe0\x123\x9f\xd7\xe0b\x9e\xf8\xa4\xc1\x85\x90\xc3\x05\xe0\xfae\x08>|\xf0\xf9\xed\xd1\x84\xaf\xbb\xef\xc0\xa5@{9q\xf3\xd7\x05I\xc1e\xd3\x0bn@\x8d\x02\x97&\xd4\x0f.\x19\x84\x00.7\xa2\xc5\xc3s\xc6\xdd\x9dx\xe2\xd6\xe1\x92\xe5\xc4=\x08\xd9\xa7\xbe\xc7\x89\xab\xa4\xc1\xa5v\x83Kip\xdf\xa5\x96\x01\xb8\x94\x06\x17*\xe0\x1e\x90\xfe3p\xeb\x84\xbb7\xb8\xfa\xee\x8a\xb2\x95z\xea\xebVt\xf6\xaf\xc0\xbdK\xe3\xd9~\xfbEp\xa7\x05\xdc\xcc\xa5O\xdc\xdd\xe0\x8e\xf6\x07w\xbe\'\xb8#\x82\x9b\xb0\xd7\xd6}\xdb\x85\xcb\x89[\xe4\xc0\x1d\x05\xcd\x9d\xb8G\xe7U\x00\xae\xb7E\xf8\xa0\xc0\x1d\x85\xad\x0f\xdc\x91n\x00\x17\xfb(wa\xdd\xf7\xde\xb8f\x82\xe0\xaa\xaar\xe2f/\x0b.a\x03\xb8\x8b\xb7\x06\x06\x04\x08T\x18\xfc\x16\x81\x0b\x0f\x1dC\xf2U\x01v\x18%\xb8\x1f\x1f/@\xfc\x01.K\xf1\x91\xe0\x8e\xc2\xaa\x02\xee\x01\xa8\xf6,t8\xac\x1f\xf0=\x00\x97><}\xe2z\xbf\xbb\x8e\x92\'n\x90Q\'nM\xcf\xb9\xa3\xb61n\xa5\xf6\x7f\x0c\xae\x9f\xe3\xb5\x80\x9b\xbbjy\xd2a7\x83\x02\xf7\xb1\x03{\x1a\x83\xcb\x15\x90J\x83\x1bf\xb0,\xc15\xdf\xc3\x85n\xac9\xacF\xaa\x8a\xaf\nz\xcd\x02n\xf6\xaaG\x01\xb3x\xf2\x98\x13\x1a+\xa7\x8f\x98\xc3\x0f\xe8f*z_u\x1a\xb9\x08\x13\xeb.\x11\x80\xcb\r\xbc\x1a#\xba\xe2p\xa1YktVa\x02?\x9c\xff gq\x03p\xe1R\x16\xdc\xa6\x80\x9b\xb1\xe4\xa9S\xd7\xc1E\x0e\xda\xd8#S\x14\x13Q\x94:\n\xc0%\xbb\xe8\x04\xb7\xd2K\x0e\xacyL\x87+?\x88\x01p\xe9\xa0\x0b\xb8b\x15p\xf3\xd5\xeb\xean\xd4\xab\xb3\xe1`\xf4\xbb\xd2\xe0j\x11\xdcZ{\xad5O\x14\xd2\x1a\\\xaa\x80\x9b\xb3\x8e^W5\xa9M\xf34Ws\x7f\x17\\\xde\x0f\xe1\x84Y\xc0-\xb2:\xa9\x93\x84\xfd[p_hkm\xbda\x01\xb7(\x02h\x9c"iLpuH\'\xf5l\xe4\xbc2\xc2\xbe:Kp\xcf\xf5J\x8b\x06\x04V\x89\xba\r\xc1\xd5u\x05\xdc<%\x00\x8dm\x93\xee\x1a/\xe64\xdbL\xb7\x16\\\xa6\xc6*\xaa\xca\xb9\x00\x1d\xe9 \xf3)\xf7\x8d\x96\xf0\xe0V>\xcf\xd6Z\xef\x14V\xb8\x19\xc1\xf5k\xd2,\xe0\xe6*\x00$\x92\x91\\Zfo7\xd3\x01xi\xe6\x9c\xe7\x95\xc8\xa2<\xf2\x1fS\x94\x007\xac7\x03\xc1\xadc\xe0\x8d\x85\xd2*\xb1\xff:\x06\x17\xb5v,\xe0f*\x02$\xcd\r\xa0x\xddPs\x99a\x0f/\xac\xd6>>p"\x00\x971\xd7:p\xa3\xe5E\x1bk}\x90\xff\x9dg\x1cxv\x98ypY\xe1C\x05\xdc\\e\x00\xa2HS\x08nkOc\xc8\xd9\xa4\x92\xa2O\x8f\x89\x10\\\xc6"\xdbz,Dbf\xad3\x80\x0b\x8f\x84\x12\\\x88\xe8\x16p\xb3\x15\xc1\x8d)\xfcJn\xc1\xd3s\x19\xb7:\xbahBi\x90[\x9a\x04\x97\xb6\x02\xb7\xd2\xce\xb6q\x00\x12NjJp\x83[+\xe0f,\x02\x14k\xbd4j\x96\xe6\xb7\xe8\xe1\xabS\x01W\xbelun\x81\x8c\xd3r\x07\xb8\x12\x94\xbe\x13\\\xb1q\xaaFB\xfds\xc0\xa9\xef\x80\xe0j\xaf\x80\x9b\xa5\x0c@\xf7\xf5\xa2]n\xc6\x91f\x16\\\xc3\xec3D\x9f\xcb\xd7\x1ep\xa9$\xb84\xcd\xd0\x0f\xae\xcd\xa4\x00\xbcE\xf5\x93>8Eg;\xbc\x02n~:\xb9<\x7fa\x91\xd4\xe0\x02\x07\xaa\x17\\Q\x83\xde\x0bn\xe3\xed\xdd\xe0\x9a\xcc\x93#m|\xb6\x85\xc3\x1ep\xe7\x05\xdc\x03\x95\x03\xf7\n\x1dC\x1f\xb8H\xb0\x01\r\xaa\xe1:~h\xe9\x12\xdc\xae\x9e+\xba\x13\xf75\xa6h\x00?\xf07\x1e\x87\xfbw\xeb\xbf\xb4\xe0\xa2\x84\xc5\x05\xdc\xac\xe5\xc1\xb5\xcd\r1\xb8\xd0\xb98\xcc\xa4\xce\xb4\x17\xe3\x98\\\x80\x15\xff}\\\xc4BF\x01n\x15\xc0g#@\xffTV\x87A[\xfa\x95\xa7\xba\xe6r.PN\xdc\xbce\xc1\xbd\xba"\xb8\xe6c\x1a\\\xa4\xa4#-R\xe0\x9ai\xfa\x92M\x82\xdb\xf9\xec\x0e\xdc\x1a\xdca\xca\x11m\xf5\xcc\x96\x19+(\xddt\xe0v\x1e\xeb\x0b\xb89\x0b\xe0:Rp\xed;q\xc3\x8ci1\xb8@\x8b4\xf6\x82\xeb\x01\xe3\x07\x80{\x0f\x8b\xf5\x0e\xcd\x0fRVu\xfb\xb3\xfa\xabu\x8f\r\xb80X_^\x15\xf2\xd6\xc9\xcb\xe3g\xf2\xd4C`\xfa\xc0%\x1d\x90\x06\x17\x1e\xc74\xb8\xf0\x11\x81\x00\xae[\x80\xf5\xb8\x15\xdc\xcb%\xf7\xe7\r\xf8\xf7\x88\x1aFP?(\xe0f.\x80K\xf5\x81Kf\x80\x88\x06\x97B2\r.\x13\xf6Bp\xcf\xa3z\xd1v\x89=\xfc\xa1\x1a&\xe6\xd6=Q?\x85\xf2\xaap\x10\xda\x17\\%\r.\xb5\x13\\\xad\xe5J\xda\xa5\x9eo\x96\xcb\x15Vx\x139t\xd5O\xc13\xbf*\xe0f-\xf5\xd4\xa7B\xd1>\xe0\x0eV\xa2\xdd\xe0\xcaJ\xab\xdd\xe0N\xec\xb82\x94i\xfcne^\xdaS\xf9\xd7\x1a\x91\x03w%\xee\x87\x1ep\x07\xb2u\x017g%\xc0]\xed\x05\xee\xe2\xa7\xe06\x12H\x82Kl!\x93[\xde\xaa\xfa\xcf+\xa3\x0f\xd8^if\xdd\xb3\xbe\x13\xd7\x98\x05\xdc\x8cU\x0b?A\x9b\x82\x87P\x95O\xb1m#pu\xa2\x11\x1c5\xb8\xc6\x8a\x92&\xd7\xe8\xfa\x85\x99_\xbd\x94\xaaKm^\xcdW\xfe\x06\xea\x84;(\xe0f\xae\xda>\xe7\t\xdb"\t\xeeD\x017\x8f\xc0U\xecL\x92\'n\xb0\x86\xc8|7\xb9\xad\xaeo-\x9a\xc7\xf6\x15W\xed?Y\x1a\xaaW\xa7\x1d\xb8Au9q\xb3W=\xc1C\xf7\x17\xbc\x02\xbcT\xe0\x02\x0c\xdf\xa5)pap\xb5^p\x11a\xce\x82;E%\xbbA\xd3\xe8\x04E\xf1\xfe_Wp\xddO!\x0c\x14p\xf3\xd7\x9b\t\x01\xb2J\x83K\xdfg[\x05n\x98\xe8\x05\x97\x9b\x811\x80\xfbi\x12\xeb;\xd0\xc4/\x1b\xb5\xff\xdc\xb9\x00\x97r\xc1\x02n\xee\xba\x8d\x9ez\x1a\xdcK\x98\x94\x06\x97 B\xbd\xe0j\x99\xdcD\xd5\x7f\xb1d\x0eA\xa6\xda\x7f\xd9\xfd\xd9\x0c6#\x05\xdc\x83\x90\xa2h\x9b\x06W\xa9Q\xe0R\xbf\x0en3I\xdd\x08\xee\xe4(Q\xe2\xde\x14N\x01\xae\xd6\xbc\x80\x9b\xb9\xf4#O\x81[\xf7`y\xfc\xa7\xc0\xdd&\xcb\x81f5I\x9b\xa2\xa7\xf1\xcd\x95\x13\xf7@\xa4yk\xf7\x04w\xf9G\xc1\xfd\xc1\x9e\x19\xeb6\rEa\xd8\x0eT\x0c\xc0B:\x80%@\xb2\x84\x00\xc9R\x95H\x0c,y-\x84\x04O\xe0\x17@b\xf0\xc6\xc4\xe6\'\xc9\xc8\x19\x18\xa2(faAb\xe8\x828\xd7\xe7\xde\x9c\xf8\x1e\xd7\xa9hI$\xe7\xffl\xc7\xa9\xcf\xef\xeb\xb4\xferr\xdb~\xe8=\xcaL\xdc4\xdc\xf0\xbe\xf1\xf3\x08t\xdc\x13\x85}\xab\xfc"\xabN\x01\x14\xe7\x8e\x86\xfc"\xfd0\x1aH\x97\xab\xc5\xd5\xab\xf9\xf1\xdcP\x97\x9f\xe2\xf3\xdf\x85\x7f?\x14\xa6T\xb5\xef.\n\xef\x9b7\xa6\x8e\x8e;z^\xa8\xb1\xde\xca\x15+an\xf9\x0f\xef\xa2*\xf7\x8eS\xd4\x15W\n\x9aZs\xc0\x8a\xab\xc2\x86\x9d\x13W\xbe\x92Mv_\xdb\x0b\xbc\xdaz\xd9R\xc9\xc3{Ws\xedX\xc4\r\xa7\xe9\x86\x8e;v\n\xe9y\xbc\xf1\xda*\xc3\xde\x9a[>\xf5\x8e\x05\xd7\x98\x8fMW\xcbi;\x88\xe6\\\xef\xa6\xab:\xaeC\xdf\x03,\xee\xa6\xd2c\xbe\xfe\x8b\xe4\x85\xbc\xd0\xe3\xdb\xfd\xa6i\xcd\x9d\xfby\x8c\x9c*\x9b?\x7f\xd9\x10A\xdc\x11s\xe1\xb5\x10+\x1c\xad\x13\xe7\x91njF\x90\xfc+q\x8c:\xe2\xca\xf9\x9a\\\x11\x91\x11W\x8a\xed\xb2\x85\xe8[eX\x93#O\x16\xb6\xf4\xce\r\xec\x8aA\xdc\xf0\xfa\xf5\xf5-\x89\x81\xb8\xe3\xa5\xab\xc5\xa7 En\xf5V!}Ct<\xd9\x15W\xfc\xd1\xd4\x8a\x98X\\\x1dB]#Z\xad\xd7EQ\xbc]\xef\xd0\xb4r\xa6\xc9\x8b\xa2\xe5\x8f)q\xc3\xd5\x8e\x1b\x86\r\xea\xfe\xe2:\xc4\x1d1\xb3*\xe2#9\xee\x18\xbdE\x0be\xd3\xf6\xbc\xa4+\xae2 \xae\x85H\x86j(f\x9exr\xb2\xe4*\xae\x01\x1dw\xe4T1_\xc9q\xd7\x88\xdbk\xe5\xfcV\xc5\x9d\x10\x13\xe4\x95\xa7Y\xe2\x99\x87c\xb2v.>\x83\xb8\'\xc7\x93*F\xa6\x00\x13\xd3\x97#.\xe9\xd6\xc5\xb5]U\xd5\xbbO\x96\xf3\x04\x1d\xf7d)\xaa\x98\x8dX\xc4\x0cJ\xf9\x9b\x1c\xd9~q\xcf\xae/nF\x06\x99\xb2\xf4\x96\xe6\t:\xee\xe9\xc2s\x80\xb2\n\x1b/v\n zk]\x9erc\x8e\xcc\x98\xba\xc3J9 n\xe9/(\xab\x8a{\x96\x1b\x12On\x99\xa8\xb8~\xa0\x12\xe2\x9e\x0c31R\xa5\xfbN=\xe2.$\xb3co\xb9\xd2Oka\x1a\xaa!S^%niVr\xdc\xf4\x9b\xe8\\\xbf\xda@\xdc1#\xb6\xed\xde\xf6h\n \xbc\xd9uBvD\x91\x95S\xe3m\xbf\xb8R\xd3\x1cS\xde\\\\\xb5V\x16\x88;n.J\xbe\xc9\x8c>\xc4S\x00qR\x8a\x9ak\xfd\xae\x89vC\xa5wFS\xbd\xe2\x96\x1a\x08\xe1\x1b\x8b\xeb\x87\xd3\xebC\xdc\x91\xb3(\xe5v\xeb\xc3\xba\x15\xf2\xbc\x93*BQ\x83\x1b\x97\xa2yW\\!\x84\xae\x10W\xe5\xd2\xd1~:f\xffL\x18K\x90\xa7\x10w\xd4Te\xc4w\xf6\x96\x97\xb3XoA\xd5\x90\x86\xfb\xac\xaf\xe3jh\xc5!+\xae\x14uw\x0b\xd8\x8e\xeb\xc4\xad!\xeeX)\xca\x98oT\xdb\x8f\xed\xcb]?$&~\xe7]q5"4\xbd\x1dW\x88;\xa4\x95\xd0PE\xcak\xc6\xa4\xd1q\xc7\xcd\xa2\x8cY\xd5\x8e\xb9q\xcd\xc6\x9c\xe1iG\\C\xc3CYq\x0f\xc3\xa6f \xee8\xb1\xae\xfdl\x85\xac\xb3=z\xfft)\xf1{X\\\x0e\x1dO\\\x82\xb8#\xc5\x1a\xb9\xack\'[n\x8c\xb41\xce\x9d\xef\x15\x97A\xc7\x05\xb7L\xfa\xdd\xfejV\x93S\xd2\xeamcL\nq\xc1\x11\xb8\xe8\xed\xa4L6\xac\xb7\xc6 .8\x02\xb3\x9eN\xdargHo\x8d\xe5\x10\x17\x1c\x81\xe9BXnY\xd7=\x7fS\xb8\x90\xd4s\x8d\xad4f\x86[\xeeB*\xae\x89\xfdo\x9a\x9ay\x94\x80\xd1\x92\xd5\x11\xbd}jR\x1b\xb2\xfd1\x11\xd7rV\xff\x7f \xee\xb8I\xbf\xd41\xe9\x90\xde\xca\x04\xe2\x82\xe3\xf1\xe8Z\x9d4\xfd\xdc\x13\x83\xb8\xe0x\xccm\xc3\xbd\x96\xde_R\x88\x0b\x8e\xc7\xdd,\xe6^o_\x1e\x8c)if\xe8\x9dQd\x87\xe1N\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x03\xf2 `\x8f\r\xb3oH\xb7\xd7\xb1\xf6\x93\x1c\x88\xe8\x927yyZ\x04\x87\xe6\xe5\xd3\xc7\xc2\xeb\x87\xdb\x1f\xff\xc3\xd7\x8f\xf7\xf3\x97}\xb3\xe9Q\x1a\x08\xe3x9\x1a\xdazh\x96\xb4!H+\xb5\x95"z\x90\x18\x12cb6\xde\xf6\x13\xac\xc9\x9a2\\d\x13\xe4B\xf0\xe5\xda\x84\xd3\xf2\x1d\xfc\x00\x9e=y\xb2\t_\xc0O\xb11\xd9#g\xa7<3\xf3\xf4\x05J\x8b\x89\xbb1\xfd\x15\xd6\xa5\x19\x86\x81\xfe\xe7\xff\xbc\xe0\xb6\xdc}\xc2P\xf4\x08O\xa1X\xf0\xa0\x08^\xa7\x94\xfa\\\x8e\\R\xb6V\xf2-t\xba\xc7/\xcf\xe2\xcf\xf5,\xa9\xe2_!\x03\x9d\xee\nh*\xdc=\xe4\x96\xbf:\x88\xbfW\xb8lF_\xd7\x9b\xba"\xb7V\xc5\xf0=\xb7\xcc\xe2\x15\x8fQ\\3\xb8:|\xc7t\x93\x92U!\xf4\xacp]\xcf\xe7k\xef\xc8\x94;\x17[\xfeK\\\xa5\xb5\xc5k\xfa\x8c.\x9c\xa0\xfa\xf5\xfc\x02({-\xdcgP\xedvp\xae|V\xddN\xa9\xd5\xebB\xf0J\xb9\xed\xdaj\xfa\x9c\x96\x1c=\xf6\x8b\xe1\xb9\xd9\xcd\x13\xfb\xe8JaU\xd2=\x9e\x8e\xbeOA\xae\xdb]\x1d\x16Zs\x9f\xd3Y:\x8eQ\xa8\xa1\xfb\xb9\xe0\xd0\x92\xab\xe7K\xdc\xb7\x8e\xbc\xd5\x01\xdd\x0el\xb3b\xb4\xdc\x9c\xa9\x90\xa2sU\x94\x07?\xf6\xd5\xf6\xa0\xac\xd8m\xb5\xf5!P\x05\x9c\xd8s\xf8\x18:3\xf1\x13\x9e\x0b.u\xe8\xea\xae\xd0\xfd\xca\xad\xbe\x19\x93_\tP\xa7\x90(H\x9d\x02\x11\x01G#\xf8\xcc\xf2\x10E\xaa8\x1a\x8cs\xab\xf4\x15\xb2\x9a \xe4<P0\xd9\xf8\xc9\xd1-M\xc3\x87;\xe4\x8ft-\xc3\xa8\x95Iq\x9b\x18\xc2K\xbfk\xa0\xfb\xc4\xd0j\x10x\n\xd0Tj\xe9\x9c\xc3?\x16\xbd*\xe5\xfe\x02%&\x9c\xb8N\xa9p\x15}I\t\x88\xcf\t\x96\x0c<G\xe6Ccw\xed\x83\xc6\xf2|h\x9b\xad\xa6x\x0eY\xa6\x08|\xce\xe8]\xa8\xb6\x9d2\xc6)&\xf5\x1eI\x05\xc8\xaeny\x13\x86\xb6!E\x9b\xb4\x08\xc1\xc0I7\'\xfcc\xa1\xc1\xaa\xa2<\xf9\x86\xb1\xa2v\xe0\x0e\xd7\x94I\xc0O\x8d&k\xc6\xef\xd8\xb9\xa1v`\xda\xc5:\xec\x9b\xeeP<g\xb1Y\xc7\xf9\xb8\x99\x8bm0\xff\xa8\xaa=\xa3\x84p=!\xdc\x89Y\xe6M\xe3\xc6\x9b~V\xfbf\x8dZp\x10\x87\xe0\xb6\x0b\x12|B\xe1\xe2\x168\x0e\xe2U\xc2-E\xa1\x0f~5\x1bj5[U\xd5\xcf(\xabO\x1fU\xc6f$\x1c\xe8\xc6\xcc\xa9}\xc0\xd2T\xb5mh\xf6\r\xe1\x12S\x93\xac\x17\xfc\x15\xc6\x9bh\xe8Q\x95%\xb91\x8f\xaa\xccfk\xbaUjt\xa6\xd3M\x8c\x1b\xb1$2\xbb\xd9\xc4Y\xdbF*\x93/\x01\x81;\xd9\x1e>y\xf5L\x93*\x8e\xaf\xcd\x88\x9f\x86\x10\xe2\x7f\xa2bkSY\xdd\x041\x05r~\x13q\xf2\xa5\xb3\xbb2KX\x9a#9\xed\tN\x83$v\x06\xf9Mu\xeb\x1cQ\x9b\xe1:\xb2\xe4\xafn\xf9\x9bm\x15\xc3N\xac\xe9\x8a\x88\xe5\x87j\x82\x9e\x96\xca\xb1II\xd0\xec\xcf{\x95p\x8f\xa6s:\x9dD\xcc|\xc6\x18\x1eO\x1a=\xadN\x85\xbb\x9e\xc5\x15\xc8\xf8<%b8\n&]3\xa1\x8b\xd2\x0bd\xbe\x9c\xe3\t$\xbe3\x08u\xf4\xb0W;N\xb8\xb3\x81S\xae\xa2\x03\xe6\x90(HR\xf4^\x91\xf5\x98\x1bd\xf0.)\xdc\xd0L7\xc1\xdfL/\'\x85\xa1C\xafF\xe0\xba~\xd00\xa5\x8a\xa31\xe1\xc2L}\xc6T\\!\xcd\xec\xab\xea\x84\xf8Y\xc1}\x9c\xfb\x9c\xabA=\xb77\x1cD\x96F\x87\xf4\xd6\x9f08\'\x13\x05\x9fq\xb1\x81\xa1\xc5\x91\x15\x12\xaf\x11\xcbgG\x17\rU\x85\xd8\xef\xf4\xd5\x18\x8d\x00t\x1b\xa9KM\xf0\xcdI,@\x06\xab.\x04\xce\r\xca=\x1c$\x0c\xa9b/=\x16\x1bQh\x005"\xc7n\x0f\xce\x84\x02\'\xa1\xdao\x03\x83\x05\xdapZ0\xc9f>a\x96V3\xc5L\x8b\xebv\x1ca\xde\xa3\xe8\x05\xcc\xcc\\V\x0eJ\x97\x08\xb7>\xb5\xf6\xd0qwt" \xcb\x1c]\x8a&\x86\x99\x14\x97\xc8D\x97k5A?%\xb6\x1a\xdd\xdd\xa5\x08\'\x01\xe8\xf6p\x90xx\xbfR\xee^4;\xe9{c\x9e\x81R\xef\xabi\x8f<\xec\rD\n\xd4\x00\x8c\xb5\xc1\xbb\x9e\x96\xd7$]n\x98\xa5\xe1s\xe6\xb6\xa1\t\x0c\x1c\xbbXC\x02\x99\xfef6\x8f\xad\x04\xe1\xb6w\x8cne\xd3\x0b\x02j\xa7/\xd9g/i\xb6\xe3L\x08/\xa6\xce\xae\xfb\xed8\xe0\xcf\x88\xd3V\xe3\x9c\x1c<\xc2)\xd9\xd6\x10\xe4`\x90x\xf8\xfa\xfbC\xa9\x02\xd9\xf5\xc1o\xc6<\x90o\xb8p\r&Atb\xdb\xc8t\x93\x96;\xf2\xb4\x8e\'J\xe8\xd1TX\x9a"\x9a\n\xbd\xf4X\xb0\xb6\x06VfE\xabvx&\xdc\x8avK]\x8f\xf0\xca>h`\x13\xc3\xa8\xc7x\xe2\x11>5m\x7f\xd5\xe3\xa4\xbe\x1ey4\x08\x8b\xc2T}\xbd`s\x8f.\x87\xda\x01\xdd~\x7f,U\xec\x15n\xf4\x99\x86\xe7\x01oy\xad\xd5p{\xd8ZB6W\x9f\xd5\xf6\x13y\x8b\xab\xe8\xa0K\xac\xcd\xb2\xb5\x0fx\xe1L\xb8\xa8\xdcb\'\x97\xe7f-\xd9P\x85\xb1\xf3/a\xf8\xcc\xa5\xd3\xa7\xf2Q\xe2\xe7 "z\xce(ON\xaf\x0e\x1c\x8f\xbed67\xc1W%E\xd4\xe5\x9e.\x8ary\xdd\xdf\xb2^\xfa\xd0[\x08\xce\xcdC\xba\xfd\xfe\xba&U\xec\xc6p\xcc\x88\xe7\xdc\xb5\xe6m\x13pP\x82\xac\x8a\xe9)\x1e\xa0\xc3\xc9\xed\xb5o\xd7w5IE\xdd,\xca-\xd9c\'\xc7\x03\'1\x96\xfb\xdfx>\x7f\xeaQ,9U\xe6\x91b\xc7>|/3!\x1b\x7f\xb1VOlmO\x8f\x10\xc6\xecJ\x85R\xb3\x15d\xd5}fn9\r`n\xa8\xcd\xf2tKy_\x97*\xf2\x90Et\xbf\xec\xa5\xcao\x10h\x14\xf2_\xe8\xe9\x18\xed\x8f\x1b\xb6\x91\xa9\xccx\x98EK\x83\xb9@\xee\x8bA=\x11\xb6\xb9r\x19M+\x9d\x90\x92\x82\x87\x9f\xb9\xc3\xe4-9\xb5:8\xa2j\xf3dO\xd7\x98wg\xb7\xf1A\xca\x17.)\x88\'\x8bF\x08\xcc}\x01\xc2\xcd\xd1-\xe5\x81t\x8bh\xce]5|\xd9R\x18:\x17\xd0\xe2T\x01:4\x8es\xd5D!\xbf\xff\xcc\x13\xea\xc2@\x1af\x0cIi\xf2\xa9\x12\xe5\x96\x05NGh\xff\xccH\xb6\xef\xc1\xda\x98=6Qf<3.|\x10\x9c,vo\x9e\xd6\x13\xab\x13\xfe|\xd6\x08\xaf\x87\x1d\x8a,\xa5a\xea\xceS\x17\xee+R\xe4\x06o\x0cv\x0e\x83\xee\xe0<\xdd\x02\xf7\xa5[\xa3\xe6\xb4\xef\xf5\xee\xa8r\x85a`\x8dC\x18\xba\x05q\x10\x9a\x99\xe7\xaaj\xbf`\x8a\x8cF\xc3\x11\xfcXC\xf7>\x86\xdbE\xf9,\x1a\x8d\x97/\xa2\x86\x94,\x14\xe3\x93K\xbb\x96\x8a\xc8p\xc0\x8fn\'\xd5T\x80\x15\xe5\xe7\x06>\x0e\x80\x1fx\xa7\xd2\x1b8\x89Z\x8f\xf0\xf9.~\xfc\xd8\xe6&\x8a\x9c\x8d?b\xe6Enc\x19v\x1e\x9b1\xff\x97\xa6"\x82\x0c0\xfa94\xf2t\x0b\xbc5\xa4\xdb\x00dK\xb1\xef\xa6rc}+\xee\rX\x8b\xbb-a\x18W\xd7\xd4p\xbbB\x1f\xa8\xdbt[3\xee\xd2\x84\x90 \x08\xa2~\x94"s\x05R\xde\xf5j\x98(\xa0Q2_R\xd2y\xc7\xd9l6\xfb0\xcb\xb08\x1b\xc5\xd4\x1a\xb0A\x1f\xf0\x1f\xf1\xe0\'\x18\x1b\xae.\x95\x0f\xef\xfaS\x1c\x14\xee\x95\x9d\xa7\x1c\xb7\xd5$\x05\xd1_h\xbc\xee\x03 {\xce\xd1\xedm\xe6\n\xb5\xba}\x0f\xb0\xef\xe2\xb7\xd2p\x1d\x01\xac\xcfYI\xd3AU\xd3\x1a\xebdHU\x16\x87\x04\xcb\xe9\xf5\x89\xe8&\xa1\x89\xc6L\x90\xc0H\xcf\x8dL\x8c\xc9\x1e\x93F\xac\xef\xf1\x16\xfd\xdf\xd8\xc4\n\x9f\x0c\xc2\xf0\xd7\xae\xe3|\x89+\x0f\xbe\xfe\n\xd9\xb0\xec\xe8\xd0\xd6\xb2\xabC3L\xe5&B\\\xc0\xe8k^m\x86\n\xc7\xa8\x80\xbf$Y0\x7f\xb5\xb8\xd4\xa1\xbb\x92\xa3\xdb[\xcc\x15\x8c^\xff\x1e\xa7}\x07\xbf\x04\xf9\xc3\xdd\xd9\xec(\rEq\x1c\xdciA\xd3\x14\x06\t0\x14\x07A\xa7\x83.$\xc2\xf8\x91\x18\xb7<\xc1\x98`,;M\xc4\x1dq\xab7a\xc5C\xb0\xe8\xd2\x15kL\x06L\xe6\x05\x88\x89\x0bgEx\x06\xb6\x9e\xcb\xb9\xf7\x1e\xe8\xad\xed\xa8\xe8\x10\xff\x85\t\xad\xfd\xb8\xd0\xdf\xfd\xdfsN\x0b\x82a\xa8\x10\xc1o\xa7\x85\x83\xc3\\\x8e\xf5Wz\xfb%\r\x99\x19\x9f%\xf5^\x9f}I\xa7\xd3\x8e\x15P$%\x0f\xc5\xa0CF\x10 \xc8\xcd*\n\x0f\xd8#WG\xa9]/\x167Og\xa5\x98\x0e\xd4\xd9\x80\xba\x07{\xf3%\x1d\xa2r\\\xe3\x8c\xa4\xddZH|#]\xa1\xe0\x12\xe1\xf4\xd1\xc0+\x12s\xe5\n\xe3\x06\xee()\x97P!1\x80[\xd2\xb3+\xb1\x7f-\xcb\xe6\xd8\xee2\xb9\x1c3\x9f\xe5\xa9\x10\xb6\x00\xd7Z\x1f>\xde[\xe9\xcb\xf5O\xceA\xa9\xf4\x1cgQ+l\xe9\x8a\x81~\xb3\x94t\x1f\xf1\xcd\x98\x9bb\xf6\xbd\x1a\xb9\xf9\x01\xea{\xa0w\xea\xe0o\xb4<\xdf\xae\x05s\xdb#\xf4\xd8t\x96\x0e\x93\xa3\xb7\x8et3\x19\x18A\xa9\x9e4\xb7\xe3a\xe0\xca\x15\xd9p\xb1\xd8\x0b\x98NZ\x1d\xa1\xa1\xe8?*7k\xd5\x8d\x10n\xc9q\xff=\xb8\xf6\xd5M\x15w\xae&\x87ER\x82v\xcd\'\xd9\xf3\xa3R\xe1\xa9\xbc\xa5\xe9\xcd\xdb\xc3B\x81\xcf\x92\x86\xc37\xd3\xe9\x9b\xe7\x96o\x87\x84\xad\xb2\xb4j\\\x16\x15\xb8\xde6i\x13\xcb\xa9q\x08\xd5\xc9\xed\x9d\xa5k\xbe<\xd6\x0e\xe6\xf6}\x874\x0e\xe7\xb6f\xeb\xfeHzpT\xa1\x9a\x0fe\x84R\xef\x80\xae\x10\xd1\xb8\xbf\xc8\x07j&;\x98+B{**\x0c\x1a\x81N\x16\x7f\xb4\xc9\xed%\xd8\x9dU\xf6\x91[\xab\xfcn\xa8\x1c\xdfznG\xc5\x1c\x1d5\x1c\xc8\xa0\xfa\x15%\xac\x91\x92\x12\xfc\x07D qz\xd7\xa7u\xda\xcf\x1d\xa7\x12O(\x13;qh\xfd\n\xe7v6P\xd6y\x02\xe3z\xd6\xf7\x19j \xe2&\xa4\xf6\xc9\x0c\xf51\x90[\xb4pj]\xaf\xd7e\xb4q\xaf^,\xdb\x1a\xb8\xf4\xce\xdf\x07\xd3\xa5\xf6\xc8\xa4}\xce\x82\xc1\xddk\x91u\xfb\x8b\nN\xf0\xae\xef\xacs{\xe7r\x92z\xbb\x16An4\xb0\xd9\xdb\x95\xa3\xfb\xcd\x06v\xfcm\xeb\xe0\xc1`,\xd4\x97\xec\xb6p\xfee\xe3(\xa2\xb6\x8e\xe1\xabv\'Wsqv\xc6\x07\x7f\xe54\x1f\xc1\xf3\xe2\x89\x02\x13\xf3k\xe0\x1a+*O\x98\xf2\xa0\x99\xb0GR\xd6.\xeb\xaa\xdf\xeb\xac\x83\x0b\xefa0\x18\xdc\x1b<m\x94\x83\xa4\xf8H\x1c\xf0\xd6-\x16\x93\x96\xda\xb6\xbf\x97\xce\xeb\x03a\x95\x9cy\\\xb6Bs\x04&\x01\xff\x18\x0c\xee\xa4\xafzH\x85\\?4zN]>\xb7`)~r\xed\x0b\x02kY\xd9\xdb\x00l\xb3\xfe\xf81\xda\t\x84\xf6\xdb\x14\r\xd5\xa8/\x83W\x124\xb1\x04\xca\xb6\x9dH\xf9\xbf\xe1\x9b\xc0\x98t\x8f\x91\xa5\xcdx\x02G&\xd6\xaf\xdbt\xf44h\xd1S\x04\x02E\xfe\xe2S\xdc\xd2u\xb0>\x14\xb8\xf0pe\xb8j\x05)N\xad\x8b\xdb\xb5|>\xbd\xd7\'.?\xe6\xb1\x10\xed\x0fx\xa8\xa8\x10\x0f\xcd\x11\\\x19f\x07\x83\x9b\x1e\xba\xb2S\xd6\r\x15\\\xb8\x1d7$z\xbeB1\xee\xb5\xd8\xa5\xc9(^\xdd\x94\xd6Z\xedD!\xb0\xf5\xc7g\x80+<\xa5\x9a\xb1\xed+\xab\x06\xe2\x8f\xef\x89\x1e\t\xae\x1b\r\xeeaU{\xbf\x9b#y\x1b-\r\x8b\n\xe8<G\t\xa1J\xb9\x08\x9a*H\xa6\xb0j\xe5B_\xec%\xb5\x06}_7\n\x93q\x8ca\xa7T{\x91\xc7\xae\xa2\xe7f.<\xc2JV\xc2>]\xc4\xb0?\xa9\x99\xa6Y\x14\x0fRq\xd0\x11\x9c\x0e\x85u\'\x19\xccqu\xd1\x82Cb\x85\x17\x97z\xb97\xfbK\xe4\xda\xdcb\xcfV\xe2\xd0n\xb0\x0bN\xb5\xfd\xc6Ip\x17-\xe9\x90\x8bt:\xcf\'\x07\xf8\x88\x06\xd7\xf2[8\xdf\xf6\xb5B\x9e\r\xd1\xd2\x94\x89\xb9\xe3\xfa\xc3\xa4P\xe1\xe1\x91a\x90\xaf\xb7\x80"\xcd\xdf"j\xfe\xad\xf9F\xb8[HD\r0\x00\xee\x90\xf1v`\xeb\xd2yS\xc7\x87\xc7\xe3\x82\xdcwu;<G\xc0=\x01\xb8\xceQ\x90\x1e\xca\x15\xdc\x89\x88\x90\n\x88zX\xf4\x9c\x12u\xb0T\xecR\x15w|\xe4\x86\x9d\x9c\xcac\t-2\x0b\x0f\xa5\xc7\xb7c\xdb\x96\xa1jM{m\x15g\xe6\xf3\x1c\xbe\xdaZn\xe6\xb2\r\x91\x13\xb3\xa7\xbenX)bB"\xd5\x85\xbd\x81\xd5P\xfa\xed\x0e\x9btg8\\Q\xab\x1eR\xc5\x14\x02\x05\xe3\xa2\xdc\xa2!\xb6&\xf9\xfc\xa2-f1\xe4\x0eS\xc5\xcc\xe3\xfa\x08\x0f\x7f\xaf#\xc7\xd2\xc1E\xb8\xe0A\xb5;Md\x9f|b\xad\xbb\x81\xba\x89G\x82\x15\xe6\x8e\xdc7n\x11\x12=g\x9f\xed\x02\xb7zY\xach\xc5B\xc9\x9d\xd1\xb4\xa9\xfa\xd6*#t\xb4\xe1x:\x9d\x8eO>\xaa$B\x06k\xc5\xfbT[\x1f\x9c\xec\xadi>fT\xe5\xdc\xec\x85\x16O\xa5\x1a\xf7:\x04c\x1eG\x7fUT`\x13\xa7t\x93\xc6\xf6\x12,\xa7\x1e\x83\xe1f4\xb7\xee\x1a\xb7\xf9\xcfS\xa6\xc8u\xb5\xd0%\xb0u\xb82\x06\n\x08\xa6VTpq\x1a\xeb\xa9\x85N8\x9f~&WL\xedzJ\x05\x17.(\xf4\x92\xdc\r\xce\xed.|\xf7a\xad\xb8P+GDqG\x8f\xcf\x08Z\x1f\xbb\xcdm\xe7\x98\xc6\xf3\x15\x83\xaf\xee5\x9f\xba2\xe9/:+\xd9\xc4\x17\x9b\x04g\xcaz\x9cf\x19\x86Q)\xa8\x81\x96r\x1fUT`s\x9b\x9fn\xa1\xdc\xdd\x9br\xdd\xfeD\x0b7\x83\x7fq\xb7\xe3R\x00\xfa9\x0fZti\x91\xf6\xc3^A\xad\x93.9\xfd\x9c7\xed\xa0\xceqW\xe18-G\xe6f\xae\x7f\n|\xc8\xa2B\xe9.\xccaT\xfc\xf3\x917\x05\xdc\xeeF\xcd_\xa6h5\x07\xdb\x13A\xae\x08\x12\x88\xda\xbf\x15\xe6V\x91\xa1\\R\x15\x80\xdc\xf1\xf3$\xa8T\xc5\xc1]/\xaes\x8b\xa3\xcb\x98u# aQ\x96\xd6\xc2\xdc\x87N1\xec\x0bN\xe0\x01\x81A^\tNoV.\xc2\xad\xda\xb6\x7f\xca\xb9\x1dAGb\n\x1f\xf7\xf0 \xea\x92\x8b\xda\xbe\xbb\xc8{N\xf6\xe7\xebp\xc2N\x9d\x88\xdc\x8c\xabC\xcf\xe0\x07\xf7\xd7\x86!.&\xbb\xb8M+$z\xce>{\xb4\x1b\xdc\xf2\xf4\x9d\xc7\x08v\xf6B\xfe,\xe2[M\xdff\xb3Jl{\xa2\xba\xcf\xcd\xd2\xda]%\\<?O\x8a3\xac\x15\xd7\xbf\xf5\xc8\x90\xf4\x91\xb4J\x86\xcbN\xf3\x00\xa3<\x90\xbbZ\x0c\xce\x93\xbd\x8d\xae\xb7aV\xab\xcc\xcc\x8a\xe6\x966b\xc3\xcf^\xde;.\x9b\xf9\xe5@-\xc4[f\xc2{\xaa \x87\x9d\x8e<\xd1:=7C\x1e\xf1\xaaA(\xb8>\x9f\x05\xe9\xafA\xeds\xf9\xfd%&(\xa7\xc1*@\xfb\xbbsw@\xbcL7\x8fD\xe9\xfe, 5\xfb\x06\x13$h\xdb{G\x94\x15\x03\xb8%I\x84*s\x89\x01\x9d\xff\xe9n\xd6(g-Af`\x953\x99\xa3\x00\x91r\x9f\x03\xb9t\xda\xb0m\xa7y\x0f\xab\xaf4\xb1\x13`\xd0\x88\xe6\x96\x1c\x8eM\x97\x9e\xe7\x1dW\xb2eo4\xef\xa3\xe1\x81\xe0\xbdDE\x1a\xb2uK\xcft\xac\xc0\x95\xfa\xae\x10t\xb3\xf0\x8f\xcf\xdd\x14"L\xaf\xe5\x8b\xfe\xe9r\x7f\xf5\xcb\xef\xa5\xbb\xf2\x1f\xc7\x8d\xdd\x81skr4\xc7\xfd\x86\x7f\xbf\xcd\x1a\xdb\x0bs)e\xca\x15\x84\x07\xcaR\r+@\xba\xef\xca$h\xfc\xd9\\\xd7\xa2-\x19\x87TY7!\x05#\xcf}$\x8c\xa5\x9c\xd8\xe2\xd41\x9c\xd1h\xd1\xc2=\xab\xe9\x03P\x14\xd5\xb1\xc5YG\xf2\x90[3\x15\x87R\x81\xf7y\xc8\x17\tT\n\xd5(\x8bD\xc7[x^9\x1b\xec\xcaLb7h\x84\x17\x15Ts\xc8x\x03^\xb3\xf6\xe9\xd2K\xad\xbem\x82\xdcrMw\xf4\x0e\xed?%W\xd37\x8e-<\x9d\xed\x86\xb8\x18\xcd\xdd;DG\x94g!\x97\xa4\xda:\x8c\xc9\xe5\xca\xba\x9e\xab\x90\x12\xaf\x82\xe9I\xbf0\xd7\xcf#\xd3\xae&\x128B\xa2\x1f\xf6\'v\xacr\xec\x8dN\x99\x0c\n\xd1\x91\xe6#\xa4(L\xc8\xad\xa8.\x8d\x81[d\xddr<\xefk\xd7\x95\n\xcb\xcf\x12\x85\x9cr\xc3\xe1rd\xf2K!\x81)\x17\x8a\x8f\x0f\xd9\xf0\xa2\x82\x10\xeb\x87\xa8==\x87\xa0\xe4\x16\xb4?G\x0e\xcd&\xbb\xfa\xa5\x98?SS:.\xc5\t\x1c[\xf8\xbb\xc50\x97b4\x96\x93\x05I\x11)\x96b\x14<@\xfe\x9bXS\xe9&_\x18<\x92\xc2V\x04d\x17\xbf\x19\x03\x0eH&\xd6?O\xc5\xe2\xb6\xe7-\xbb\xb8\x0e\xd9\xa7\x99\x8an,Iq\x0b2\xa0#L\x18\x8d\xcd\xc1\xd7\xcf(3Bu\xa7S\xde\xbadU?\x10\xad5\t\xb5E"\xbcw\x1e\xa2\xafK/\x9396\xc0%\xd6\xd4=\xdf\xff/\xc1\x8d77\xb0\x85\'N\x80\xee\xd2\xd8f\x88\xeb\xcb\x87\xc5l\xab\x99M\xa2;p\xc7\xed=(\xacI\xc6\x99\x1dL\x95\xfd\xa7\x92D\xd7aq9\xe6\xd2\xb7\x04i}y0P\x0b\x86m\xc7\x8a\xe0\xf6P\xd9-p\xfbu\xc5-n\x12\xb7Mo9f\xae\x14\xe4ga\xa0Q\xf30\x0b\r\x89\\\xd9|\xffB]\x89\x9df\xa2tM|\xa0j\x0b\xf3\xf2\xaf/\xfc\x15Y\x1b\xe4\xcai\x85n\xc3\xdaZ\x88\xab\x021\xf5@x\xdf7\x8c\x82?\xd7\xd0\xd5^\x94\xb3\xfe\x98YRM\x1b\x1eV\xd7'... (set the log level to DEBUG or TRACE to see the full content)
|
|
</msg>
|
|
<msg timestamp="20220817 15:12:02.504" level="INFO">POST Response : url=https://api-client-ztb-test.qniao.cn/recycle-user-center/file-uploading/upload/image
|
|
status=200, reason=
|
|
headers={'Server': 'nginx/1.16.1', 'Date': 'Wed, 17 Aug 2022 07:12:02 GMT', 'Content-Type': 'application/json;charset=UTF-8', 'Transfer-Encoding': 'chunked', 'Connection': 'keep-alive'}
|
|
body={"code":0,"message":"successful","data":"https://qncloudtest.oss-cn-shenzhen.aliyuncs.com/common/26104836617648290.png"}
|
|
</msg>
|
|
<msg timestamp="20220817 15:12:02.505" level="INFO">${reps} = <Response [200]></msg>
|
|
<status status="PASS" starttime="20220817 15:12:02.394" endtime="20220817 15:12:02.505"></status>
|
|
</kw>
|
|
<kw name="Get From Dictionary" library="Collections">
|
|
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
|
|
<arguments>
|
|
<arg>${reps.json()}</arg>
|
|
<arg>data</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${Image}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:02.506" level="INFO">${Image} = https://qncloudtest.oss-cn-shenzhen.aliyuncs.com/common/26104836617648290.png</msg>
|
|
<status status="PASS" starttime="20220817 15:12:02.505" endtime="20220817 15:12:02.506"></status>
|
|
</kw>
|
|
<kw name="Set Global Variable" library="BuiltIn">
|
|
<doc>Makes a variable available globally in all tests and suites.</doc>
|
|
<arguments>
|
|
<arg>${Image}</arg>
|
|
</arguments>
|
|
<msg timestamp="20220817 15:12:02.506" level="INFO">${Image} = https://qncloudtest.oss-cn-shenzhen.aliyuncs.com/common/26104836617648290.png</msg>
|
|
<status status="PASS" starttime="20220817 15:12:02.506" endtime="20220817 15:12:02.506"></status>
|
|
</kw>
|
|
<kw name="Evaluate" library="BuiltIn">
|
|
<doc>Evaluates the given expression in Python and returns the results.</doc>
|
|
<arguments>
|
|
<arg>open('./common_26091119022578881.jpg','rb')</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${OutFile}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:02.507" level="INFO">${OutFile} = <_io.BufferedReader name='./common_26091119022578881.jpg'></msg>
|
|
<status status="PASS" starttime="20220817 15:12:02.507" endtime="20220817 15:12:02.507"></status>
|
|
</kw>
|
|
<kw name="Evaluate" library="BuiltIn">
|
|
<doc>Evaluates the given expression in Python and returns the results.</doc>
|
|
<arguments>
|
|
<arg>open('./common_26091119022578881.jpg','rb')</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${OutImage}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:02.507" level="INFO">${OutImage} = <_io.BufferedReader name='./common_26091119022578881.jpg'></msg>
|
|
<status status="PASS" starttime="20220817 15:12:02.507" endtime="20220817 15:12:02.507"></status>
|
|
</kw>
|
|
<kw name="Create Dictionary" library="BuiltIn">
|
|
<doc>Creates and returns a dictionary based on the given ``items``.</doc>
|
|
<arguments>
|
|
<arg>file=${OutFile}</arg>
|
|
<arg>image=${OutImage}</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${File}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:02.508" level="INFO">${File} = {'file': <_io.BufferedReader name='./common_26091119022578881.jpg'>, 'image': <_io.BufferedReader name='./common_26091119022578881.jpg'>}</msg>
|
|
<status status="PASS" starttime="20220817 15:12:02.508" endtime="20220817 15:12:02.508"></status>
|
|
</kw>
|
|
<kw name="Create Dictionary" library="BuiltIn">
|
|
<doc>Creates and returns a dictionary based on the given ``items``.</doc>
|
|
<arguments>
|
|
<arg>type=image</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${type}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:02.508" level="INFO">${type} = {'type': 'image'}</msg>
|
|
<status status="PASS" starttime="20220817 15:12:02.508" endtime="20220817 15:12:02.508"></status>
|
|
</kw>
|
|
<kw name="Create Session" library="RequestsLibrary">
|
|
<doc>Create Session: create a HTTP session to a server</doc>
|
|
<arguments>
|
|
<arg>order</arg>
|
|
<arg>${ztbClient}</arg>
|
|
<arg>${Header}</arg>
|
|
</arguments>
|
|
<msg timestamp="20220817 15:12:02.509" level="INFO">Creating Session using : alias=order, url=https://api-client-ztb-test.qniao.cn, headers={'Authorization': 'QNT iHP4V/g6O5DXHixyNrf7tpO/qkx7j1gsqvbpL1KZGKCI5sLXsbsYUBhm9ec3GSn4S+LPw1rEn/lfuq9hvHeHHw==', 'X-APP-ID': '503258978847953926', 'X-FACTORY-ID': '738816441691803648'}, cookies={}, auth=None, timeout=None, proxies=None, verify=False, debug=0 </msg>
|
|
<status status="PASS" starttime="20220817 15:12:02.509" endtime="20220817 15:12:02.510"></status>
|
|
</kw>
|
|
<kw name="Post On Session" library="RequestsLibrary">
|
|
<doc>Sends a POST request on a previously created HTTP Session.</doc>
|
|
<arguments>
|
|
<arg>order</arg>
|
|
<arg>recycle-user-center/file-uploading/upload/image</arg>
|
|
<arg>data=${type}</arg>
|
|
<arg>files=${File}</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${reps}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:02.611" level="INFO">POST Request : url=https://api-client-ztb-test.qniao.cn/recycle-user-center/file-uploading/upload/image
|
|
path_url=/recycle-user-center/file-uploading/upload/image
|
|
headers={'User-Agent': 'python-requests/2.26.0', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'QNT iHP4V/g6O5DXHixyNrf7tpO/qkx7j1gsqvbpL1KZGKCI5sLXsbsYUBhm9ec3GSn4S+LPw1rEn/lfuq9hvHeHHw==', 'X-APP-ID': '503258978847953926', 'X-FACTORY-ID': '738816441691803648', 'Content-Length': '143263', 'Content-Type': 'multipart/form-data; boundary=1b281c1086aa3e809976c0d37efc2e81'}
|
|
body=b'--1b281c1086aa3e809976c0d37efc2e81\r\nContent-Disposition: form-data; name="type"\r\n\r\nimage\r\n--1b281c1086aa3e809976c0d37efc2e81\r\nContent-Disposition: form-data; name="file"; filename="common_26091119022578881.jpg"\r\n\r\n\xff\xd8\xff\xe0\x00\x10JFIF\x00\x01\x01\x00\x00\x01\x00\x01\x00\x00\xff\xdb\x00C\x00\r\t\n\x0b\n\x08\r\x0b\n\x0b\x0e\x0e\r\x0f\x13 \x15\x13\x12\x12\x13\'\x1c\x1e\x17 .)10.)-,3:J>36F7,-@WAFLNRSR2>ZaZP`JQRO\xff\xdb\x00C\x01\x0e\x0e\x0e\x13\x11\x13&\x15\x15&O5-5OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO\xff\xc0\x00\x11\x08\x048\x07\x80\x03\x01"\x00\x02\x11\x01\x03\x11\x01\xff\xc4\x00\x1f\x00\x00\x01\x05\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\xff\xc4\x00\xb5\x10\x00\x02\x01\x03\x03\x02\x04\x03\x05\x05\x04\x04\x00\x00\x01}\x01\x02\x03\x00\x04\x11\x05\x12!1A\x06\x13Qa\x07"q\x142\x81\x91\xa1\x08#B\xb1\xc1\x15R\xd1\xf0$3br\x82\t\n\x16\x17\x18\x19\x1a%&\'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz\x83\x84\x85\x86\x87\x88\x89\x8a\x92\x93\x94\x95\x96\x97\x98\x99\x9a\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xff\xc4\x00\x1f\x01\x00\x03\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\xff\xc4\x00\xb5\x11\x00\x02\x01\x02\x04\x04\x03\x04\x07\x05\x04\x04\x00\x01\x02w\x00\x01\x02\x03\x11\x04\x05!1\x06\x12AQ\x07aq\x13"2\x81\x08\x14B\x91\xa1\xb1\xc1\t#3R\xf0\x15br\xd1\n\x16$4\xe1%\xf1\x17\x18\x19\x1a&\'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x92\x93\x94\x95\x96\x97\x98\x99\x9a\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xff\xda\x00\x0c\x03\x01\x00\x02\x11\x03\x11\x00?\x00\xd9\xa5\xa4\xa7Rd\x89\x8e(\xc5-\x14\x00\x94\xa2\x8aP(`\xc2\x8a(\xa0\x05\xa3\x14Q@\x00\xa5\xc5\x14P\x01\x8aZ(\xa0\x02\x8a(\xa0\x02\x8cQK\x8a\x00J^\xd4b\x96\x81\x89E\x14\xb4\x00\x94\x94\xb4\x9d\xa9\x00\xdaJv)(\x00\xc5%(\xa0\xd0\x02\xd2\xd2b\x8cS\x00\xc5-\x14P0\xa2\x8a(\xb0\x82\x8au%\x17\x18\xb4Q\x8a(\x10QI\x8aZ\x061\xc5U\x99*\xe1\x19\xa8\xa4L\x8a@e\xcc\x95RD\xad9\xa3\xaaR\xa63LE&\x14\x80T\xae\xb4\xdd\xb5B#"\xa1\x91j\xd6*9\x12\x80+\x81\x8a\x9e&\xa8\xc8\xc5*\x9c\x1a\x00\xb4)E1\x0ei\xf4\x00\xb4QE\x00!\xa4\xa5\xa2\x80\x1aj7Z\x9b\x14\xd2\xb4\x86Ve\xcf\x14\xc2\xa5W\x0b\xc1=j\xcb%4\x8fjb"D\x8dye\xdc}\xe9\xfb\x1aC\x9d\xbc~\x94m\xe6\x9e8\xa0\x0648\xa8$\x1bj\xeaa\x8e*}\x1fD\xfe\xdc\xb8,\xd2\xb8\xb4\x89\xbe\xea\x9c\x07?\xd6\x9a\x0b\x19\x02\x9d\xd2\xbbK\xbf\x08E"~\xe4\xba\x9fc\x8a\xc3\xbb\xf0\xc5\xfd\xb1$a\xd0z\xd5\xc5&&dn\xa4)\xb8\xd4\xc6\x12\xacU\x90\xab\x0e\x08\xa7,~\x82\xa6J\xc3D)\x10\x1d\xaad\x8e\xa4X\xeaU@*\x18\xd0\xc5LT\x8a\x94\xa1i\xc0R\xb8\r\xdbK\x8av)q@\r\xc5(\x14\xb4R\x00\xa4\xa2\x93\x14\x00\x1aJSILb\x1ai\xa7\x9aa\xa2\xc2c\x1a\x98\xd4\xf3Ljb#jcT\x8dQ\xb50#jkS\xd8S\r\x16\x18\xdaJS\xd2\x9bR\x01\x8aJu%;\x80\x94\xb4\x94P\x01E\x14S\x10QE\x02\x80\n(\xa5\xa0\x05\xa2\x9bK@\x0bFi){P\x01KIK@\x05\x14\xb4P\x01Gj(\xa0\x034~TQ@\x05.i(\xa1\x03\x16\x96\x9b\x9aZV\x01h\xa2\x92\x80\x16\x96\x934f\x98\x0b\x9a\x05%\x14\x81\x0e\xa2\x92\x81\xd6\x80\x15~\xefZ\x18\x80\x08\xee\xc4v\xa4\xcfj3\xdb\xa5\x01q\xdfCIH)h\x01sJ)(\x14\xc08\xec1@\xa2\x81@\x0b\x9ap>\xf4\xca\x01\xa0.I\x9aZnx\xe0d\xfb\xd1\xda\x98\x0e\xcd(4\xd1K\x9aA`\xeaNI \xd2\xfe\x00\xd3i\xc3\x9cr?\x1aw\x10q\xefK\x9ao\xb5\x19\xa4\x03\xb3Fi\xb4P1\xd9\xa34\xda(\x01\xe3\xe6\x1c\x9cb\x8c\xd3G\xd7\x00\xd1\x9aaa\xd9\xe4\x92\xdc\x9a3I\x9aL\xd0\x16\x1ch\xa4\xcd\x19\xa0,\x194RQ@\nO\x14f\x92\x8a\x00\\\xe7\xa9\xa4\x06\x90\xd0(\x01sFM%\x19\xa4\x01\x9a)(\xa0\x034\x1aJ(\x01\xa6\x9a\xd4\xe3IC\x01\x9d\xe9)\xc6\x92\x81\t\x8a8\x1d~\xb4\xb4\x94\xc4 \x1d\xcb\xb3\x13\xf3dpG\xb5(\xc1\x19\xc1\x141T\x19l\x81\x8e\xa2\x8c\x85\xdd\xf2\x86\xce0[\x9cR\xb0\xc3>\xc7\xf1\xa4\xa5\x07\x80\t\xce)\r0\xb0Pi(\xa0AI\x8aSE\x08\x06\xe2\x90\xff\x00\x93KF\x01\x18\xa6 \x1b\x81\xe1\xb6\xd3I\xc8\xe4:\xe0\xf7\xa0\xf0x\xce>\xb4\x81~b\xdb\x8f#\x1c\x9c\xd0\x0c\\\x93\x9a:\xf1\xebE%$\x802\t\'oC\x8aB\xca\xa4}\xec\x8eN\x07\x14\x1f\x95H\xe4\x92r\x00\x1fv\x978\xa6$"\xed\\\xe7\x80y&\x9b\xc9\xcf\xa9\x1c\xfb\xd2\xd1\xd3\x9e\xd4\x00\x806P*\x95\xc0#w\xd6\x94\xe4.Y\x86irq\x8aN\x9e\x94\x0e\xc2\x0e\xa7\x93A \x1c\xb7\xe0\x0fz3\xc6{z\xd2u\x18\xc0?Z@\x0cK\x13\xb8\xe0\x9e\xf46T\xe0.\xde0\x0e1\x9aC\xbb\xe6\x19\xceF:t\xa6\x94A\x19\x0c\x18\x9e\x02\x80h\x06\x05\x97\',7\x00\x01\xe7\x8a\t\x01\xbeb\x1b<\xe4z\xd0\xceO\xc9,\xb8\xder\x06\xce@\x1e\xf4\xd6gv\x00\xe5I\xfe/Jd\xdcV\xc2\xb1\xf4\xec}i\xac{\xf7\xce)F7\x80}:\xd3Ws\x0c\x91\xcf\xa5\x03\x14\x1cRR\xd2v4\x8a\xb0u\xa0\xf4\xe3\xad\'l\x8a\x061\x968\xa0b\xf09\xc78\xa4\xa3\x1f\xed\x13IH\x04\xe2\x8e\xf4\xb4r\x15\x8fpx\xa613\xdcv\xa4\xcb+e3\xeaH\xedJ\xd8\xdd\xbb\x00\x0e1\x8a1\x8e\x0e\x07\xae8\xcd BeK\x12\x18\xb1<\xf3M,\x17\xe6 \x1cS\xb0\x06i\x08$`\x10(\x18\xb2.\xcd\xbf3|\xbf/\xcd\xd1\x8f\xf3\xa8\x97\xe5V\xfe\x15o\xe1n\xad\x9a\x99\xce\xf6\xf3K`\xff\x00\n\xb2\xe3\x14\xc2\xf9+\xbc\xeev\xf9K\xed\xc7\xf9\x14\xee\x16\x10t\x07\xb1\xa2\x8e;\x0c\n\r \nJ^\xd4\x94\x00\x02h\xa4\xa5\xa0aIK\x9e)(\x00\xa4\xe9K\xdb\xad\x14\x00Rpx4P(\x10\x1c\xe0\xe0\xe0\xd03\x8c\x93Fy\xa2\x98\xc2\x8a\x0fJ\x05\x00%\x1d\xa8"\x8a@\x02\x8ei)sL\x02\x8c\xd2P)\x00QE%0\xb8\xb4RQ\x9a@\x130\xc1\xde\xa1\x8a\xf6\xefN\xf9\x91\x94:\xcb\x1c\xcd\xf7\xc3q\x93\xeb\x8a\x1b\xcc\n\x13\x00\xc8\x87\x96#\x90;\x0c\xfd)]\x8c\xad\xbaYpT\xe7\xd4\xa8\xa7r\xaez~)GJ)j\x19\x98\x94QK@\x05-%\x14\x00\xb4R\xd1@\x05\x14\xb4P\x01E\x14P\x01\x8a)h\xa0\x02\x8a(\xa0aKE\x14\x00QE\x14\x00QKE\x006\x83\xd2\x8a\r\x006\x90\xd2\xd2\xd0\x02\nZ(\xa0\x02\x8a(\xa0,-\x14Q@\xc4\xa2\x96\x8a\x00(\xa3\x14P\x02\xd1Gj(\xb0\x0bF))\xd4\x00\x98\xa60\xc8\xa9)1H\n\x93&EQ\x9e:\xd5t\xcdU\x9a,\xe6\x98\x8c\xa7J\x89\x97\x15vX\xf0j\xb3\xad0"\x02\x82\xb4\xfcR\xe2\x80*\xc8\x95\x1e*\xdb&j\x16LS\x10\x91\x9a\x98t\xa8\x00\xc1\xa9P\xf1@\x12QIJ\x05\x00\x18\x14S\xb1@\x14\x80LR\xed\xa7\x05\xa7\x01L\x08\xb6SZ*\xb1\x8a]\x94\x01S\xcb\xa3e[\xf2\xc54\xc4=(\x02\x93\xc4\xf3\xcd\x15\x9c\x19\xf3n8$\x7f\n\xf75\xe8\xba\x1e\x9c\xb6\x16\x91\xc3\x1a\x05D\\\n\xe3\xac$[\x19\xfc\xef,9\xc6>\x95\xd9i\xba\xc5\xa5\xd4j\xa2M\xad\xe8\xd4\r\x1au\r\xcb(\x88\xe4g\xda\xa5\x04\x11\x90A\x15\x89\xaf\xde\x9b;v`~g\xe1j.3\x99\xd6\xe4\x86K\xc3\x141\x80S\x97a\xeb\xcf\x15\x9a\x13\x9e\x958S\xf33\x9d\xce\xe7,}M.*\xefrH\xd5)B\xd3\xf1EH\xc4\x02\x97\x14\xb4P!(\xa2\x8a\x00))i(\x18QA\xa2\x80\x1bIJi(\x18S\rIL4\t\x91\x9akS\xcd5\xa9\xdcDmLn\x95#Tf\x81\x91\xb50\xd3\xda\x9aE1\x0c4\xd3O"\x9bSa\x8d\xa2\x83E\x17\x00\xa4\xa5\xa4\xa6\x01E\x14P \xa2\x8a)\x80QE\x14\x00Q\x9a(\xa0\x05\xa2\x8a(\x10\xb4\x99\xa4\xa7\n\x06\x14f\x92\x8a\x00ZZm(\xa0\x05\xa5\xa6\xe7\x9a(\x01\xc2\x92\x81E \x14w\xa5\x1d)(\x14\xc0Z)(\xa4\x02\xd1E\x14\x00\xbf\x85%\x14P\x02\xd1E\x14\x00\xa2\x81\xd6\x92\x8a@\x19\xe6\x8c\xd1IL\x07\x8e\x94\nm\x02\x84\x03\xa8\xa4&\x96\x98\x0b@\xa6\xf3KHc\x85(4\x82\x8ab\x1d\x9a3IE\x009N\xdc\xf1\x9c\x8a\x06)(\xa0\x05\xa4\xcd\x14P\x02\xd0\r\x14`P\x01\x9a(\xc5\x1d\xa8\x01s@\xe9IE\x00(\xe9E%-\x00\x1d\xe8\xa2\x8a`\x14R\xd2P\x01IE- \xb0RR\xd2\n\x00ZJ(\x14\x00RR\xd1\xde\x80\x12\x92\x96\x8a\x064\x8aJu4\xd0!\xb4\x94\xe3M\xeb\xdb\xa7\x14\x08\x0ei)O\x14\x94\x0e\xc1\x9a8\xee2(\xa4\xe4P \xa2\x8a(\x06\x1e\xd4\x94\xb4S\x10\x94\x98<\xd2\xd2f\x80\x12\x8e\xf4\xb4\x94\xc4%\x02\x8c\xe2\x92\x81\x85\x19\xedA\xa3#\x14\x08C\xed\xd6\x93\xf0\xa54\x9c\xd2\x04\x14\x9e\xd4\xb4f\x8b\x8cCI@4\x03E\x80\x0f\xdd"\x93\x03\xbd\x00\xf3\xcd\x00\xe7\xaap\x0fz\x04\'n\x05\x01\x88m\xdb\x86\x01\xe8Fi\x07\x19\\\xf7\xa0\x91\xef\xf9P $\x97V,N\xdc\xe0\x1e\x94\xdc\x0c\xd3\x8e1\x9aa\xc6\xe3\x83N\xc0\x07\x00\xe3==i8$\xf7\xf44\x01\x8c\x9e\xb9\xeb\x9aQ\xf7r\xbe\xbf\xe7\x14\x00\x84|\xa7\xe9HpG\xa6h\xc9=?\x1a2\x0f=\xb0\x08\xa4R\x13<\xe3\x14va\xedE\x18\xa4U\x80\x9c\x0c\x13\xda\x90\xd2\x9e\x99\xa6\x83\xdb<P\x08(\xcf\x1c\x0cQ\xde\x93\'\x03=\x85\x00\x00\x90h\xcf\x18\xe4\xe3\xb5\x14\x87\xa6)\x8cRFx\xa0u\xfc(\x14\x9d\x0f\x1dE \x10\x01\xfd\xdcQ\xc5\x06\x81\x8cP\x01\x9ao\xbd-\x04\x8cP0\xa4\xa2\x8f\xa5\x00\x06\x8aJ(\xb8\x85\xa4\xa5\xedI@\xc2\x90\xd2\x8e\xb4\x1a\x00N(\xcd\x14P\x01\xcezR\x02ii;\xd0\x01F}h\xef@\xa0\x04\xa2\x83@\xa6\x01E\x14R\x00\xa0t\xa4\xa5\xa0\x03\x9aJZ(\x012}1E\x1e\xb4{\xd3\x10\xa2\x8e\x0b\xee9\xcf\xb1\xa4\xa5\xa2\xc3=J\x8a)j. \xa0R\xd1@\x82\x94\n\x00\xa5\xa0\x02\x8cQE\x00\x14QK@\t\x8aZ(\xc5\x00\x14QE\x00\x14QK@\xc4\xa5\xc5\x14P\x01E\x14\xb4\x00QE\x14\x00\x86\x90\xd2\xd2\x1a\x00J(\xa2\x80\n(\xa2\x80\nZ(\x14\x00\x94\xb4Q@\xc2\x8aZJ\x00Z1E\x14\x00\xa2\x8a(\xa0\x02\x8a)h\x00\xa2\x8a(\x01\x0fJ\x86D\xcdOH\xcb\x9a@g\xcd\x16j\x9c\xb1\xe0\xd6\xb4\x91\xe6\xaa\xcb\x154\x06i\\Rb\xacI\x16\rFV\x98\x88\xf6\xd3\x1d*p\xb4\x15\xcd0)\x14\xa0qVZ?J\x89\xa3\xc5\x01`SN\x14\xccb\x9c\xad@\x89(\x14\x83\x9ap\xa9\x18\xb4\xe1M\x14\xe1T\x02\x81OQM\x14\xf1@\x85\x02\x97\x14\nQ\xd6\x90\xc6\xed\x14\x9b0w)*}T\xe2\xa5\xa4\xc5+\x81=\xbe\xa7}\x07K\x8d\xe3\xd0\x8f\xfe\xbdV\xbe\xb9\x9a\xf6e\x92c\xf7G\x03\xb0>\xb4\xa4SH\xa0\x08H\xa3\x14\xf2)(\x01\xb8\xa3\x14\xb4P\x0ci\xa2\x8a(\x01))h\xa1\x80RPh\xa0\x04\xa2\x8aJ@\x06\x92\x94\xd1LaLju5\xa8\x10\xd3L4\xf3LjhC\x1a\x98EHi\x8d@\x1150\xd4\x8dLj`0\xd2R\x9aJLhi\xefE\x1d\xe9*@J(\xc5\x15HA\xda\x92\x94\xd2S\x0b\x0bIKI@\x05\x14Q@\x82\x96\x8aJ\x06-\x14Q@\x05\x14Q@\x0bE%\x14\x00\xec\x8aJJ:P\x03\xa9(\xa2\x80\x1c:Q\x9fzm/\x14\x03\x16\x81IE\x02\x16\x8aJZ\x06-(4\x94b\x80\n3F(\xa4\x17\x16\x8a1K\x8a`&(\xa5\xdb\xefK\x8a\x00AE;m\x1bh\x01(\x02\x94\n\\{P\x03qF)\xc0R\x80(\x01\x05&)\xfbi1@\x08)\xc2\x80)@\xa1\x0c(\xc5.)h\x10\xd0(\xc1\xa7b\x8a\x00LQ\x8aZJ\x001E-\x14\xc0LQE\x03\xa7Z@-\x14RP\x01F\x07\xe3E\x1c\xd0\x02\xd1IK@!x\xc5%\x14\x94\x00\xb4g\x8aL\xd1\xcd\x00\x14Q\x9a3\x9a\x00\x01\xe6\x8c\xd2Q@\xc5\xa4\xa2\x8a\x04\x1d\xe93E\x14\x00\x86\x90\xd1E\x00!\xa6\xe7\xebN9\xa6\xd0\x02Ph\xcfZ(\x00\xa4\xa2\x92\x81\x0bIE&i\x88ZNh&\x934 \x0c\xd2\xd2PsLAI\x9a))\x088\xa2\x8c\x8aCL\x05\xc5 \xef@\x14\x1c\nC\xb0\x8dG\xe2(\x14\xa7\x9e\xc6\x81\x89Hy\xe3\xda\x96\x90\xf7\xa0\x04#\xbd \xc8\xa4\xce>^O\x19\xa4\xda\xa5Hl\xb6}\x0e1A"\xf3\x92O\xad\x19\xa0\x93\x9ez\x1f\xd2\x81\xd0\x9ac\x10\xe7<c\x14\x87\x91\x9a3\x9f\xa5\x19\xc7\x02\x81\x01\x1dq\xf9SG\xeb\xde\x82q\xd6\x83\xd0\x8d\xbd{\xd2\x01?\x84\xd1\xce3\xc8\x06\x83\xf2\xf0i\t\xe8\t\xa0i\x0b\x82\x14\x90FI\xedM\x04\xe3\x9eh\x14t\xa0\xa0c\x85\xce)\t\xa5\xa6\xe4R\x18\xb8<\x03\xd0\xf7\xa4#\x14g\xa5\x1dG\x07\x07\xd6\x81\x89KA\xc0\xc8\x07\x8aCL\x04\xc9\x04c\x91\xde\x96\x90\xd2sH\x05\xa4\xefE\x14\x00g\xaei;Ph\xa0\x00p9\xa4\xefE\x1c\xd00\xa2\x90\xd0\x00\xa0\x05\xa4\xa3\xbfLQ\x91@\x06}\xe8\xa3\xad\x14\x00f\x8f\xa7\x03\xd2\x8f\xa7ZBp=\xe8\x00\xefI\x9a^\xd4\x94\x00QKFh\x01(\xa5\xa0\xd0\x02P))q@\x08h\xe4g4q\x9aNs\x8cq@\x0bFx\xa2\x8a\x00JZJZ\x00)\x07\xbfJZJ\x00S\xd4\xd1IK@\x1e\xa7KIKRHR\xd1E\x00-\x14Q\x8a\x00)i)h\x00\xa2\x8a(\x00\xa5\xa2\x8a\x00J)h\xa0\x02\x8a)h\x18QE\x14\x00QKE\x00%-\x18\xa2\x80\x1bHi\xc6\x9ah\x01(\xa5\xa4\xa0\x03\x14QE\x03\nZ(\xa0\x02\x8a)h\x00\xa2\x8a(\x00\xa2\x8aZ\x00)qIK@\x06(\xa5\xa2\x80\n(\xa2\x80\n)h\xa0\x062\xe6\xa1\x92<\xd5\x9aiZ\x00\xa1,UU\xe2\xc5j\xb2\x03\xda\xa1xE\x17\x037a\x14\xa2:\xb8`\xa0C\x8e\xd5@T\xf2\xa9\x8f\x05h\x88\x87\xa5#B=(\x0b\x19/\t\x15\x19LV\x94\xb1\n\xac\xf1\xd0+\x15\xc7\x14\xf0hd\xa4\x02\x95\x80\x91ii\x80\xd3\x94\xd3\x10\xf1N\x14\xd0i\xc2\x90\xc7\x8a\x07Z\x05-\x03\x16\x90\xd1Hi\n\xc0M4\x9aSL&\x80\x10\xd3i\xc6\x92\x90\tI\x9aZJ`\x14\x94\xb4\x94\x00\x94QE\x00\x14\x94\xb4\x94\x00\x99\xa2\x8a(\x01\xb4QE\x03\ni\xa7R\x1a\x040\xd3H\xa7\x1ai\xa6&4\xd4f\xa4jcS\x026\xa6\x11R\x11L4\x01\x19\xa6\x9ay\xa6\x9aL\x06\x1aJV\xa6\xd2\x1d\x85\xa4\xa5\xa4\xa6\x02Rd\xd3\xa9\xbd\xa9\x89\x8bI\xdf\x19\xa2\x8cP!h\xa2\x8a\x06\x14Rb\x97\x14\x00Q\x9a1K\x8a\x02\xc1Fh\xdb@\x14\x00QJ\x05.\xda\x00m-;e(L\xd0\x16\x19F*M\x94\xbb;b\x8b\x8e\xc3\x00\xa3m</\x1d)\xc1:\xd0+\x11b\x97\x15 Niv\xfa\n\x00\x88/\xa5(Z\x97i\x03\x02\x8d\x94\x80\x8fm(Z\x93m.\xda`G\xb6\x80\xb5&\xda\x02\x8f\xc6\x80\x19\xb7\x9a]\xb4\xfcRP\x03vR\x85\xa7\x8aJ\x00f)v\xd3\xb1A\xa0\x04\xc5&)\xd4\x94\x00b\x97\x02\x90\xd2\xf6\xa0bQE&h\x15\x85\xa5\x14\x99\xa4\xce;\xe0R\x01\xe2\x8e)\x01\x04R\xd3\x00\xa2\x8aO\xc2\x80\n(\xa34\x00\xb4\x94\x99\xc5\x14\x00\xa2\x8e\xf4g\xde\x92\x80\x16\x83\xedI\x9a)\x0c?\x1aZJJb\x174\xb4\x99\xa4$b\x81\x8e\xcd\x19\x14\xdc\xd1\x9a\x04-\x19\xa4\xcd%+\x8cZ_\xa574Qp\x174f\x8aJ.+\x0b\x9a)3Fi\x80f\x8aN\xf4f\x80\x0c\xf5\xa4\xcd\x06\x9b\xde\x80\nJ(\xa0\x02\x92\x96\x92\x81\x05&qE!\xa6&\xc0\xd1IE\x02A\xc6i)E%\x03\x17\xa5&i(\x1e\xe3\x14\x08(\xa0\xd2~<P\x08ZL\xd1\xb8}(\x18\xf5\xa0bf\x8e\xc3\x9c\xd2u4\xbf\x88\xa4\x01I\x9c\xd2w\xe8h\'\x14\x0cSH=3HN\x06wb\x90\x0e\xe6\x99 }\xfe\xf7zL\xd2\x1e\xbct\xa2\x8b\x00\xa4\x8csH\x0f\x14\x84\xf0\xc4\x92\x00\x1c\n20pi\x882(>\xd4\xd2\xbd\x1b#\x8e\xc6\x8c\xe0\xf1H\x05\'\x83\x93\x9ex\xf6\xa6\x9aRz\xfaQ\xdb\xad\x03@s\xf2\xe7\'\xa9\xa48!\x8e\r\x19=\xe8\xe7\xa7j\n\xb0\x9fA\xd2\x8c\xfb\xd2\x13\xe9\xc5 \xc5 \x17\xb0\xf6\xa4\xc5\x0c\xd8\xda\xbf\xde4\x9f\xc2E\x03\x14}E\x06\x9b\xce9\x1c\xfa\xd0~\xf7\x1d(\x18\xb4\x87\xa9\xa0\xd1\x8a\x008\xa3\xda\x83\xc57\xb1\xf5\xa0\x02\x8c\x9fZN\xb4P\x01IKI\xda\x81\x8bHh\xa2\x80\x13\xb5\x02\x8a9\xa0\x02\x96\x92\x81@\x01\xe2\x81E \xe0P\x02\xd1\x91E&(\x01\x0fZQIE\x00-\x1cR\x1aJ\x00Z^\xd4\xda\\\xd0\x01K\x9e)\xb4\xbd\xa8\x00\xefI@\xa2\x80\x17\xf1\xa4\xa2\x8ac\nQI\xde\x8aB\x16\x8aJ(\x00\xa5>\x9e\x9f\xad%\x14\xc0\xf5ZQ\xde\x8a\x07z\x82E\xa2\x8a(\x00\xa2\x96\x93\x14\x00b\x8aZ(\x00\xa5\xa4\xa5\xa0\x02\x8a)h\x01(\xa5\xa2\x81\xd8JQE-\x00%\x18\xa5\xa2\x80\n)h\xa0\x02\x90\xd2\xd2P\x03M\x14\xa6\x92\x80\x12\x92\x96\x8a\x00J(\xa3\x14\x0cZZJZ\x00(\xa2\x8a\x00(\xa2\x96\x80\x00(\xa2\x8a\x00QE\x14\xb4\x00QE-\x00\x14QE\x00\x14QE\x00-\x14Q@\t\x8ai\\\xd3\xe8\xa0\x08\xbc\xbaO.\xa5\xa3\x14\\\x086\nk\x0cT\xe5i\xa5i\x81NU\xe2\xa0t\xab\xcf\x1dB\xd1\xd1p(:T{j\xebGQ4t\x01[\x14\x98\xa9\x99)\x85i\x88E8\xa9\x15\xa9\x98\xa7\xa8\xa5`\x1e)E \xa7\x0e\x94\x86\x14\x86\x96\x9ah\x01\x1a\x98i\xe6\x9ah\x01\xa6\x8a))\x08))i)\x80\x94QA\xa0\x04\xa2\x8a(\x01)\t\xa54P\x02QE\x14\x00\x94\x94\xbd\xa84\xc6!\xa44\xa6\x90\xd2\x10\xd3Ljq\xa44\\Df\x9azS\xcd1\xa9\x80\xc3\xd2\xa3j\x90\xf4\xa6\x11L\x10\xc3L5!\x14\xc2(\x18\xc3M5&)6\x1aB\x19\x8a)\xe1(\x11\xd3\x01\x98\xa3\x15&\xcaQ\x1d\x00C\x8a]\xa6\xa7\xf2\xe96P\x04%\r.\xca\x9fe\x1e_\xd6\x81\xd8\x87e(J\x9be(J\x02\xe4\x1b)\xdb*m\x94\xa1(\x11\x06\xcfjw\x97\xc9\xa9\x82\xd1\xb4P\x04[)|\xbe*LQ\x8a\x060/\x1d(\xd9\xedO\xe2\x97\x02\x90\x0c\x0bK\xb4S\xb1G\x14\xc44-.)h\xa0\x04\x14\nZ(\x1d\xc2\x92\x96\x92\x80\n(\xa2\x81\x07\xe3E\x14R\x18P:QE\x00\x06\x8f\xd0\xd1E0\nJZN\x94\x083FsFF)3\xe9H\x05\xcd!\xa4\xa5\xe3#$\xe0\xd3\x18\xa2\x92\x8e\x94\x99\xa5p\x1d\x9a21H)8\xe8(\xb8\x0bN\x06\xa3\xcd-\x17\x10\xfaL\xfb\xd3r}h\xa7q\x8b\x9a3E\x19\xa5p\x0c\xd2\xd3h\xa6!\xd9\xf4\xa4\xcd%\x14\xae\x02\xd1\x9aJ(\xb8\x06h\xa4\xa2\x80\x16\x8f\xe7Fh\xefE\xc6\x19\xa2\x92\x8c\xfd)\x08Ri3E\x14\\\x05\xed\xc5\'4f\x92\x81\x8b\x9a3I\x9c\xd1L\x034f\x8c\xd2f\x80\x17>\x9di\xa4\xd1\x9a3@\x06i(\xa2\x81\x07J@r(\xcf4g\x8ah\x02\x90\xd1\x9a\t\xe2\x98\x80\x9e)\xa2\x83\xf4\x14\x94\x84-%\x00\xd1L,\x14RQB\x004\x82\x96\x9b\x9a\x00SI\xf8Q\x9a\r\x00 \xee;\x8aBM/\x1d0?\nBq\xc884\x00\xa7\x8e\xf4\x87\x8eA\xa0\x90z\x8cSs\x8e\x94\x08\x08\xce99\xa2\x8c\xe3\xd7"\x9b\xc6r\x17\x06\x98\x87s\x9aB\x03p\xcc@>\x94\x99\xf5\xa3 \x8e\x084\xac\x02|\xde\x9d\xf1GsK\x9c+\x9es\xda\x90\x10@#\xb8\xa0b\x121\xc7Z3HO9\xa0\xf0\xb9=(b\x02GJ\x061\xdf\xf1\xa4\xe40\xe9E\x17\x1d\x80\x8c\x8e\x99\xa3\x00\x0e84QAI\t\xf4\xebE!j\t\x1di\x0cL\xf3\xc5\'z^?\xfdT\x94\x05\x82\x90\x9e\xdf\xad/9\xa44\x0c)3Fi\t9\xa0c\xb9\xa4\x04\xf64g\xd6\x9b\xcd1\x0b\xcd\x1d\xa9;Q\xfc\xa9\x0c(\xe6\x92\x8a\x04\x14Q\x9aCLaFh\xed\xc7\x14\x9f\x88\xa4\x01KM\xa34\x00\xbd\xa8\xa4\xa2\x80\x17\x93\xf8QI@\xce\xd0H"\x80\x16\x8e\xac=)3\xc5\x14\x00\xb8\xa4\x1e\x94d~4\x9d\xe8\x00\xa2\x96\x90\xfd(\x00\xa2\x8a(\x00\xa2\x90PM\x00\x07\x8a)3K@\n(\xa4\xedE\x00\x14\xb9\xa4\xa5\xa0\x05\xa4\xa3\xb5\x1f\xe4\xd0\x01Gj\x07\xad\x14\x0c\xf5e\xa5\xa4\x14\xb5$\x05\x14Q@\x0bE\x14P\x01\x8a)i(\x01i)h\xa0\x02\x97\x14R\xd0\x02QE\x14\x0c)i:\xd2\xd0 \xa5\xa4\xa0P1h\xa2\x8a\x00)\r-!\xa0\x044\x86\x96\x90\xd0\x02QKE\x16\x18QIJ(\xb8\x05\x14Q@\x05\x14\xb4b\x80\x0cQF(\xc5\x00\x14\xb4b\x8a\x00Z(\xa2\x80\n(\xa2\x80\x16\x8a(\xa0\x00R\xd1E\x00\x14QE\x00\x14\xb4\x94\xb4\x00\x94\xb4Q@\x05!\x14\xb4P\x04ei\xad\x1ejjM\xb4\x0e\xc5G\x8a\xa0x\xabD\xa6i\x8d\x10\xa2\xe23\x1a:\x8d\x92\xb4^\x1fj\x81\xe1\xa7p\xb1Oe.\xda\x99\xa3"\x9b\xb4\xd3\x15\x86\x01N\x14\xbbh\xc5H\xc6\x9ai\xa7\x9aa\xa0\x06\x9ai\xa7\x1ai\xa0\x044\x94Q@\x01\xa4\xa0\xd2P \xa44\xb4\x94\x00\x1aNi{\xd1C\x01\r!\xa54\x86\x80\x134QE\x03\x0e\xd4\x94\xbd\xa9\r0\x03Hii\xa4R\xb0\x86\x9aCN"\x93\x14\xc40\x8ac\n\x97\x14\xd2\xb4\x01\x0e)\xa5j}\x9e\xd4m\xa6\x05}\x94\x9e]Y\xd8)6\x8a\x00\xaf\xe5\xd2\xec\xa9\xb6\xd1\xb6\x80!\xf2\xe9|\xba\x97\x14b\x80#\x08\x05\x1bEIHG\xa5\x004(\xa3h\xa5\xa5\xa0\x06\xed\x14b\x96\x8cP\x02b\x97\x14Q@\tE-\x14\x00RR\xd1@\t\x8a(\xa2\x80AE\x14f\x81\xdc\r\x1d\xa8\xa3\xb5\x01p\xa2\x90\x1a)1\x05\x14\x94\x99\xa0c\xe9)3I\x93\x8aaa\xd9\xe2\x8e\xd4\xda)\x00\xec\xd2g\xde\x8ei(\x01h\xa6\xd1L\x07f\x934Rz\xd2\xb8\x0b\x9aL\xd1IJ\xe1ah\xa4\xcd\x19\xa2\xe2B\xe74Rf\x934\x0cZ)3Fh\x01sE&\xeaL\xd0\x03\xa8\x14\xdc\xd0\r\x16\x10\xec\xd2f\x93>\xf4f\x80\xb0\xee\x94f\x9b\x9aL\xd0\x80}\x19\xa6\xee\xa3u;\x00\xec\x9e\xc2\x934\xdc\xd1\x91E\x80visL\xcd\x19\xa0\x07f\x8c\xd3sI\x9e\xb4\x00\xec\xd1\x9f\xae=\xe9\xa2\x8c\xd0\x03\xf3I\x9anis@\\3Fi3I\x9a,\x03\xa8\xcd7u\x19\xa6\x03\xb3Fi\xa4\xf4\xc5\x19\xed@\x0b\x9a3M\xcd\x14 \x1d\x9aL\xd2})\xb9\xa0\x07\xd2f\x9b\x9a3@\ns\xebA\xa4\xf9\xba\x81\xf2\x8e\xa6\x934\x12\x98\xb4Rf\x90\x9c\n\x00\\\xd2\x16\xa3\xb0\xe9\xf8R\x1ahL3\xcd-4u\xa5\xe7\'\x9e=(\x1aB\xe6\x934\x99\xa4\xa0\x05?\x87\xf5\xa4\xdc=h\xcd\x07\xd74\x00RQ\xces\x9aC\x92y\xa0\x03\xf9\xd2g?N\xf4\x0c\xff\x00\x163\xedA\xa2\xc2\x0c\xf1\xc0\xa4\xcf$\x9a)23\xceq\xedLV\x179\xf5\xa4\x18<7J@FH\x02\x8e\x94\x00\x02\n\x90T\xe3\x18\x00\xd2\x13\x82x\xc5\x19\xc1\x18\xedM\x00\x0c\xe3$\x9erM\x03\x1d\x91\x9cw\xefH~\x98\x14\xa4\x969 g\xd6\x93\xbf\xf8\xd2\x01:\xd1\x9c\x1e\x05(\x03a\xc8\xcbg\x82)0\x0f^\xd4\r\t\xef\xeb@\xe0\x1c\xf5\xcf\xe9GA@4\r!\t\xe3\x18\xa0\x9a3\xc6qGj@\x04\x8e\x86\x93s)\x1d\x0e\x069\xa4#\x92\xddrq\x9a\x0fZ\x06\x14\xb9\x14\x87\x93\xc8\xc7j:\x0cP4\'\x7fZ(\xa2\x81\x89E\x19\x1fSHO~\xf4\x00\x1aL\xd1\x9aC@\x83<\xd1\x9aJ:P0\xc8\xf5\xa0\xd1\xda\x90\xfbP\x01\xdb\xde\x93\'\x18\xa2\x8a\x00(\xa2\x93\xbd\x03\x16\x934QL,\x02\x8a)(\x01i)i;\x1a@-\x19\xe6\x93<R\x8e\x94\x08\r\x14\x94\x99\xa61h\xcd%\x06\x90\x85\xa2\x90\x1ey\xa39\xa0\x034\x1a(\xa0\x05\'\x8a\x01\xa44\x94\x0cw\xa5\x19\xe4\xd2\n;\xd0!A\xa34\x82\x8e\xf4\x00\xb4f\x92\x934\x00\xe3E 4\xbd\xb8\xeb@\x1e\xb1E\x14\xb5$\x85\x14R\xd0\x01E\x14P\x02R\xd2R\xd3\x18QKE!\x05\x18\xa4\xa7P;\x85\x14R\xd0\x02QE-\x02\x12\x96\x93\x14\xb8\xa0aE\x18\xa5\xc5\x00%\x14Q@\r4\x94\xe3M\xa0\x04\xa5\xa2\x8a\x06&)h\xa2\x80\n(\xa5\xa0\x02\x8a(\xc5\x00-\x14Q@\x05\x14\xb4\x94\x00\xb4QE\x00\x14QK@\x05\x14\xb4P\x01E\x14\x94\x00\xb4RR\xd0\x01KE\x14\x00QE\x14\x00\xb4QE\x00\x14\xb4Q@\x05&3KE\x03\xb8\xc2\x95\x1bF*zB3@\xaeUh\xc6*\x16\x8b\xd2\xae2\x8a\x85\xd7\x14\x01M\x90\x8e\xd4\xc21V\\T\x0f@\x1154\xd3\x8d4\xd0\x03Z\x9ai\xcdM4\x08CI\x9aZi\xa4\x01IE\x06\x98\x05\x14\x94\x1a\x00(\xa2\x8a\x00J(\xa4\xc5\x16\x00\xa4\xa7b\x8cP\x17\x13\x14\x94\xfcRb\x98\xc6\xe2\x93\x14\xfcsF(\xb8\x86b\x93mIHE\x003\x14\x98\xa7\x1ai4\xae\x02\x11M"\x9cM!4\xc0Ji\xa5\xa4\xe9@\x84\xc5%.i)\x80QGj(\x00\xa4\xa2\x93\x9a@\x18\xa5\xa4\xcd%0\x17\xbd\x06\x934P\x01E\x14f\x80\x03E%\x14\x0e\xc2\xd1IFh\x00\xa2\x934\x99\xa5p\x17\xf5\xa2\x934\x99\xa0\x05\xedI\x93Fi3LB\xe6\x974\xdc\xd1\x9aW\x18\xb9\xa2\x9b\x9a7\n\x00\\\xd2\xe4S\x0bQ\xba\x90\\u\x14\xc2\xd4\x81\xa9\xa0\xb9&h\xcd3u&\xea@I\x9aM\xdc\x82FGzf\xea3\xefM\x85\x87\xe6\x93w\x14\xcd\xd4n\xa5a\x0e-I\xba\x9b\xba\x8c\xd3\xb0\x0e\xddF\xeafh\xddE\x80v\xea3L\xddFM0\x1c\x1a\x974\xc2i3\xc5\x00?<\xd1\xba\x99\x9a3E\x82\xe3\xb7\x1a7SsE\x02\xb8\xfc\xd1\x9fCL\xe6\x8a\x01\x0f\xcd\x1b\xa9\x99\xa5\xcd\x00;4\xa2\x99\x9eh\xcd\x03\x1dFi?\x1a>\xb4\x00\xb9\xa34\x9cRf\x80\x1dE%\x14\x00\xb9\xa4\xcd\x19\xe2\x9b\x9a\x05q\xd9\xa3\x9a@h\xc9\xa0\x05\xa34\x99\xa4\xa0b\xd1\x9aJ($\\\xd2f\x8aJ\x06-&h\xcf\x14\x83\x93\x81@\x85<\x8a\t\xedI\x93\xf8Ru\x1c\x1c\x1fZ\x02\xe2\xd2\xd2v\xa3\xb50\x10*\x87-\xceO^z\xd2\xd03\xdcc\x8c\xe2\x8c\xd2\x0b\x05\x1d\xa8\xcfZOa@\tE\x18\xa0\x06\x038\xe3\xd6\xaa\xe2\x01\xc5\x19\xfdi\r\x15#@zP)9#$P:P\x01\xeb\xc1\xe0g\x8a@h\x1c\x1c\xf7\xa5\xe7\xae\xd2>\xb4\xc44\x9eh\xebA\xa3\xa5\x16\x00\x07# Rc=N\xdc\xf7\xa1\xb2F3\xd6\x9a\xc0\x10An\xbdG\xa8\xa2\xc0(\x04pp}\xc5!88\xa5?LRd\xf3\x81\xcd1\t\x9fz:\xd0H;\x8bq\xb3\x00\x0c\xf54\x94\x98 \xc7\xff\x00\xae\x8a_\xc3\xe9I\xf7p\x1b\xa8\xe7\x14\xc6\x00\xf0APA\xf5\xa3?\x85&h\xa4;\x00\xe2\x92\x96\x90\xf4&\x90\xd0\x9f\xce\x8aC\xeb@\xa0`M\x1d\xa8\xea\x02\xfb\xe6\x83@XCGc\xcf4f\x92\x81\x87\xa6{\x1a2{\x9c\xd2\x1a(\x04\x07\xad\x07\x95\xa4\xa2\x81\x86=(\xfa\xd1I\xde\x81\x07\x14\x1a8\xc7\xbd \xa0b\x1aJq\xa6\xf1@\t\x900\t\xc1=)zRQ@\xc3=\xa9(\xa2\x80\x16\x90\xd1\xd8v\xa2\x81\n:R\x1aJ(\x18QE!\xa0\x05\xcf4P)3\xe9@\\(\x19\xa3?\x9d\x19\xe2\x81\x014\x94g9\xe7\x9a1\xc74\xc1\x05)\xe6\x81\xd2\x92\x90\xec\x07\x9aA\x9aZ(\x00\xe3\x14RR\xd0\x01\x9aL\x8f\xc6\x8a^\xd4\x00\x7f*;Q\x8aJ\x04- \xa34P1GJC\xd2\x8a)\x85\x85\xa34QHv=j\x96\x92\x8c\x81\x80H\xc9\xe9Rf--\x14b\x80\x13\x14\xb4QE\x86\x14QE\x0c\x05\xc5\x14\xb4P \xa2\x8cQ\x8a\x07`\xa5\xa4\xa5\xa0\x02\x92\x8aQ@\x05-%-\x00\x14Q\x8a(\x01(\xa5\xa4\xa0\x06\x9e\x94\x94\xe3\xd2\x9b@\xc2\x8a)h\xb0\tE\x14P\x02\x81E\x14P\x01KE\x14\x00QE-\x00\x14\x94\xb4P\x01E-\x14\x00QE\x14\x00\xb4QE\x00%\x14\xb4P\x01IKE\x00-\x14Q@\x05\x14R\xd0\x01E\x14P\x02\xd2QK@\x05\x14R\xd0;\tHii\x1a\x90\x0cj\x85\xcf\x153T\x0f@\x88^\xa0z\x9aS\x81U\xc9\xc9\xa6\x03Z\x98i\xcdL4\x00\xd3HiZ\x9ah\x00\xa6\x9aZCE\x80CHiM\x14\x00RQ\x8a\\S\xb0\x86\xd2\xd3\xb1@\x14\xc0n(\xc5?m&)\x00\x98\xa3\x14\xecR\x1a@!\xa2\x82i(\x004\x99\xa4&\x90\x9a\x003HM\x04\xd3\t\xa1\x80\xe2i\xa4\xd2f\x90\x9ai\x08\r&i3HM\x00.i;RPH\xa6\x01A4\x99\xa4\xcd \x174\x84\xd3I\xa5&\x98\x0b\x9aJL\xd2n\xe2\x80\x1d\x9aJn\xea7R\xb8\x0e\xa34\xcd\xdcR\x06\xa7q\x8f\xcd\x19\xa6\x16\xa4\xdfJ\xe2$\xcd&j=\xf4\x9b\xe8\xb8\xc97Q\xba\xa2\xdch.h\x0b\x12\x13I\xbb5\x19s\xebI\xba\x84\x04\x9b\xa97T{\xe8-H\t7Q\xba\xa3\xddI\xba\x9d\x84I\xba\x8d\xd4\xcc\xfbRn\xa2\xc3\x1f\x9aL\xd3rh\xc9\xf5\xa2\xc1q\xd9\xa34\xcc\x9a)\x88v\xea3M\xa2\x80\x174n\xa4\xa5\xa0\x10f\x974\xd2h\xa0..h\xcd%-\x01p\xcd&h\xc5\x18\xa0\x06\x97\x00\xa8?\xc5\xc0\xa5\xebC\x06\xda<\xb7\n\xc0\xe7\x04g4\x00@\xc1\xeb@\x82\x8a1E\x00\x82\x8a(\xa0\x00g\'\xd2\x8a(\xa0\x02\x8a(\xa0\x03$\x1e(\xc9\xefE\x1d9\x1di\x883KIE!\x86ii(\xa2\xc1p\xa5\xa4\x06\x97<Q`\x0c\xd1IGj\x06;4\x94\x94P\x02\xd1E%\x02\xb8\xb4\x94\x13A\xa0\x034f\x92\x90\xf4\xa0\x07\n\x01\xa6\x83Fi\x8a\xe3\xb3I\x9a@i\x01\xceF\xd2)\x0cvi\x0e\x08#\xd6\x8aN\xfc\xd0+\x00\xe4t\xc0\xf4\xa2\x8c\xd1@X)GJJ3\x8e\x94\x00\xb8\x19&\x93=\xa8\xcd\x14\x0c^=h\xefM4\xa2\x98\x80\x93H1\x8e8\xcf_z\r&\x07\x00\x8e;\xd2\x01i3A\xc8\x18\xa4#\x81\x9cs\xd2\x98\x07\xa1\x04sK\xc7\\\xd3q\xcf\x14\x84\x0c\xe7\xbd\x16\x15\xc7f\x9aH=3\x91IFy\xa2\xc1qs\xebHNp\x0b\x02\xc3\xa8\xa5\xcf\x1c\xd2pI \x81\xf5\xa6!i\xa4\x0e\xb4\xa3;y=:\xd3y\xe9\x9c\xd0\x02\xe4\xf6\xe9E!\x04Q\xda\x81\xd8J3J\x08\xe9I\x8aA`\xebI\x80==(\xfa\n\x0e\x0e0s@\xc4\xa3\xbd\x07\xdb\xa5\x03\xad\x0c\xa1{\x81Ct"\x93\xb6\xd1\xc2\x8f\xce\x8e>\xa2\x90\x84\xf4\xa4<f\x9d\xdf\xda\x90\xf4\xa0b\x02;\x1aO\xa1\xfa\xd0h\xa0b\x13IE\x14\x0cB\x7f:3\xc5\'z(\x00\xa2\x92\x8a\x00Z\t\xa4\xa5\xa0\x04\xf7\xa34q\x81I\xcf\xb5\x00)=i\xbcR\xfa\xd2\x1a\x00CIE\x14\xc6\x14QIHB\xe7\x8a)\xbd\xe9x\x1d(\x18v\xa2\x939\xedG4\x00\xb4v\xf5\xa4\xcd\x194\x02\x00Fi;\xd01Gz\x01\x86(\xfdi\x7f\x1a(\x01)i\xa7\x8aZa`\xa2\x96\x8a@%\x18\xe2\x8a3\xc5\x03B\x1e\x94\x0e\x9e\xf4Q@\x82\x8a;\xd1@\n)(\xa3\x14\x00Q\xda\x96\x8a\x04!\xa4\x1f\x95)\xa0S(?\x1aNsGz\\\xd0#\xd6\xfa\x9ao\x96\xa6@\xe7\x92:{S\xe8\xa8 QE\x02\x8a\x00(\xa2\x8ac\nu\x14R\x00\xa2\x8a(\x10QKE\x03\n(\xa2\x81\x05\x02\x8aZ\x06\x14b\x81K@\x05\x14Q@\tIN\xa4\xa0\x06\x9aCKI@\tKE-\x006\x94QK@\xc4\xa5\xa2\x8a\x00(\xa2\x96\x80\n(\xa2\x80\n(\xa2\x80\x16\x8a(\xa0\x02\x8a1K@\x06h\xa2\x8a\x00J(\xa5\xa0\x02\x81E\x03\xbd\x00-\x14\xb4P\x01E\x14P\x01KIK@\tKE\x18\xa0v\x16\x8a(\xa0\x02\x9ai\xd4\xd3H\x08\x9b\xbdC!\n\t\'\x00T\xe7\x9a\xcd\xb8\x94\xcd.\xd4?\xbbS\xf9\xd0\x02\x16.\xc4\xf6\xa6\xb5;\xa0\xa6\x1a\t\x1a\xd4\xc3Nji\xa61\xa6\x90\xd2\x9aJ,\x02\x1aJZ1E\x84&(\xdbN\xdbF\xda\x00LQ\x8av(\xc50\x1b\x8a1N\xc5&)\x0cJJu4\xd0\x01M&\x94\x9aa4\x08\r!4\x13L&\x80\x14\x9aijijij\x048\x9ai4\xd2\xd4\xdd\xde\xf4\xec\x03\xcbSsM-M\xdf@\x12\x13M\xddQ\x97\xa6\xef\xa6\x04\xb9\xa4\xddQ\xf9\x94\xc2\xfdh\x02m\xd4\x9b\xf8\xa8K\xf1\xd6\x93\x7f\xbd\x01bb\xf4\x9b\xfd\xea\x1d\xde\xf4\x9b\xa9\\v%\xdfF\xea\x87u\x194\xae\x04\x85\xa9<\xcafi(\x02]\xfcSwSE&h\x01\xfb\xb8\xa4\xddM\xa2\x80\x1d\xba\x93>\xf4\x94P+\x8b\x9a3IE1\x81\xa2\x8cP\x050a\xc5\x14b\x8a\x04\x18\xa2\x8cQ@\x05\x14\xb4\x94\x0cJQF(\xa0V\nZ(\xa4\x80(\xa2\x96\x98\r\xa3\x14\xea(\x01\xb4R\xd2P\x00ii\r\x02\x80\nQIE\x00\x06\x8a(\xa0A\x9aJ(\xc5\x00-\x14\n;\xd0\x02`\xe6\x8aZoz\x00QE%-\x00\x02\x8aJ3@\x05\x14\x9f\x8d-\x02\x0c\xd2\x0c\xd0)h\x0b\n(\xedG\xe7I@\xd0\x1e\xb4d\x02\x06y4Q@\xae/Z\x05\x02\x8a\x06\x85\xa4>\xd4Q@\x01\x14\x94\xb4\x94\x00R\x13E!\xe7\x9a\x00^\xd4R\x0cR\x1a\x00^\x9d\xe8\xa4\xe9E\x00- &\x96\x93<\xd0\x02\x8e\xb4\x84\xf2x\xa3\xbd\x1dH^\xe7\xbd\x00\x19\xa0\x13\x9f\xbb\xc5!\xea:\xd1L\x054\xa2\x9bJ\r!\x06h4\x86\x93>\x94\xc6)4\x1e\xdc\x81IG\xf3\xa0B\x01\xc7\xccX\x9c\xf5\xa0\x86\'\x85\xcd\x07p\xe4d\xe0\xe7\x03\xbd#r\x0f\x1dh\xb8\x859\x04z\xf7\xa49\xcf\xa8\xa3\xa8\xeb\x83F\x0e\xed\xa4\x82@\xc8\x00\xd0\x02w\xa4\xa58\xceA\xc1\xf4\xa44\x08^):qG4s\xe8\x06\x07zc\xb8\x9c\xee\x1f)\xda{\xfaQ\xcfc\x83J:Rw\xa0V\x10\xfd\xe3Gj\t\xe7\x1c\xd2\xaf\xde\x00\x02sI\x8d\tE\x06\x8fz`%\x07\xd3\xda\x94\x9eH\xe4\xd2u\xedHb\x1e\xd4\x1e\xa6\x8e\xb9\x01\x80\xef\x8cR\x1e((^\x83\x14\x9c\xe74\xbd\xbd\xe8\xec)\x00\x9c\x9e\xf4\x94\xbc\n\x07\x7fZ\x00@A\xce\x084\xdaw\xe1M=\xe8\x18\x84\xd2g\xf5\xa0\xf1I@\xc0\xf6\xa3\xbd\x14\x83\xa5\x02\nN\xf4{Q\xd2\x81\x8ah\xebE\x14\x00c\x14qG=\xe9(\x00\xa6\x9au6\x80\x0e\xd9\xc5!\xa5?N)\xa6\x98\xc5\xa4\xa0zR\x1a@-\'\x14Q@\x07CHiq\xde\x93\x14\x00Q\xda\x8a(\x1d\xc5\xc7\x14\x99\xa0\xf4\xa2\x81\x01\xa3\xb5-%\x00\x06\x8a\r%\x02\x1c);\xd1\x9a\x06q\x9e\x94\x0c1F)i(\x00\xc7\x14QE\x00%\x14Q@\x06)i(\xa0\x02\x96\x80}\xa8\x14\x00\x94QF(\x10QE\x14\x0c\xf5\xcaZJZ\x92\x02\x8a\x05\x03\xad\x03\x16\x96\x8a(\x10QE\x14XaE-\x14\x00P(\xa5\xa0AE\x14P0\xa2\x96\x8a\x00(\xa2\x8a\x00(\xa2\x8a\x00)\r-!\xa0\x06\x9a)i(\x00\xa2\x8a(\x18QF(\xa0\x05\xa4\xa5\xa44\x00R\xd1E\x00\x14QE\x00\x14\xb4\x94\xb4\x00QE\x14\x00\xb4QE\x00\x14QE\x00\x14\x0e\xf4P;\xd0\x02\xd1F)h\x00\xa2\x8aZ\x06%-%\x14\x05\xc5\xa2\x92\x96\x80\x16\x8aLR\xd0\x01E\x14P\x02PFN\x05\x15_Q\xbc\x16PmC\x9b\x89\x06\x14\x7fw\xde\x90\x15\xb5+\x9c\x13o\x19\xc9?x\x8e\xd5\x14Q\xecN{\xd4vV\xe5\xb7<\xbd:\xf3RO6\xe6\xda\xbftS\x10\xc7nx\xa6\xd09\xa0\x8a@1\xa9\xa6\x9ei\xb4\xec\x03qI\xb6\x9f\x8a]\xb4\xc0f)@\x14\xecR\x81@\x86b\x8cT\x98\xa3\x14\\\x08\xf1F*LRb\x8b\x80\xccR\x11O"\x9ai\x00\xc3L4\xe3L4\xec\x02\x13L&\x95\x8dF\xcd@\x035FZ\x9a\xefQ\x17\xa6"B\xd4\xc2\xf5\x1b9\x02\xa32P\x08\x94\xbf4\xd3%B^\x9a^\x80&2SK\xd4{\x8d7$\xd2\x1d\x89\x0b\xd2o\xa6QJ\xe0<\xbf4\xd2\xc6\x92\x8a.0\xcfjJZ1\x8a\x00)E%-\x02\n(\xa2\x80\x01E\x14\x1a\x00(\xa2\x8a`\x14\xb4\x94\x1a\x00(\xa2\x8a\x001E(\xa2\x80\xb0QKIH\x02\x92\x97\x14U\x00RS\xb3\xcd% \x12\x96\x97\x02\x8a\x02\xc2QKE0\x10\xd2\xd1KH,\'j\x00\xa2\x934\xc5ah\xefIG\xe1@\x06=\xa8\xa3\xf1\xa3\x14\x00\x94\x94\xb4P\x01E(\xa4\xa0\x02\x93\x83\xc1\xe4S\xa9(\x0b\x08\x00\x03\x00\x00\x07a@\xa2\x8a\x04/\xf2\xa4\xc6Nh\x1d=\xa8\x14\r\x85\x1d\xe8\xfc\xe8\xa0L(\xa2\x92\x80\x16\x92\x8eh\xa0\x04\xa5\x14\x84P\x05\x00\x1d\xe9M\x14P0\xa5\x03\xeb\xf8\xd2R\x8a\x04\x14\x9d\xf1KI\xde\x80\x0cQ\xd0Pr;Py\x14\x00\nZN\xd4\n\x00:{\xd1G9\xa4\xcf\xe1@0\xedM##\x14\xb4\x11@\x08h\x19\xa0\xfb\xd1@\x00\xf5\x1c\xd1\xcd\x1d)\x0fN\xf4\x08(\xa0z\xd2\x93\xdf?\x85'... (set the log level to DEBUG or TRACE to see the full content)
|
|
</msg>
|
|
<msg timestamp="20220817 15:12:02.612" level="INFO">POST Response : url=https://api-client-ztb-test.qniao.cn/recycle-user-center/file-uploading/upload/image
|
|
status=200, reason=
|
|
headers={'Server': 'nginx/1.16.1', 'Date': 'Wed, 17 Aug 2022 07:12:02 GMT', 'Content-Type': 'application/json;charset=UTF-8', 'Transfer-Encoding': 'chunked', 'Connection': 'keep-alive'}
|
|
body={"code":0,"message":"successful","data":"https://qncloudtest.oss-cn-shenzhen.aliyuncs.com/common/26104836733778303.jpg"}
|
|
</msg>
|
|
<msg timestamp="20220817 15:12:02.612" level="INFO">${reps} = <Response [200]></msg>
|
|
<status status="PASS" starttime="20220817 15:12:02.510" endtime="20220817 15:12:02.612"></status>
|
|
</kw>
|
|
<kw name="Get From Dictionary" library="Collections">
|
|
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
|
|
<arguments>
|
|
<arg>${reps.json()}</arg>
|
|
<arg>data</arg>
|
|
</arguments>
|
|
<assign>
|
|
<var>${OutboundImage}</var>
|
|
</assign>
|
|
<msg timestamp="20220817 15:12:02.613" level="INFO">${OutboundImage} = https://qncloudtest.oss-cn-shenzhen.aliyuncs.com/common/26104836733778303.jpg</msg>
|
|
<status status="PASS" starttime="20220817 15:12:02.612" endtime="20220817 15:12:02.613"></status>
|
|
</kw>
|
|
<kw name="Set Global Variable" library="BuiltIn">
|
|
<doc>Makes a variable available globally in all tests and suites.</doc>
|
|
<arguments>
|
|
<arg>${OutboundImage}</arg>
|
|
</arguments>
|
|
<msg timestamp="20220817 15:12:02.613" level="INFO">${OutboundImage} = https://qncloudtest.oss-cn-shenzhen.aliyuncs.com/common/26104836733778303.jpg</msg>
|
|
<status status="PASS" starttime="20220817 15:12:02.613" endtime="20220817 15:12:02.614"></status>
|
|
</kw>
|
|
<status status="PASS" starttime="20220817 15:12:02.003" endtime="20220817 15:12:02.614" critical="yes"></status>
|
|
</test>
|
|
<status status="PASS" starttime="20220817 15:12:02.000" endtime="20220817 15:12:02.614"></status>
|
|
</suite>
|
|
<status status="PASS" starttime="20220817 15:12:00.981" endtime="20220817 15:12:02.615"></status>
|
|
</suite>
|
|
<statistics>
|
|
<total>
|
|
<stat pass="6" fail="0">Critical Tests</stat>
|
|
<stat pass="6" fail="0">All Tests</stat>
|
|
</total>
|
|
<tag>
|
|
</tag>
|
|
<suite>
|
|
<stat pass="6" fail="0" id="s1" name="000-Data">000-Data</stat>
|
|
<stat pass="1" fail="0" id="s1-s1" name="0-BaseUrl">000-Data.0-BaseUrl</stat>
|
|
<stat pass="3" fail="0" id="s1-s2" name="1-ClientLogin">000-Data.1-ClientLogin</stat>
|
|
<stat pass="1" fail="0" id="s1-s3" name="2-OpsLogin">000-Data.2-OpsLogin</stat>
|
|
<stat pass="1" fail="0" id="s1-s4" name="3-Infomation">000-Data.3-Infomation</stat>
|
|
</suite>
|
|
</statistics>
|
|
<errors>
|
|
</errors>
|
|
</robot>
|